展示HN:Dexto – 将你的AI代理与真实世界的工具和数据连接起来
Show HN: Dexto – Connect your AI Agents with real-world tools and data

原始链接: https://github.com/truffle-ai/dexto

## Dexto:轻松构建代理应用 Dexto是一个全面的工具包,用于创建智能AI代理和应用程序,将自然语言与现实世界的行动连接起来。它充当通用智能层,协调大型语言模型(LLM)、工具和数据,构建具有记忆的持久、有状态的系统——从而实现动态AI助手、副驾驶和自主代理的创建。 Dexto通过配置驱动的YAML框架、强大的运行时和多功能接口(CLI、Web、API、TypeScript SDK)简化开发。主要功能包括支持50多种LLM、多模态输入(文本、图像、文件)、持久会话和内置的可观察性套件。 您可以构建各种应用程序,例如自主代理、数字伴侣、多代理系统,甚至可以将现有服务转化为对话体验。Dexto提供预构建的代理“配方”和可插拔的存储系统(Redis、PostgreSQL等),以便快速原型设计和生产部署。它设计为可在本地、云端或混合环境中运行,提供灵活性和控制力。

## Dexto:AI 智能体编排总结 Dexto 由 Truffle AI (YC W25) 开发,是一个运行时和编排层,旨在简化 AI 智能体的构建和部署。它解决了将大型语言模型 (LLM) 连接到真实世界工具和数据的复杂性,自动化了重复性任务,例如工具连接、上下文管理和审批流程。 Dexto 不要求用户编写自定义编排代码,而是允许用户通过配置*声明*智能体的能力——工具、LLM 和行为。然后,智能体自主运行,处理推理、工具调用和状态管理。Dexto 支持本地、云或混合部署,并包含 CLI 和 Web UI。 该团队通过 OpenCV 图像处理等示例,强调了其灵活性以及在编码、营销和播客等方面的潜在应用。Dexto 是模块化的,并允许智能体之间进行通信。目前,它以 Elastic V2 许可发布,旨在促进社区发展,同时防止商业剥削。 Truffle AI 提供自托管版本,并计划推出基于服务的云平台,以及他们现有的无状态智能体产品。他们正在寻求反馈,并鼓励用户尝试快速入门并分享潜在用例。
相关文章

原文
Dexto

An all-in-one toolkit to build agentic applications that turn natural language into real-world actions.

Dexto is a universal intelligence layer for building collaborative, context-aware AI Agents & agentic apps. It orchestrates LLMs, tools, and data into persistent, stateful systems with memory, so you can rapidly create AI assistants, digital companions & copilots that think, act and feel alive.

Dexto combines a configuration-driven framework, robust runtime, and seamless developer experience so you can build, deploy, and iterate on your agents easily.

  • Framework – Define agent behavior in YAML. Instantly swap models and tools without touching code.
  • Runtime – Execution with orchestration, session management, conversation memory, and multimodal support.
  • Interfaces & Tooling – Native support for CLI, Web, APIs, and a TypeScript SDK.

With Dexto, you can build:

  • Autonomous Agents - Agents that plan, execute, and adapt to user goals.
  • Digital Companions - AI assistants & copilots that remember context and anticipate needs.
  • MCP Clients - Connect multiple tools, files, APIs, and data via MCP Servers.
  • MCP Servers - Dexto Web UI and MCP playground help you to easily test your own MCP servers.
  • Multi-Agent Systems - Architect agents that collaborate, delegate, and solve complex tasks together.
  • Agent-as-a-Service – Transform your existing SaaS products and APIs into dynamic, conversational experiences.
  • Agentic Applications – Integrate Dexto as a reasoning engine to power interactive, multimodal, AI-native applications.
  • Batteries Included – Session management, tool orchestration, multimodal support, and production-ready observability.
  • 50+ LLMs – Instantly switch between OpenAI, Anthropic, Google, Groq, local models or bring your own.
  • Run Anywhere – Local for privacy, cloud for reach, or hybrid. Same agent, any deployment.
  • Native Multimodal – Text, images, files, and tools in a single conversation. Upload screenshots, ask questions, take actions.
  • Persistent Sessions – Conversations, context, and memory are saved and can be exported, imported, or shared across environments.
  • Flexible Interfaces – One agent, endless ways to interact: Ready-to-use CLI, WebUI, APIs, or integrate with your own UI.
  • 30+ Tools & MCP – Integrate tools and connect to external servers via the Model Context Protocol (MCP) or use our internal tools.
  • Pluggable Storage – Use Redis, PostgreSQL, SQLite, in-memory, S3 and more for cache, database & blob backends.
  • Human in the loop - Configure approval policies for tool execution, agents can also remember which tools are safe per session.
  • Observability – Built-in OpenTelemetry distributed tracing, token usage monitoring, and error handling.

