mcpField
S
Saiki

Saiki

github.com/truffle-aiフレームワーク・SDK6585 日前に更新

Saiki について

Dexto はオープンソースのエージェントハーネスで、LLM のツール呼び出し、セッション状態、エラー回復を制御します。組み込みのコーディングエージェントを利用するほか、YAML や SDK でカスタムエージェントを構築する開発者を対象としています。

主な機能

  1. 01バージョン管理可能な YAML によるエージェント定義
  2. 02会話中に 50 以上の LLM を切り替え
  3. 03再起動後も保持されるセッションとメモリ
  4. 04ツール実行に対する承認制御
  5. 05CLI、Web UI、REST および SSE インターフェース

活用シーン

  1. 01組み込みのコーディングエージェントによるコードベースの修正
  2. 02SDK を用いたアプリケーションへのエージェント組み込み
  3. 03Dexto エージェントを MCP サーバーとして Claude Code や Cursor に接続

MCP 対応

Dexto は stdio で接続する MCP サーバーのツールを管理する MCP クライアントとして動作します。また MCP モードでエージェント自体を MCP サーバーとして公開できます。

詳細

Dexto

README の画像 README の画像 README の画像 README の画像

Deutsch | English | Español | français | 日本語 | 한국어 | Português | Русский | 中文

AI アプリケーション向けのオープンなエージェントハーネス。強力なコーディングエージェントを標準搭載しています。

Dexto のデモ

Dexto とは?

Dexto はエージェントハーネスです。LLM を、アクションを実行し、コンテキストを記憶し、エラーから復旧できる、信頼性の高いステートフルなエージェントへと変えるオーケストレーションレイヤーです。

AI エージェント向けのオペレーティングシステムのようなものと考えてください。

コンポーネントたとえ役割
LLMCPU生の処理能力
コンテキストウィンドウRAM作業メモリ
Dextoオペレーティングシステムオーケストレーション、状態、ツール、復旧
あなたのエージェントアプリケーションドメイン固有のロジックとクライアント
Dexto を選ぶ理由
  • 設定主導:YAML でエージェントを定義できます。コードを変更せずにモデルやツールを切り替えられます。
  • 必要な機能を標準搭載:セッション管理、ツールのオーケストレーション、メモリ、マルチモーダル対応、可観測性を、すぐに利用できます。
  • どこでも実行可能:ローカル、クラウド、またはハイブリッド環境で実行できます。CLI、Web UI、REST API、Discord、Telegram、またはアプリへの組み込みに対応しています。
構築できるもの
  • コーディングエージェント – コードを自律的に構築、デバッグ、リファクタリングします
  • 自律型エージェント – ユーザーの目標を計画、実行し、それに合わせて適応します
  • デジタルコンパニオン – コンテキストを記憶し、ニーズを先読みするアシスタントです
  • MCP クライアントとサーバー – Model Context Protocol を介してツール、ファイル、API に接続します
  • マルチエージェントシステム – エージェントが連携し、作業を委任して、複雑なタスクを一緒に解決します

コーディングエージェント

Dexto には、CLI または Web UI からすぐに使える本番環境対応のコーディングエージェントが標準搭載されています。

# Launch the coding agent (default)
dexto

# Or explicitly
dexto --agent coding-agent

できること:

  • 新しいアプリをゼロから構築する
  • コードベース全体のコードを読み取り、書き込み、リファクタリングする
  • シェルコマンドを実行し、テストを実行する
  • 探索や計画に特化したサブエージェントを起動する
  • 永続メモリを使ってセッションをまたいでコンテキストを記憶する
  • 50 種類以上の LLM を利用する(会話の途中でモデルを切り替えられます)

すぐに使えるインターフェース:

  • Web UI – ファイルアップロード、構文ハイライト、MCP ツールブラウザーを備えたチャットインターフェース
  • CLI – /commands、ストリーミング出力、セッション管理に対応したターミナルネイティブのインターフェース

コーディングエージェントは、構築できるものの一例にすぎません。YAML 設定を定義すれば、同じアーキテクチャで独自のドメイン向けエージェントを作成できます。


クイックスタート

インストール
# macOS / Linux / WSL (native installer, recommended)
curl -fsSL https://dexto.ai/install | bash

# Windows PowerShell
irm https://dexto.ai/install.ps1 | iex

# Or build from source
git clone https://github.com/truffle-ai/dexto.git
cd dexto && pnpm install && pnpm install-cli

アップグレード、アンインストール、移行のトラブルシューティングについては、ドキュメントをご覧ください。

実行
# Start Dexto (launches setup wizard on first run)
dexto

その他のオプション:

dexto --mode cli                                   # Terminal mode
dexto -p "create a landing page for a coffee shop" # One-shot task
dexto --auto-approve "refactor this codebase"      # Skip confirmations
dexto -m claude-sonnet-4-5-20250929                # Switch models
dexto --help                                       # Explore all options

