Dexto
开源 AI 智能体运行框架:用 YAML 定义智能体,内置编码智能体,支持 50+ 模型热切换、MCP 工具集成与会话记忆。
证据显示容器以非 root 用户运行、工作区句柄拒绝越根路径访问('Workspace path escapes root')、进程能力仅在显式请求时开放;这些支持 least_privilege 得 2。但未见用户确认门控、敏感数据(API key)保护/脱敏机制、外部副作用审计或回滚机制的直接证据,均扣分;package. 用 overrides 固定若干有漏洞历史的依赖(tough-cookie、qs、jws 等)属部分缓解而非系统性供应链管理。作者字段为空,署名不完整。
集成测试针对实际契约(打包产物加载、路径越界拒绝、能力协商)编写,自洽性尚可;CI 使用 --frozen-lockfile 与固定 Node 版本支持依赖可用性;测试断言包含具体错误信息。未见主 README 与全部文档,整体文档-代码一致性只能部分确认。
面向 CLI/SDK/服务器/Docker 多种使用场景,Node>=20 引擎声明明确;能力按 intent(read/process)协商,边界清晰。触发精度缺乏提示词/工具路由层面的证据,扣分。
monorepo 结构清晰(@dexto/* 命名一致)、有 changesets 版本管理与 CI 构建、Docker 文档完整含 compose 示例,安装说明充分。许可证文件存在但仓库元数据为 NOASSERTION 且 package. 标注为 Elastic-2.0(源码可用限制性许可,非 OSI 开源),对企业采用构成实质约束,扣分;已知局限章节未见。作者字段为空,维护主体只能从组织结构间接推断。
提供健康检查端点、REST/SSE API、SDK 与 agent image 打包器,输出可用性可评 2;相比直接使用 MCP SDK,其 image/skill/workspace 抽象有增量价值。但成本收益(LLM token 成本控制、审批开销)证据不足,扣分。
测试直接对应代码声明的行为(越界拒绝、能力门控),主张可追溯到测试;事实与推断基本可分。但本次审阅仅见到部分仓库文件,跨来源(README 主文档、docs/)相互印证不充分,扣分。
- 许可证为 Elastic License 2.0(源码可用而非开源),禁止将其作为托管/托管服务提供给第三方,企业集成前须做合规评估。
- 内置工具包含文件系统与进程执行(process-tools),且以 .env 明文传入 API key;部署时应限制挂载范围、网络出口并轮换密钥。
- 未见到系统性的用户确认/审批门控与外部副作用审计证据,生产使用前应自行在宿主侧加沙箱。
- 依赖安全依赖 pnpm overrides 的点状固定,建议补充 lockfile 审计(如 pnpm audit / Dependabot)。
这个 Agent 能做什么,适合哪些场景?
Dexto 是 Truffle AI 开发的智能体编排框架(agent harness),将大语言模型变成有状态、可执行操作、可恢复错误的可靠智能体。项目基于 TypeScript 构建,提供 CLI、Web UI、REST/SSE API 服务器和 @dexto/core SDK 四种使用方式。它自带一个生产级编码智能体,可通过命令行或网页界面直接使用,能读写代码、执行 shell 命令、生成子智能体。智能体通过版本化 YAML 文件定义,可随时更换 LLM 提供商(OpenAI、Anthropic、Google、Groq、xAI、Ollama 本地模型等)而无需改动代码。Dexto 既是 MCP 客户端(连接 30+ 工具服务器),也可作为 MCP 服务器暴露给 Claude Code、Cursor 等工具。注意该项目采用 Elastic License 2.0 许可证,并非标准开源协议。
Dexto 读取 YAML 配置(llm、mcpServers、permissions、storage 等字段)来实例化智能体。运行时它调用所配置的 LLM 提供商 API,通过 MCPManager 连接 Model Context Protocol 服务器(如 filesystem、Puppeteer 浏览器),执行工具调用并支持细粒度权限审批(manual 或 auto-approve 模式)。持久化会话与记忆存储在 Redis/PostgreSQL/SQLite 等后端,支持 dexto -c 续聊、dexto -r <id> 恢复会话、dexto search 搜索历史。智能体可通过 agent-spawner 工具生成 explore-agent 等子智能体并行处理任务。运行模式包括 Web UI(默认)、CLI(--mode cli)、服务器(--mode server,暴露 REST/SSE 接口如 POST /api/message)和 MCP 服务器(--mode mcp,通过 stdio 供 Claude Code/Cursor 接入)。SDK 方面通过 npm 安装 @dexto/core,使用 DextoAgent 类进行编程:createSession()、generate()、stream()、switchLLM()、multimodal 输入等。
- 开发者想在终端里自主构建、调试和重构整个代码库,可用内置 coding-agent(dexto --agent coding-agent)自动读写代码、跑测试、执行 shell 命令
- 团队需要把智能体嵌入自家应用,可用 @dexto/core SDK 以编程方式创建会话、流式生成、切换模型,并通过 startHonoApiServer 暴露 REST/SSE 接口
- 使用 Claude Code 或 Cursor 的用户想把 Dexto 智能体作为 MCP 服务器接入(dexto --mode mcp --agent coding-agent --auto-approve --no-elicitation)
- 注重隐私的用户可用 Ollama 或 node-llama-cpp 在本地运行 GGUF 模型(自动检测 Metal/CUDA/Vulkan GPU),数据不出机器
- 需要多智能体协作的场景(如 triage-agent)可让主智能体通过 agent-spawner 委派 explore-agent 等子智能体处理子任务
- 客服或陪伴类应用开发者可利用持久会话、记忆系统和 Discord/Telegram 集成构建跨重启保留上下文的助手
这个 Agent 有哪些优点和局限?
- 配置驱动:智能体完全由版本化 YAML 定义,换模型、换工具不需改代码,可即时重载
- 模型无关:内置 OpenAI、Anthropic、Google、Groq、xAI、Cohere、AWS Bedrock、Vertex AI、OpenRouter、LiteLLM 及本地 Ollama/GGUF 支持,会话中可热切换模型
- MCP 双向支持:既可作为客户端连接 30+ MCP 工具服务器,也可作为 MCP 服务器被 Claude Code/Cursor 调用
- 开箱即用:会话持久化、记忆、多模态、可观测性、人类审批(manual/auto-approve/toolPolicies)内置于框架
- 多种交付形态:CLI、Web UI、REST/SSE 服务器、SDK 库、MCP 服务器,以及 Discord/Telegram 集成示例
- 许可证为 Elastic License 2.0(GitHub 元数据显示 NOASSERTION),限制作为竞品服务提供,不是 OSI 开源协议,商用集成需审查条款
- 项目标注为 Beta 状态,API 和配置格式可能变动,生产采用存在升级风险
- 默认收集匿名遥测数据(命令、执行时间、错误、系统信息、所用模型),需手动设置 DEXTO_ANALYTICS_DISABLED=1 关闭
- MCP 模式必须加 --auto-approve --no-elicitation(因非交互运行),削弱了人工审批的安全控制
- 从源码构建需要 pnpm 和 Node.js 工具链;生产级存储需要自行配置 Redis/PostgreSQL
如何安装或部署这个 Agent?
推荐原生安装:macOS/Linux/WSL 执行 curl -fsSL https://dexto.ai/install | bash;Windows PowerShell 执行 irm https://dexto.ai/install.ps1 | iex。或从源码构建:git clone https://github.com/truffle-ai/dexto.git && cd dexto && pnpm install && pnpm install-cli(需要 Node.js 和 pnpm)。SDK 方式:npm install @dexto/core。首次运行会启动设置向导(dexto setup)配置 LLM 提供商和 API 密钥(如 OPENAI_API_KEY、ANTHROPIC_API_KEY),或配置本地 Ollama 模型。
如何使用这个 Agent?
安装后运行 dexto 启动默认 Web UI 并进入首次设置向导;dexto --mode cli 进入交互式终端(输入 / 查看命令);dexto -p "create a landing page" 执行一次性任务;dexto --agent coding-agent 启动编码智能体;dexto -m claude-sonnet-4-5-20250929 切换模型;dexto -c 继续上次对话;dexto --mode server --port 3001 启动 REST/SSE 服务器;dexto --mode mcp 作为 MCP 服务器运行。SDK 示例: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);。可通过 dexto agents install <name> 从 Agent Registry 安装预置智能体。日志位于 ~/.dexto/logs/,用 DEXTO_LOG_LEVEL=debug 开启调试。
这个 Agent 与同类方案有什么区别?
README 将 Dexto 类比为'AI 智能体的操作系统'(LLM 是 CPU,上下文窗口是 RAM,Dexto 是操作系统),定位与直接调用 LLM API 的裸方案不同:它提供编排、状态、工具与恢复层。文档明确展示了将 Dexto 作为 MCP 服务器接入 Claude Code 和 Cursor 的用法,可作为这些工具的补充而非替代。