# NPM global
npm install -g dexto

# —or— build from source
# this sets up dexto CLI from the cloned code
git clone https://github.com/truffle-ai/dexto.git
cd dexto && pnpm install && pnpm install-cli
# 1. Run setup workflow - this prompts for your preferred LLM and API keys and opens the Web UI
dexto

# 2. Try a multi-step task in the web UI:
"create a snake game in HTML/CSS/JS, then open it in the browser"

# 3. Start interactive CLI mode instead of web UI
dexto --mode cli

In 2 -> Dexto will use filesystem tools to write code and browser tools to open it — all from a single prompt. The Web UI (default mode) allows you to navigate previous conversations and experiment with different models, tools and more.

The interactive CLI (3) allows you to interact with agents in the terminal.

See the CLI Guide for full details.

Skip Tool Prompts While Prototyping

dexto --auto-approve "refactor my project using the filesystem and browser tools"

Use the --auto-approve flag to bypass confirmation prompts when you trust the tools being invoked—perfect for fast local iteration. Remove the flag when you want explicit approval again.

Logs are stored in ~/.dexto/logs directory by default.

Use DEXTO_LOG_TO_CONSOLE=true to log to console when running dexto.

Use DEXTO_LOG_LEVEL=debug for debug logs.

Dexto comes with pre-built agent recipes for common use cases. Install and use them instantly:

# List available agents
dexto list-agents

# Install specific agents
dexto install nano-banana-agent podcast-agent coding-agent

# Use an agent with one shot prompt
dexto --agent nano-banana-agent --mode cli "create a futuristic cityscape with flying cars"
dexto --agent podcast-agent --mode cli "generate a podcast intro with two hosts discussing AI"
dexto --agent coding-agent --mode cli "create a landing page for a coffee brand inspired by star wars"

# Alternatively, start the agent in web UI and put in the prompt yourself
dexto --agent nano-banana-agent

Available Agents:

  • Coding Agent – Code generation, refactoring, debugging
  • Nano Banana Agent – Advanced image generation and editing using Google's Nano Banana (Gemini 2.5 Flash Image)
  • Podcast Agent – Advanced podcast generation using Google Gemini TTS for multi-speaker audio content
  • Sora Video Agent – AI video generation using OpenAI's Sora with custom settings, remixing, and reference support
  • Database Agent – Demo agent for SQL queries and database operations
  • GitHub Agent – GitHub operations, PR analysis, and repository management
  • Image Editor Agent – Image editing and manipulation
  • Music Agent – Music creation and audio processing
  • Talk2PDF Agent – Document analysis and conversation
  • Product Researcher – Product naming and branding research
  • Triage Agent – Demo multi-agent customer support routing system

Each agent is pre-configured with the right tools, prompts, and LLM settings for its domain. No setup required—just install and start building.

📚 See the full Agent Registry for detailed information about all agents, their capabilities, use cases, and requirements.

More ready-to-run recipes live in agents/.

🎙️ Podcast Agent: Generate AI Podcasts

Task: Generate an intro for a podcast about the latest in AI.

dexto --agent podcast-agent
Podcast Agent Demo

👁️ Computer Vision Agent: Face Detection & Annotation Using OpenCV

Task: Detect all faces in this image and draw bounding boxes around them.

dexto --agent image-editor-agent
Face Detection Demo

🎮 Coding Agents: Create apps on demand

Build full-stack applications, websites, and interactive games with AI-powered coding agents. Customize them to create your own coding agents.

Task: Can you create a snake game in a new folder and open it when done?

dexto --agent coding-agent

Snake Game Development Demo

📧 Portable Agents: Use your agents from Cursor

Dexto agents are designed to be modular, composable and portable, allowing you to run them from anywhere. In this example, we connect to dexto as an MCP server via Cursor to use our podcast agent from above.

Email to Slack Demo

🎯 Triage Agent: Multi-Agent Customer Support

Create multi-agent systems that can intelligently coordinate and delegate tasks among themselves based on the user query.

dexto --agent triage-agent

Triage Agent Demo

🛠️ Adding Custom MCP Servers

You can add your own Model Context Protocol (MCP) servers to extend Dexto's capabilities with new tools or data sources. Just edit your agent YAML or add it directly in the WebUI.

Add MCP Server Example

🧠 Memory: Persistent Context & Learning

Create and save memories. Your agent automatically uses it to create personalized experiences.

Memory Demo

🛒 MCP Store: Tool Discovery & Integration

Equip your agents from 20+ MCP Servers and start using them via chat - instantly.

MCP Store Demo

📝 Human In The Loop: Dynamic Form Generation

