Saiki について
Dexto はオープンソースのエージェントハーネスで、LLM のツール呼び出し、セッション状態、エラー回復を制御します。組み込みのコーディングエージェントを利用するほか、YAML や SDK でカスタムエージェントを構築する開発者を対象としています。
主な機能
- 01バージョン管理可能な YAML によるエージェント定義
- 02会話中に 50 以上の LLM を切り替え
- 03再起動後も保持されるセッションとメモリ
- 04ツール実行に対する承認制御
- 05CLI、Web UI、REST および SSE インターフェース
活用シーン
- 01組み込みのコーディングエージェントによるコードベースの修正
- 02SDK を用いたアプリケーションへのエージェント組み込み
- 03Dexto エージェントを MCP サーバーとして Claude Code や Cursor に接続
MCP 対応
Dexto は stdio で接続する MCP サーバーのツールを管理する MCP クライアントとして動作します。また MCP モードでエージェント自体を MCP サーバーとして公開できます。
詳細
Deutsch | English | Español | français | 日本語 | 한국어 | Português | Русский | 中文
AI アプリケーション向けのオープンなエージェントハーネス。強力なコーディングエージェントを標準搭載しています。
Dexto とは?
Dexto はエージェントハーネスです。LLM を、アクションを実行し、コンテキストを記憶し、エラーから復旧できる、信頼性の高いステートフルなエージェントへと変えるオーケストレーションレイヤーです。
AI エージェント向けのオペレーティングシステムのようなものと考えてください。
| コンポーネント | たとえ | 役割 |
|---|---|---|
| LLM | CPU | 生の処理能力 |
| コンテキストウィンドウ | 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
アップグレード、アンインストール、移行のトラブルシューティングについては、ドキュメントをご覧ください。
- インストールガイド:https://cli.dexto.ai/docs/getting-started/installation
- CLI コマンドリファレンス:https://cli.dexto.ai/docs/guides/cli/overview
実行
# 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 に対応し、即座に切り替え可能
コードの変更や再起動をせずに、会話の途中でモデルを切り替えられます。
| プロバイダー | モデル |
|---|---|
| OpenAI | gpt-5.2、gpt-5.2-pro、gpt-5.2-codex、o4-mini |
| Anthropic | Claude Sonnet、Opus、Haiku(拡張思考に対応) |
| Gemini 3 Pro、2.5 Pro/Flash | |
| Groq | Llama 4、Qwen、DeepSeek |
| xAI | Grok 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 UI | dexto | ファイルアップロードに対応したチャットインターフェース(デフォルト) |
| CLI | dexto --mode cli | ターミナルでの操作 |
| Web サーバー | dexto --mode server | REST および SSE API |
| MCP サーバー | dexto --mode mcp | stdio 経由でエージェントを MCP サーバーとして公開 |
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プロバイダー
コードを変更せずに、プロバイダーをすぐに切り替えられます。
組み込みプロバイダー
| プロバイダー | モデル | 設定 |
|---|---|---|
| OpenAI | gpt-5.2、gpt-5.2-pro、gpt-5.2-codex、o4-mini | APIキー |
| Anthropic | claude-sonnet-4-5-20250929、claude-opus-4-5-20250929、拡張思考 | APIキー |
gemini-3-pro、gemini-2.5-pro、gemini-2.5-flash | APIキー | |
| Groq | llama-4-scout、qwen-qwq、deepseek-r1-distill | APIキー |
| xAI | grok-4、grok-3、grok-3-fast | APIキー |
| Cohere | command-r-plus、command-r | APIキー |
ローカルモデル(プライバシー優先)
| プロバイダー | モデル | 設定 |
|---|---|---|
| Ollama | Llama、Qwen、Mistral、DeepSeekなど | ローカルインストール |
| node-llama-cpp | 任意のGGUFモデル | バンドル済み(Metal、CUDA、Vulkanを自動でGPU検出) |
クラウドプラットフォーム
| プロバイダー | モデル | 設定 |
|---|---|---|
| AWS Bedrock | Claude、Llama、Mistral | AWS認証情報 |
| Google Vertex AI | Gemini、Claude | GCP認証情報 |
ゲートウェイプロバイダー
| プロバイダー | アクセス | 設定 |
|---|---|---|
| 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 | ポータブルエージェント |
|---|---|---|
![]() | ![]() | ![]() |
| 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
メモリシステム
動作を形作る永続的なコンテキスト:

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

ブラウザー自動化
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
ドキュメント
- クイックスタート – 数分で使い始められます
- 設定ガイド – エージェント、LLM、ツール
- SDK リファレンス – プログラムからの使用方法
- REST API – HTTP エンドポイント
テレメトリー
Dexto の改善に役立てるため、匿名の使用データ(個人情報や機密情報は含みません)を収集しています。収集するデータは次のとおりです。
- 使用したコマンド
- コマンドの実行時間
- エラーの発生状況
- システム情報(OS、Node のバージョン)
- 使用した LLM モデル
オプトアウトするには:
環境変数 DEXTO_ANALYTICS_DISABLED=1 を設定してください。
コントリビューション
CONTRIBUTING.md をご覧ください。
コミュニティ
Truffle AI が開発しています。サポートが必要な場合は、Discord にご参加ください。
Dexto が役に立った場合は、GitHub で ⭐ を付けてください。大きな励みになります!
貢献者
ライセンス
Elastic License 2.0。LICENSE をご覧ください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。


