Appearance
Deep Agents Code
Deep Agents Code 是基于 Deep Agents SDK 构建的开源终端编码 Agent,命令名为 dcode。它把 interactive session、项目上下文、memory、skills、subagents、MCP、shell 和审批界面组合成可直接使用 的开发者产品,但不取代底层 SDK,也不等同于部署 CLI。
Beta:截至 2026-07-13,PyPI 当前版本为
deepagents-code 0.1.36,要求 Python>=3.11,<4.0,classifier 为 Beta。
三条产品线不要混用
| 包或命令 | 当前基线 | 负责什么 |
|---|---|---|
deepagents | Python 0.6.12 / TypeScript 1.10.7 | 在代码中构建自定义 Agent Harness |
deepagents-code / dcode | Python 0.1.36 | 交互或非交互的终端编码 Agent |
deepagents-cli / deepagents | Python 0.2.2 | init、dev、deploy 等部署管理 |
交互式 REPL 已从 deepagents-cli 移到 deepagents-code。要写代码用 dcode;要把配置部署为 Managed Deep Agents/LangSmith 资源,才使用 deepagents deployment CLI。
前端类比
可以把 SDK 类比为 React,Deep Agents Code 类比为基于 React 做好的 IDE 产品,deployment CLI 类比为发布平台的命令行。三者共享技术栈,但 API、用户和生命周期不同。
Deep Agents 原生语义:dcode 在本地运行 Agent loop 和配置层,并通过 Deep Agents backend 把文件/命令定向到本地或 remote sandbox;它仍依赖模型 tool calling、LangGraph state 和 Harness middleware。
安装前先审阅远程脚本
官方快速安装命令会下载并立即执行远程脚本:
bash
curl -LsSf https://langch.in/dcode | bash
dcode这条命令简便,但把下载与执行合并成一步。安全敏感环境应先保存、审阅,再由用户决定是否执行:
bash
curl -LsSf https://langch.in/dcode -o /tmp/install-dcode.sh
less /tmp/install-dcode.sh
bash /tmp/install-dcode.sh还应核对重定向终点、安装目录和包来源。本文不执行上述命令,也不写入本机配置。
配置与能力组合
Deep Agents Code 把用户级配置放在 ~/.deepagents/,把项目级 memory、skills 和 subagents 放在 仓库内 .deepagents/。项目配置会随仓库内容进入信任边界,打开陌生仓库后应先审查这些文件。
| 能力 | 在编码工作流中的作用 | 主要风险 |
|---|---|---|
| Memory | 记住约定与历史经验 | 恶意或过时指令跨 session 持续 |
| Skills | 按任务加载工作流和资源 | 脚本/说明可诱导执行高风险动作 |
| Subagents | 隔离审查、测试和调研上下文 | 并发成本、写冲突、权限扩散 |
| MCP | 引入外部工具 | 远端身份、工具内容和副作用 |
| HITL | 审批文件与 shell 操作 | auto-approve 会缩小人工门槛 |
| Remote sandbox | 把 tool execution 移出宿主 | 网络、凭据、TTL 仍需配置 |
Deep Agents Code 当前不提供 async subagents;项目和用户级同步 subagents 使用各自目录中的 AGENTS.md 定义。
交互与自动化边界
交互模式适合边看 diff 边审批。非交互模式用 -n,每次从新 thread 开始,但文件型 memory、skills 和配置仍会持续存在:
bash
dcode -n "只分析失败测试并给出修复建议" --max-turns 8 --timeout 120非交互模式默认禁用 shell;-S 可以允许特定命令。不要在不可信输入或含秘密的环境中使用 -S all,也不要为了省去提示全局启用 auto-approve。CI 中还要限制 turn、墙钟时间、输出、费用和 可修改路径。
Remote Sandbox
dcode --sandbox <provider> 使用 sandbox-as-tool 模式:Agent loop 留在本地,read_file、 write_file、execute 等工具定向到远程环境。它保护宿主,但不会阻止 sandbox 内的 prompt injection 或网络外传。
bash
dcode --sandbox daytona
dcode --sandbox modal --sandbox-setup ./reviewed-setup.shSetup script 也属于代码执行入口。只使用已审阅脚本,给 sandbox 配置最小网络、短 TTL、资源上限, 并把凭据留在外部工具或 auth proxy 中。
Threat Model 的正确读法
官方仓库提供 libs/code/THREAT_MODEL.md,覆盖 TUI、工具、MCP、hooks、sandbox、session 和配置等 边界。该文档自己声明为自动生成、实验性且可能不完整,因此应把它当成审查清单的起点,而不是安全 认证。
尤其要独立验证:
- 本地 shell、hook 和 startup command 能访问哪些宿主资源。
- 项目 memory/skills/MCP 配置如何进入 prompt 与执行面。
- URL、Unicode、路径和命令参数如何校验。
- Session、trace、日志和 artifact 是否包含源码或凭据。
- Remote sandbox 的 provider 保证是否符合组织威胁模型。