Agents can generate structured forms when they need additional data to make it easier to collect extra info & approvals from users.

User Form Demo

🛒 Browser Agent: Amazon Shopping Assistant

Task: Can you go to amazon and add some snacks to my cart? I like trail mix, cheetos and maybe surprise me with something else?

# Default agent has browser tools
dexto
Dexto: Amazon shopping agent demo
🎮 Playground: Interactive Development Environment

A testing playground to view the tools in your MCP servers before connecting them to LLMs to see the detailed response structures.

Playground Demo
📧 Email to Slack: Automated Email Summaries

Task: Summarize emails and send highlights to Slack

dexto --agent ./agents/examples/email_slack.yml
Email to Slack Demo
🖼️ Hugging Face: Image Generation

Task: Generate a photo of a baby panda.

Hugging Face Image Generation Demo

Mode Command Best for
Web UI dexto Friendly chat interface w/ image support (default)
Interactive CLI dexto --mode cli Everyday automation & quick tasks
Headless Server dexto --mode server REST & WebSocket APIs for agent interaction
MCP Server (Agent) dexto --mode mcp Exposing your agent as a tool for others via stdio
MCP Server (Aggregator) dexto mcp --group-servers Re-exposing tools from multiple MCP servers via stdio
Discord Bot dexto --mode discord Community servers & channels (Requires Setup)
Telegram Bot dexto --mode telegram Mobile chat (Requires Setup)

Run dexto --help for all flags, sub-commands, and environment variables.

Dexto treats each configuration as a unique agent allowing you to define and save combinations of LLMs, servers, storage options, etc. based on your needs for easy portability. Define agents in version-controlled YAML. Change the file, reload, and chat—state, memory, and tools update automatically.

Example configuration:

# agents/my-agent.yml
llm:
  provider: openai
  model: gpt-5-mini
  apiKey: $OPENAI_API_KEY

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

systemPrompt: |
  You are a helpful AI assistant with access to files and web search.

Switch between providers instantly—no code changes required.

Provider Models Setup
OpenAI gpt-5, gpt-5-mini, gpt-5-nano, gpt-4.1, gpt-4.1-mini, gpt-4.1-nano, gpt-4o, gpt-4o-mini, gpt-4o-audio-preview, o4-mini, o3, o3-mini, o1 export OPENAI_API_KEY=...
Anthropic claude-haiku-4-5-20251001, claude-sonnet-4-5-20250929, claude-opus-4-1-20250805, claude-4-opus-20250514, claude-4-sonnet-20250514, claude-3-7-sonnet-20250219, claude-3-5-sonnet-20240620, claude-3-5-haiku-20241022 export ANTHROPIC_API_KEY=...
Google gemini-2.5-pro, gemini-2.5-flash, gemini-2.5-flash-lite, gemini-2.0-flash, gemini-2.0-flash-lite export GOOGLE_GENERATIVE_AI_API_KEY=...
Groq llama-3.3-70b-versatile, meta-llama/llama-4-scout-17b-16e-instruct, meta-llama/llama-4-maverick-17b-128e-instruct, qwen/qwen3-32b, gemma-2-9b-it, openai/gpt-oss-20b, openai/gpt-oss-120b, moonshotai/kimi-k2-instruct, deepseek-r1-distill-llama-70b export GROQ_API_KEY=...
xAI grok-4, grok-3, grok-3-mini, grok-code-fast-1 export XAI_API_KEY=...
Cohere command-a-03-2025, command-r-plus, command-r, command-r7b export COHERE_API_KEY=...
# Switch models via CLI
dexto -m claude-sonnet-4-5-20250929
dexto -m gemini-2.5-pro

You can configure things like LLM, system prompt, MCP servers, storage, sessions, human-in-the loop, telemetry and more!

See our Configuration Guide for complete setup instructions.

Install the @dexto/core library, and build applications with the DextoAgent class. Everything the CLI can do, your code can too.

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

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

// Run tasks
const response = await agent.run('List the 5 largest files in this repo');
console.log(response);

// Hold conversations
await agent.run('Write a haiku about TypeScript');
await agent.run('Make it funnier');

await agent.stop();

See our TypeScript SDK docs for complete examples with MCP tools, sessions, and advanced features.


Create and manage multiple conversation sessions with persistent storage.

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

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

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

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

Switch between models and providers dynamically.

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

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

// Switch model for a specific session id 1234
await agent.switchLLM({ model: 'gpt-5-mini' }, '1234')

// Get supported providers and models
const providers = agent.getSupportedProviders();
const models = agent.getSupportedModels();
const openaiModels = agent.getSupportedModelsForProvider('openai');