インタラクティブ CLI では、/ を入力してコマンドを確認できます。モデルの切り替え、セッションの管理、ツールの設定などができます。

設定の管理
# Configure defaults like LLM provider/model, API keys, or download local models
dexto setup

ログは ~/.dexto/logs/ に保存されます。詳細な出力を有効にするには、DEXTO_LOG_LEVEL=debug を使用します。


主な機能

50 以上の LLM に対応し、即座に切り替え可能

コードの変更や再起動をせずに、会話の途中でモデルを切り替えられます。

プロバイダーモデル
OpenAIgpt-5.2、gpt-5.2-pro、gpt-5.2-codex、o4-mini
AnthropicClaude Sonnet、Opus、Haiku(拡張思考に対応)
GoogleGemini 3 Pro、2.5 Pro/Flash
GroqLlama 4、Qwen、DeepSeek
xAIGrok 4、Grok 3
ローカルOllama、node-llama-cpp 経由の GGUF(Llama、Qwen、Mistral など)
+ゲートウェイOpenRouter、AWS Bedrock、Vertex AI、LiteLLM

プライバシーを守るためローカルで実行:ローカルモデルはデータをお使いのマシン内に保持し、GPU(Metal、CUDA、Vulkan)を自動検出します。

MCP 連携(30 以上のツール)

Puppeteer、Linear、ElevenLabs、Firecrawl、Sora などの Model Context Protocol サーバーに接続できます。

# agents/my-agent.yml
mcpServers:
  filesystem:
    type: stdio
    command: npx
    args: ['-y', '@modelcontextprotocol/server-filesystem', '.']
  browser:
    type: stdio
    command: npx
    args: ['-y', '@anthropics/mcp-server-puppeteer']

Web UI の MCP Store、または CLI の /mcp コマンドから、サーバーを参照して追加できます。

ヒューマン・イン・ザ・ループ制御

エージェントが実行できる操作を細かく制御できます。

permissions:
  mode: manual           # Require approval for each tool
  # mode: auto-approve   # Trust mode for local development
  toolPolicies:
    alwaysAllow:
      - mcp--filesystem--read_file
      - mcp--filesystem--list_directory

エージェントは、セッションごとに承認されたツールを記憶します。

永続的なセッションとメモリ

会話は再起動後も保持されます。エージェントの動作に影響するメモリを作成できます。

# Continue last conversation
dexto -c

# Resume specific session
dexto -r session-abc123

# Search across all conversations
dexto search "database schema"
マルチエージェントシステム

エージェントは、複雑なサブタスクに対応するため、専門のサブエージェントを起動できます。コーディングエージェントは、調査を委任するためにこの機能を使用します。

# In your agent config
tools:
  - type: agent-spawner
    allowedAgents: ["explore-agent"]
    maxConcurrentAgents: 5
    defaultTimeout: 300000  # 5 minutes

組み込みのサブエージェント:

  • explore-agent – コードベースを高速で読み取り専用で調査

エージェントレジストリにある任意のエージェントをサブエージェントとして起動できます。自分で作成して登録したカスタムエージェントも対象です。

サブエージェントは一時的に実行され、完了後に自動的にクリーンアップされます。また、ツールの承認要求を親エージェントに転送するため、ユーザーには統一された承認フローが表示されます。


実行モード

モードコマンド用途
Web UIdextoファイルアップロードに対応したチャットインターフェース(デフォルト)
CLIdexto --mode cliターミナルでの操作
Web サーバーdexto --mode serverREST および SSE API
MCP サーバーdexto --mode mcpstdio 経由でエージェントを MCP サーバーとして公開

プラットフォーム連携:Discord、Telegram

MCP サーバーとしての Dexto

トランスポート:stdio

Dexto エージェントを Claude Code または Cursor の MCP サーバーとして接続します。

dexto --mode mcp --auto-approve --no-elicitation                # Default agent
dexto --mode mcp --agent coding-agent --auto-approve --no-elicitation
npx dexto --mode mcp --agent coding-agent --auto-approve --no-elicitation

Claude Code または Cursor 用の MCP 設定例:

{
  "command": "npx",
  "args": ["-y", "dexto", "--mode", "mcp", "--agent", "coding-agent", "--auto-approve", "--no-elicitation"]
}

非対話形式で実行されるため、MCP モードでは --auto-approve と --no-elicitation が必要です。

トランスポート:http/sse

dexto --mode server は、リモートクライアント向けに /mcp でエージェントを MCP サーバーとして公開します。

dexto --mode server --port 3001
ngrok http 3001  # Optional: expose publicly

Dexto Agents SDK

AI エージェントをプログラムから構築できます。CLI でできることは、コードからも実行できます。

npm install @dexto/core
import { DextoAgent } from '@dexto/core';

