一个集成工具包,用于构建将自然语言转化为实际操作的应用程序。
<div align="center"> <img src="https://github.com/user-attachments/assets/89d30349-0cb1-4160-85db-d99a80a71d7a" alt="Dexto 演示" width="700" /> </div>Dexto 是一个通用智能层,用于构建协作式、上下文感知的 AI 代理及代理应用程序。它协调大型语言模型(LLMs)、工具和数据,形成具有记忆功能的持久、有状态系统,因此你可以快速创建思考、行动并感觉像活生生的 AI 助手、数字伴侣和副驾。
Dexto 结合了基于配置的框架、强大的运行时环境以及无缝的开发者体验,使你可以轻松地构建、部署和迭代你的代理。
# 全局安装 NPM
npm install -g dexto
# —或— 从源码构建
# 这将从克隆的代码设置 dexto CLI
git clone https://github.com/truffle-ai/dexto.git
cd dexto && pnpm install && pnpm install-cli
# 1. 运行设置工作流 - 这将提示你选择首选的 LLM 和 API 密钥,并打开 Web UI
dexto
# 2. 在 Web UI 中尝试一个多步骤任务:
"创建一个 HTML/CSS/JS 的贪吃蛇游戏,然后在浏览器中打开它"
# 3. 开始交互式 CLI 模式而不是 Web UI
dexto --mode cli
在 2 -> Dexto 将使用文件系统工具编写代码,并使用浏览器工具打开它——所有这些都来自一个提示。默认模式(Web UI)允许你在之前的对话中导航并实验不同的模型、工具等。
交互式 CLI(3)允许你在终端中与代理进行交互。
参见 CLI 指南 获取更多详情。
dexto --auto-approve "使用文件系统和浏览器工具重构我的项目"
使用 --auto-approve 标志来绕过工具执行确认提示——当你信任调用的工具时,这非常适合快速本地迭代。当你需要显式批准时,请移除该标志。
日志默认存储在 ~/.dexto/logs 目录中。
使用 DEXTO_LOG_TO_CONSOLE=true 当运行 dexto 时将日志输出到控制台。
使用 DEXTO_LOG_LEVEL=debug 来获取调试日志。
Dexto 提供了一些预构建的代理配方,适用于常见用例。立即安装并使用它们:
# 列出可用代理
dexto list-agents
# 安装特定代理
dexto install nano-banana-agent podcast-agent coding-agent
# 使用单次提示的代理
dexto --agent nano-banana-agent --mode cli "创建一个带有飞行汽车的未来城市景观"
dexto --agent podcast-agent --mode cli "生成一个由两位主持人讨论人工智能的播客开头"
dexto --agent coding-agent --mode cli "为一个受星球大战启发的咖啡品牌创建一个登陆页面"
# 或者,在 Web UI 中启动代理并自己输入提示
dexto --agent nano-banana-agent
可用代理:
每个代理都预先配置了正确的工具、提示和 LLM 设置,以适应其领域。无需设置——只需安装并开始构建。
📚 查看完整的 代理注册表 获取有关所有代理、其能力、用例和要求的详细信息。
更多现成的配方位于 agents/。
任务: 生成关于最新人工智能的播客开头。
dexto --agent podcast-agent
<img src="https://gips1.baidu.com/it/u=580706796,3435749170&fm=3081&app=3_081&f=GIF?w=900&h=506" alt="播客代理演示" width="600"/>
任务: 检测此图像中的所有人脸并在它们周围绘制边界框。
dexto --agent image-editor-agent
<img src="https://gips0.baidu.com/it/u=3924558359,3707577727&fm=3081&app=3081&f=GIF?w=900&h=_06" alt="人脸检测演示" width="600">
使用 AI 驱动的编码代理构建全栈应用程序、网站和互动游戏。自定义它们以创建自己的编码代理。
任务: 你能在一个新文件夹中创建一个贪吃蛇游戏并在完成后打开吗?
dexto --agent coding-agent
<img src=".github/assets/coding_agent_demo.gif" alt="贪吃蛇游戏开发演示" width="600"/>
Dexto 代理设计为模块化、可组合且可移植,允许你从任何地方运行它们。在这个例子中,我们通过 Cursor 连接到 dexto 作为 MCP 服务器,以使用上面的播客代理。
<img src="https://github.com/user-attachments/assets/fd75a63f-4d29-447a-be24-6943e34c387f" alt="电子邮件到 Slack 演示" width="600">创建多代理系统,根据用户查询智能协调和分配任务。
dexto --agent triage-agent
<img src=".github/assets/triage_agent_demo.gif" alt="分诊代理演示" width="600">
你可以添加自己的模型上下文协议(MCP)服务器,以扩展 Dexto 的功能,包括新的工具或数据源。只需编辑代理 YAML 或直接在 WebUI 中添加。
<img src="https://github.com/user-attachments/assets/1a3ca1fd-31a0-4e1d-ba93-23e1772b1e79" alt="添加 MCP 服务器示例" width="600"/>创建并保存记忆。您的代理会自动使用它来创建个性化的体验。
<img src=".github/assets/memory_demo.gif" alt="记忆演示" width="600"/>从 20 多个 MCP 服务器中装备你的代理,并通过聊天立即开始使用它们。
当代理需要额外的数据时,可以生成结构化的表单,以便更容易地收集额外信息和用户的批准。
<img src=".github/assets/user_form_demo.gif" alt="用户表单演示" width="600"/>任务: 能去亚马逊并添加一些零食到我的购物车吗?我喜欢混合坚果、奇多,也许再给我惊喜一下?
# 默认代理具有浏览器工具
dexto
<a href="https://youtu.be/C-Z0aVbl4Ik">
<img src="https://gips2.baidu.com/it/u=3318091746,609869871&fm=3081&app=3081&f=GIF?w=900&h=506" alt="Dexto:亚马逊购物代理演示" width="600"/>
</a>
</details>
<details>
<summary><strong>🎮 游戏场:互动开发环境</strong></summary>
一个测试游乐场,查看你的 MCP 服务器中的工具,然后再将它们连接到 LLM,以查看详细的响应结构。
<img src=".github/assets/playground_demo.gif" alt="游乐场演示" width="600"> </details> <details> <summary><strong>📧 电子邮件到 Slack:自动化电子邮件摘要</strong></summary>任务: 总结电子邮件并将亮点发送到 Slack
dexto --agent ./agents/examples/email_slack.yml
<img src="assets/email_slack_demo.gif" alt="电子邮件到 Slack 演示" width="600">
</details>
<details>
<summary><strong>🖼️ Hugging Face:图像生成</strong></summary>
任务: 生成一张熊猫宝宝的照片。
| 模式 | 命令 | 最适合 |
|---|---|---|
| Web UI | dexto | 友好的聊天界面,支持图像(默认) |
| 交互式 CLI | dexto --mode cli | 日常自动化和快速任务 |
| 无头服务器 | dexto --mode server | 用于代理交互的 REST 和 SSE 流式传输 API |
| MCP 服务器(代理) | dexto --mode mcp | 通过标准输入输出暴露你的代理作为工具 |
| MCP 服务器(聚合器) | dexto mcp --group-servers | 通过标准输入输出重新暴露多个 MCP 服务器中的工具 |
| Discord 机器人 | dexto --mode discord | 社区服务器和频道(需要设置) |
| Telegram 机器人 | dexto --mode telegram | 移动聊天(需要设置) |
运行 dexto --help 获取 所有标志、子命令和环境变量。
Dexto 将每个配置视为一个独特的代理,允许你根据需要定义和保存 LLM、服务器、存储选项等的组合,便于移植。在受版本控制的 YAML 中定义代理。更改文件,重新加载并聊天——状态、记忆和工具会自动更新。
示例配置:
# 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: |
你是一个拥有访问文件和网络搜索权限的有用 AI 助手。
即时在提供商之间切换——无需更改代码。
| 提供商 | 模型 | 设置 |
|---|---|---|
| OpenAI | gpt-5.1-chat-latest, gpt-5.1, gpt-5.1-codex, gpt-5.1-codex-mini, gpt-5, gpt-5-mini, gpt-5-nano, gpt-5-pro, gpt-5-codex, 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 | 在 UI 中更改模型并添加 API 密钥 |
| Anthropic | claude-haiku-4-5-20251001, claude-sonnet-4-5-20250929, claude-opus-4-5-20251101, claude-opus-4-1-20250805, claude-4-opus-20250514, claude-4-sonnet-20250514, claude-3-7-sonnet-2_0250219, claude-3-5-sonnet-20240620, claude-3-5-haiku-20241022 | 在 UI 中更改模型并添加 API 密钥 |
gemini-3-pro-preview, gemini-3-pro-image-preview, gemini-2.5-pro, gemini-2.5-flash, |