For advanced MCP server management, use the MCPManager directly. See the MCP Manager SDK docs for full details.

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();

Configure storage backends for production-ready persistence and caching. See the Storage Configuration guide for full details.

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

sessions:
  maxSessions: 1000
  sessionTTL: 86400000 # 24 hours

Supported Backends:

  • Cache: Redis, In-Memory (fast, ephemeral)
  • Database: PostgreSQL, SQLite, In-Memory (persistent, reliable)

Use Cases:

  • Development: In-memory for quick testing
  • Production: Redis + PostgreSQL for scale
  • Simple: SQLite for single-instance persistence

See the DextoAgent API Documentation for complete method references.


Click to expand for full CLI reference (`dexto --help`)
Usage: dexto [options] [command] [prompt...]

Dexto CLI - AI-powered assistant with session management

Basic Usage:
  dexto                    Start web UI (default)
  dexto "query"            Run one-shot query (auto-uses CLI mode)
  dexto -p "query"         Run one-shot query, then exit
  cat file | dexto -p "query"  Process piped content

CLI Mode:
  dexto --mode cli         Start interactive CLI REPL

Session Management:
  dexto -c                 Continue most recent conversation
  dexto -c -p "query"      Continue with one-shot query, then exit
  dexto -r "<session-id>" "query"  Resume with one-shot query

Tool Confirmation:
  dexto --auto-approve     Auto-approve all tool executions

Agent Selection:
  dexto --agent coding-agent       Use installed agent by name
  dexto --agent ./my-agent.yml     Use agent from file path
  dexto -a agents/custom.yml       Short form with relative path

Advanced Modes:
  dexto --mode server      Run as API server
  dexto --mode discord     Run as Discord bot
  dexto --mode telegram    Run as Telegram bot
  dexto --mode mcp         Run as MCP server

Session Commands: dexto session list|history|delete • search
Search: dexto search <query> [--session <id>] [--role <role>]

See https://docs.dexto.ai for documentation and examples

Arguments:
  prompt                           Natural-language prompt to run once. If not
                                   passed, dexto will start as an interactive
                                   CLI

Options:
  -v, --version                    output the current version
  -a, --agent <id|path>            Agent ID or path to agent config file
  -p, --prompt <text>              Run prompt and exit. Alternatively provide a
                                   single quoted string as positional argument.
  -s, --strict                     Require all server connections to succeed
  --no-verbose                     Disable verbose output
  --no-interactive                 Disable interactive prompts and API key
                                   setup
  --skip-setup                     Skip global setup validation (useful for MCP
                                   mode, automation)
  -m, --model <model>              Specify the LLM model to use
  --router <router>                Specify the LLM router to use (vercel or
                                   in-built)
  --auto-approve                   Always approve tool executions without
                                   confirmation prompts
  -c, --continue                   Continue most recent conversation
  -r, --resume <sessionId>         Resume session by ID
  --mode <mode>                    The application in which dexto should talk
                                   to you - web | cli | server | discord |
                                   telegram | mcp (default: "web")
  --web-port <port>                port for the web UI (default: 3000)
                                   (default: "3000")
  --api-port <port>                port for the API server (default: web-port +
                                   1)
  --no-auto-install                Disable automatic installation of missing
                                   agents from registry
  -h, --help                       display help for command

Commands:
  create-app                       Scaffold a new Dexto Typescript app
  init-app                         Initialize an existing Typescript app with
                                   Dexto
  setup [options]                  Configure global Dexto preferences
  install [options] [agents...]    Install agents from registry or custom YAML
                                   files/directories
  uninstall [options] [agents...]  Uninstall agents from the local installation
  list-agents [options]            List available and installed agents
  which <agent>                    Show the path to an agent
  session                          Manage chat sessions
  search [options] <query>         Search session history
  mcp [options]                    Start Dexto as an MCP server. Use
                                   --group-servers to aggregate and re-expose
                                   tools from configured MCP servers.
                                   In the future, this command will expose the
                                   agent as an MCP server by default.

See the CLI Guide for full details.



We collect anonymous usage data (no personal/sensitive info) to help improve Dexto. This includes:

  • Commands used
  • Command execution time
  • Error occurrences
  • System information (OS, Node version)
  • LLM Models used

To opt-out:

Set env variable DEXTO_ANALYTICS_DISABLED=1

We welcome contributions! Refer to our Contributing Guide for more details.

Dexto is built by the team at Truffle AI.
Join our Discord to share projects, ask questions, or just say hi!

Discord

If you enjoy Dexto, please give us a ⭐ on GitHub—it helps a lot!


Thanks to all these amazing people for contributing to Dexto!

Contributors


Elastic License 2.0. See LICENSE for full terms.

联系我们 contact @ memedata.com