const agent = new DextoAgent({
  llm: { provider: 'openai', model: 'gpt-5.2', apiKey: process.env.OPENAI_API_KEY }
});
await agent.start();

const session = await agent.createSession();
const response = await agent.generate('What is TypeScript?', session.id);
console.log(response.content);

// Streaming
for await (const event of await agent.stream('Write a story', session.id)) {
  if (event.name === 'llm:chunk') process.stdout.write(event.content);
}

// Multimodal
await agent.generate([
  { type: 'text', text: 'Describe this image' },
  { type: 'image', image: base64Data, mimeType: 'image/png' }
], session.id);

// Switch models mid-conversation
await agent.switchLLM({ model: 'claude-sonnet-4-5-20250929' });

プログラムからサーバーを起動する:

Dexto サーバーをプログラムから起動し、エージェントのバックエンドとやり取りして管理するための REST API と SSE ストリーミング API を公開します。

import { DextoAgent } from '@dexto/core';
import { loadAgentConfig, startHonoApiServer } from 'dexto';

const config = await loadAgentConfig('./agents/my-agent.yml');
const agent = new DextoAgent(config);
const { server } = await startHonoApiServer(agent, 3001);
// POST /api/message, GET /api/sessions, etc.

これにより、完全な REST API と SSE API を備えた HTTP サーバーが起動し、Web フロントエンド、Webhook、その他のサービスとの連携が可能になります。利用可能なエンドポイントについては、REST API ドキュメントを参照してください。

SDK の高度な使用方法
セッション管理

永続ストレージを使用して、複数の会話セッションを作成・管理します。

const agent = new DextoAgent(config);
await agent.start();

// Create and manage sessions
const session = await agent.createSession('user-123');
await agent.generate('Hello, how can you help me?', session.id);

// List and manage sessions
const sessions = await agent.listSessions();
const history = await agent.getSessionHistory('user-123');
await agent.deleteSession('user-123');

// Search across conversations
const results = await agent.searchMessages('bug fix', { limit: 10 });
LLM 管理

モデルとプロバイダーを動的に切り替えます。

// Get current configuration
const currentLLM = agent.getCurrentLLMConfig();

// Switch models (provider inferred automatically)
await agent.switchLLM({ model: 'gpt-5.2' });
await agent.switchLLM({ model: 'claude-sonnet-4-5-20250929' });

// Switch model for a specific session
await agent.switchLLM({ model: 'gpt-5.2' }, 'session-123');

// Get supported providers and models
const providers = agent.getSupportedProviders();
const models = agent.getSupportedModels();
MCP マネージャー

高度な MCP サーバー管理には、MCPManager を直接使用します。

import { MCPManager } from '@dexto/core';

const manager = new MCPManager();

// Connect to MCP servers
await manager.connectServer('filesystem', {
  type: 'stdio',
  command: 'npx',
  args: ['-y', '@modelcontextprotocol/server-filesystem', '.']
});

// Access tools, prompts, and resources
const tools = await manager.getAllTools();
const prompts = await manager.getAllPrompts();
const resources = await manager.getAllResources();

// Execute tools
const result = await manager.executeTool('readFile', { path: './README.md' });

await manager.disconnectAll();
### ストレージと永続化

本番環境用のストレージバックエンドを設定します。

# agents/production-agent.yml
storage:
  cache:
    type: redis
    url: $REDIS_URL
  database:
    type: postgres
    connectionString: $POSTGRES_CONNECTION_STRING

sessions:
  maxSessions: 1000
  sessionTTL: 86400000  # 24 hours

対応バックエンド:

  • キャッシュ:Redis、インメモリ
  • データベース:PostgreSQL、SQLite、インメモリ

詳しくは、ストレージ設定ガイドをご覧ください。


エージェントレジストリ

一般的なユースケース向けの事前構築済みエージェント:

# List available agents
dexto agents list

# Install and run
dexto agents install coding-agent podcast-agent
dexto --agent coding-agent

**利用可能なエージェント:**コーディング、ポッドキャスト、画像エディター、動画(Sora)、データベース、GitHub、トリアージ(マルチエージェント)など。

エージェントレジストリの全容をご覧ください。


エージェントの設定

Dextoでは、各設定を一意のエージェントとして扱います。ニーズに応じて、LLM、サーバー、ストレージオプションなどを組み合わせて定義し、保存できるため、簡単に持ち運べます。バージョン管理されたYAMLでエージェントを定義します。ファイルを変更して再読み込みし、チャットするだけで、状態、メモリ、ツールが自動的に更新されます。

# agents/production-agent.yml
llm:
  provider: anthropic
  model: claude-sonnet-4-5-20250929
  apiKey: $ANTHROPIC_API_KEY

mcpServers:
  filesystem:
    type: stdio
    command: npx
    args: ['-y', '@modelcontextprotocol/server-filesystem', '.']

