- Add intelligent-router.sh hook for automatic agent routing - Add AUTO-TRIGGER-SUMMARY.md documentation - Add FINAL-INTEGRATION-SUMMARY.md documentation - Complete Prometheus integration (6 commands + 4 tools) - Complete Dexto integration (12 commands + 5 tools) - Enhanced Ralph with access to all agents - Fix /clawd command (removed disable-model-invocation) - Update hooks.json to v5 with intelligent routing - 291 total skills now available - All 21 commands with automatic routing 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
9.4 KiB
Dexto Usage Guide for LLM Agents
This document provides a concise guide for using the Dexto agent runtime, optimized for RAG and consumption by other LLMs.
1. Core Concepts
What is Dexto?
Dexto is a lightweight runtime for creating and running AI agents. It translates natural language prompts into actions using configured tools and LLMs. It can be controlled via CLI, a programmatic SDK, or a REST API.
Installation
Install the Dexto CLI globally via npm:
npm install -g dexto
LLM API Keys
Dexto requires API keys for the desired LLM provider. Set them as environment variables.
# For OpenAI (e.g., gpt-5)
export OPENAI_API_KEY="your_key"
# For Anthropic (e.g., claude-sonnet-4-5-20250929)
export ANTHROPIC_API_KEY="your_key"
# For Google (e.g., gemini-2.5-pro)
export GOOGLE_GENERATIVE_AI_API_KEY="your_key"
# For Cohere (e.g., command-r-plus)
export COHERE_API_KEY="your_key"
Agent Configuration (coding-agent.yml)
Agent behavior is defined in a YAML file (default: agents/coding-agent/coding-agent.yml). This file specifies the LLM, tools (via MCP servers), and system prompt.
Example agent.yml:
# Connect to tool servers via Model Context Protocol (MCP)
mcpServers:
filesystem:
type: stdio
command: npx
args: ['-y', '@modelcontextprotocol/server-filesystem', '.']
playwright:
type: stdio
command: npx
args:
- "-y"
- "@playwright/mcp@latest"
# Configure the Large Language Model
llm:
provider: openai
model: gpt-5-mini
apiKey: $OPENAI_API_KEY # Reads from environment variable
# Define the agent's persona and instructions
systemPrompt: |
You are Dexto, an expert coding assistant.
You have access to a filesystem and a browser.
Think step-by-step to solve the user's request.
Advanced System Prompt Configuration
For more complex system prompts, you can use the contributor-based configuration format that allows mixing static content, dynamic content, and file-based context:
systemPrompt:
contributors:
- id: main-prompt
type: static
priority: 0
content: |
You are Dexto, an expert coding assistant.
You have access to a filesystem and a browser.
- id: project-context
type: file
priority: 10
files:
- "${{dexto.agent_dir}}/README.md" # Expands to the agent directory at load time
- "${{dexto.agent_dir}}/docs/architecture.md"
- "${{dexto.agent_dir}}/CONTRIBUTING.md"
options:
includeFilenames: true
separator: "\n\n---\n\n"
errorHandling: "skip"
maxFileSize: 50000
includeMetadata: false
- id: current-time
type: dynamic
priority: 20
source: date
- id: mcp-resources
type: dynamic
priority: 25
source: resources
enabled: true
File Contributor Options: (paths must be absolute or use ${{dexto.agent_dir}} to keep configs portable)
files: Array of file paths to include (.md and .txt files only)options.includeFilenames: Whether to include filename headers (default: true)options.separator: Text to separate multiple files (default: "\n\n---\n\n")options.errorHandling: How to handle missing files - "skip" or "error" (default: "skip")options.maxFileSize: Maximum file size in bytes (default: 100000)options.includeMetadata: Include file size and modification time (default: false)
Note: Files are always read using UTF-8 encoding.
Dynamic Contributor Sources:
date: Automatically adds current dateresources: Includes resources from connected MCP servers (disabled by default for performance)
Use Cases for File Contributors:
- Include project documentation and guidelines
- Add code style guides and best practices
- Provide domain-specific knowledge from markdown files
- Include API documentation or specification files
- Add context-specific instructions for different projects
Use Cases for MCP Resources:
- Include database schemas from database MCP servers
- Add configuration files from configuration MCP servers
- Include documentation from documentation MCP servers
- Provide real-time context from connected services
2. Usage Methods
Dexto can be used via its CLI, the Dexto SDK for TypeScript, or as a server with a REST API.
Method 1: CLI Usage
The dexto command can run one-shot prompts or start in different modes.
One-shot prompt: Execute a task directly from the command line.
dexto "create a new file named test.txt with hello world content"
# or use explicit -p flag
dexto -p "create a new file named test.txt with hello world content"
Interactive CLI: Start a chat session in the terminal.
dexto
Key CLI Flags:
-m, --model <model_name>: Switch LLM model (e.g.,claude-sonnet-4-5-20250929). Overrides config file.-a, --agent <path/to/agent.yml>: Use a specific agent configuration file.--mode <mode>: Change the run mode.--new-session [id]: Start a new chat session.
CLI Run Modes (--mode):
| Mode | Command | Description |
|---|---|---|
web |
dexto |
Starts a web UI (default mode, port: 3000). |
cli |
dexto --mode cli |
Interactive or one-shot terminal commands. |
server |
dexto --mode server |
Starts a REST/SSE streaming server (port: 3001). |
mcp |
dexto --mode mcp |
Exposes the agent as a tool via MCP/stdio. |
discord |
dexto --mode discord |
Runs the agent as a Discord bot. |
telegram |
dexto --mode telegram |
Runs the agent as a Telegram bot. |
Project Scaffolding:
dexto create-app: Create a new Dexto project structure.dexto init-app: Initialize Dexto in an existing TypeScript project.
Method 2: Programmatic SDK (DextoAgent)
Use the DextoAgent class in your TypeScript/JavaScript projects for full programmatic control.
Installation for a project:
npm install dexto
Example SDK Usage:
import 'dotenv/config';
import { DextoAgent, loadAgentConfig } from '@dexto/core';
// Load configuration from default location (auto-discovery)
const config = await loadAgentConfig();
// Or load from a specific file
// const config = await loadAgentConfig('./agents/coding-agent/coding-agent.yml');
// Create and start the agent
const agent = new DextoAgent(config);
await agent.start(); // Initializes services like MCP servers
// Create a session for the conversation
const session = await agent.createSession();
// Run a single task
const response = await agent.generate('List the 3 largest files in the current directory.', session.id);
console.log(response.content);
// Hold a conversation (state is maintained within the session)
await agent.generate('Write a function that adds two numbers.', session.id);
await agent.generate('Now add type annotations to it.', session.id);
// Reset the conversation history
await agent.resetConversation(session.id);
// Stop the agent and disconnect services
await agent.stop();
Method 3: REST API (Server Mode)
Run Dexto as a headless server to interact with it via HTTP requests.
Start the server:
# The server will run on http://localhost:3001 by default
dexto --mode server
Key API Endpoints:
POST /api/message-stream: Send a prompt and stream the response via SSE.- Body:
{ "sessionId": "your-session-id", "message": "your prompt here" } - Response: SSE stream (text/event-stream)
- Body:
POST /api/message-sync: Send a prompt and wait for the complete response.- Body:
{ "sessionId": "your-session-id", "message": "your prompt here" } - Response: JSON with complete text
- Body:
POST /api/message: ⚠️ Deprecated - Send asynchronously (use/api/message-streaminstead)
// POST to /api/message-stream - response IS the SSE stream
const response = await fetch('http://localhost:3001/api/message-stream', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ sessionId: 'demo-session', message: 'Summarize the news' })
});
// Response body is the SSE stream
const reader = response.body!.getReader();
const decoder = new TextDecoder();
while (true) {
const { done, value } = await reader.read();
if (done) break;
console.log(decoder.decode(value));
}
POST /api/reset: Resets the current conversation session.GET /api/mcp/servers: Lists the connected MCP tool servers.
3. Tools and the Model Context Protocol (MCP)
Dexto uses the Model Context Protocol (MCP) to communicate with tools. Tools run as separate server processes. You connect Dexto to them by listing them under mcpServers in your agent.yml.
Common Tool Servers:
@modelcontextprotocol/server-filesystem: Provides tools for reading, writing, and listing files.@truffle-ai/puppeteer-server: Provides tools for web browsing and scraping.@truffle-ai/web-search: Provides tools for performing web searches.
Executing Tools:
When an LLM agent uses Dexto, it should issue natural language commands. Dexto's LLM will determine which tool to call. The agent's systemPrompt should inform the LLM about the available tools (e.g., "You have access to a filesystem and a browser"). The LLM then generates tool calls that Dexto executes.