systemPrompt: |
  You are a helpful assistant with filesystem access.

storage:
  cache:
    type: redis
    url: $REDIS_URL
  database:
    type: postgres
    connectionString: $POSTGRES_CONNECTION_STRING

permissions:
  mode: manual
LLMプロバイダー

コードを変更せずに、プロバイダーをすぐに切り替えられます。

組み込みプロバイダー
プロバイダーモデル設定
OpenAIgpt-5.2、gpt-5.2-pro、gpt-5.2-codex、o4-miniAPIキー
Anthropicclaude-sonnet-4-5-20250929、claude-opus-4-5-20250929、拡張思考APIキー
Googlegemini-3-pro、gemini-2.5-pro、gemini-2.5-flashAPIキー
Groqllama-4-scout、qwen-qwq、deepseek-r1-distillAPIキー
xAIgrok-4、grok-3、grok-3-fastAPIキー
Coherecommand-r-plus、command-rAPIキー
ローカルモデル(プライバシー優先)
プロバイダーモデル設定
OllamaLlama、Qwen、Mistral、DeepSeekなどローカルインストール
node-llama-cpp任意のGGUFモデルバンドル済み(Metal、CUDA、Vulkanを自動でGPU検出)
クラウドプラットフォーム
プロバイダーモデル設定
AWS BedrockClaude、Llama、MistralAWS認証情報
Google Vertex AIGemini、ClaudeGCP認証情報
ゲートウェイプロバイダー
プロバイダーアクセス設定
OpenRouter複数のプロバイダーの100以上のモデルAPIキー
LiteLLMあらゆるプロバイダーに対応する統合APIセルフホストまたはAPIキー
GlamaマルチプロバイダーゲートウェイAPIキー
# Switch models via CLI
dexto -m claude-sonnet-4-5-20250929
dexto -m gemini-2.5-pro
dexto -m llama-4-scout

対話型CLI(/model)またはWeb UI内で、設定を変更せずに切り替えられます。

設定ガイドをご覧ください。


デモとサンプル

画像エディターMCP Storeポータブルエージェント
画像エディターMCP Storeポータブルエージェント
OpenCVを使用した顔検出と注釈MCPを閲覧して追加MCP経由でCursorやClaude Codeでエージェントを使用
その他のサンプル
コーディングエージェント

自然言語からアプリケーションを構築します:

dexto --agent coding-agent
# "Create a snake game and open it in the browser"
コーディングエージェントのデモ
ポッドキャストエージェント

複数話者の音声コンテンツを生成します:

dexto --agent podcast-agent
ポッドキャストエージェントのデモ
マルチエージェントトリアージ

専門エージェントを連携させます:

dexto --agent triage-agent
トリアージエージェントのデモ
メモリシステム

動作を形作る永続的なコンテキスト: メモリのデモ

動的フォーム

エージェントが構造化された入力用のフォームを生成します: ユーザーフォームのデモ

ブラウザー自動化
Amazonショッピングのデモ ### MCP Playground デプロイ前にツールをテストします: Playground デモ

CLI リファレンス
Usage: dexto [options] [command] [prompt...]

Basic Usage:
  dexto                    Start web UI (default)
  dexto "query"            Run one-shot query
  dexto --mode cli         Interactive CLI

Session Management:
  dexto -c                 Continue last conversation
  dexto -r <id>            Resume specific session

Options:
  -a, --agent <path>       Agent config file or ID
  -m, --model <model>      LLM model to use
  --auto-approve           Skip tool confirmations
  --no-elicitation         Disable elicitation prompts
  --mode <mode>            web | cli | server | mcp
  --port <port>            Server port

Commands:
  setup                    Configure global preferences
  deploy                   Deploy current workspace to cloud
  agents install <agents...>  Install agents from registry
  agents list              List available agents
  session list|history     Manage sessions
  search <query>           Search conversation history

完全なリファレンス:dexto --help


ドキュメント


テレメトリー

Dexto の改善に役立てるため、匿名の使用データ(個人情報や機密情報は含みません)を収集しています。収集するデータは次のとおりです。

  • 使用したコマンド
  • コマンドの実行時間
  • エラーの発生状況
  • システム情報(OS、Node のバージョン)
  • 使用した LLM モデル

オプトアウトするには:

環境変数 DEXTO_ANALYTICS_DISABLED=1 を設定してください。


コントリビューション

CONTRIBUTING.md をご覧ください。


コミュニティ

Truffle AI が開発しています。サポートが必要な場合は、Discord にご参加ください。

Dexto が役に立った場合は、GitHub で ⭐ を付けてください。大きな励みになります!

Twitter フォロー Twitter フォロー Twitter フォロー


貢献者

貢献者


ライセンス

Elastic License 2.0。LICENSE をご覧ください。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。