
- 文件操作 - 使用工具读取、写入和编辑文件,使代理能够管理和修改代码及文档。
- Shell 执行 - 执行命令以运行测试、构建项目、管理依赖项并与版本控制交互。
- Web 搜索 - 搜索网络以获取最新信息和文档(需要 Tavily API 密钥)。
- HTTP 请求 - 向 API 和外部服务发出 HTTP 请求,用于数据获取和集成任务。
- 任务规划与跟踪 - 将复杂任务分解为离散步骤并跟踪进度。
- 内存存储与检索 - 跨会话存储和检索信息,使代理能够记住项目规范和学习到的模式。
- 上下文压缩与卸载 - 总结较旧的对话消息并将原始消息卸载到存储,在长时间会话期间释放上下文窗口空间。
- 人在环中 - 要求对敏感工具操作进行人工批准。
- 技能 - 使用自定义专业知识和指令扩展代理功能。
- MCP 工具 - 从 Model Context Protocol 服务器加载外部工具。
- 追踪 - 在 LangSmith 中追踪代理操作以实现可观察性和调试。
内置工具完整列表
内置工具完整列表
内置工具
代理附带以下内置工具,无需配置即可使用:| 工具 | 描述 | 人在环中 |
|---|---|---|
ls | 列出文件和目录 | - |
read_file | 读取文件内容;为选定模型提供多模态内容 | - |
write_file | 创建或覆盖文件 | 需要1 |
edit_file | 对现有文件进行定向编辑 | 需要1 |
glob | 查找匹配模式的文件 | - |
grep | 跨文件搜索文本模式 | - |
execute | 在本地或远程沙箱中执行 shell 命令 | 需要1 |
web_search | 使用 Tavily 搜索网络 | 需要1 |
fetch_url | 获取网页并转换为 markdown | 需要1 |
task | 将工作委托给子代理以并行执行 | 需要1 |
ask_user | 向用户提出自由格式或多项选择问题 | - |
compact_conversation | 总结较旧的消息,将原始消息卸载到后端存储,并在上下文中用摘要替换它们 | 混合2 |
write_todos | 为复杂工作创建和管理任务列表 | - |
当以非交互方式运行 CLI(通过
-n 或管道 stdin)时,即使使用 -y/--auto-approve,shell 执行也会默认禁用。使用 -S/--shell-allow-list 来允许特定命令(例如 -S "pytest,git,make"),使用 recommended 表示安全默认值,或使用 all 来允许任何命令。也支持 DEEPAGENTS_CLI_SHELL_ALLOW_LIST 环境变量。有关更多详细信息,请参阅非交互模式和管道。/conversation_history/{thread_id}.md),并在上下文中用摘要替换它们。如果需要,代理仍然可以从卸载的文件中检索完整历史记录。compact_conversation 工具允许代理(或您)按需触发卸载。当作为工具调用时,默认需要用户批准。Deep Agents CLI 在 Windows 上不受官方支持。Windows 用户可以尝试在 Windows Subsystem for Linux (WSL) 下运行。
快速入门
设置模型凭据
将您的提供商 API 密钥导出为环境变量或添加到 CLI 与任何支持工具调用的 LLM 兼容。OpenAI、Anthropic 和 Google 默认安装。对于其他提供商(Ollama、Groq、xAI 等),请参阅提供商。
~/.deepagents/.env:- OpenAI
- Anthropic
- Google
- 其他
安装和运行
启用追踪(可选)
要在 LangSmith 中查看代理操作、工具调用和决策,请将以下内容添加到 有关设置详细信息和用法,请参阅使用 LangSmith 进行追踪。
~/.deepagents/.env 或在 shell 中导出变量:~/.deepagents/.env
提供商
OpenAI、Anthropic 和 Google 开箱即用。其他提供商单独安装,因此您只需拉取所需内容。交互模式
像在聊天界面中一样自然地输入。 代理将使用其内置工具、技能和内存来帮助您完成任务。斜杠命令
斜杠命令
在 CLI 会话中使用以下命令:
/model- 切换模型或打开交互式模型选择器。有关详细信息,请参阅切换模型/remember [context]- 查看对话并更新内存和技能。可选地传递额外上下文/skill:<name> [args]- 按名称直接调用技能。技能的SKILL.md指令将与您提供的任何参数一起注入到提示中/skill-creator [args]- 创建有效代理技能的指南/offload(别名/compact)- 通过将消息卸载到存储并附带摘要占位符来释放上下文窗口空间。如果需要,代理可以从卸载的文件中检索完整历史记录/tokens- 显示当前上下文窗口令牌使用情况明细/clear- 清除对话历史记录并启动新线程/threads- 浏览并恢复之前的对话线程/mcp- 显示活动的 MCP 服务器和工具/reload- 重新读取.env文件,刷新配置,并在不重新启动的情况下重新发现技能。对话状态将被保留。有关覆盖行为,请参阅DEEPAGENTS_CLI_前缀/theme- 打开交互式主题选择器以切换颜色主题。内置主题可用,加上任何用户定义主题/update- 在线检查并安装 CLI 更新。检测您的安装方法(uv、Homebrew、pip)并运行相应的升级命令/auto-update- 切换自动更新的开或关/trace- 在 LangSmith 中打开当前线程(需要LANGSMITH_API_KEY)/editor- 在外部编辑器($VISUAL/$EDITOR)中打开当前提示。请参阅外部编辑器/changelog- 在浏览器中打开 CLI 更新日志/docs- 在浏览器中打开文档/feedback- 打开 GitHub 问题页面以提交错误报告或功能请求/version- 显示已安装的deepagents-cli和 SDK 版本/help- 显示帮助和可用命令/quit- 退出 CLI
Shell 命令
Shell 命令
输入
! 进入 shell 模式,然后输入您的命令。键盘快捷键
键盘快捷键
通用
| 快捷键 | 操作 |
|---|---|
Enter | 提交提示 |
Shift+Enter, Ctrl+J, Alt+Enter, 或 Ctrl+Enter | 插入换行符 |
Ctrl+A | 选择输入中的所有文本 |
@filename | 自动补全文件并注入内容 |
Shift+Tab 或 Ctrl+T | 切换自动批准 |
Ctrl+U | 删除到行首 |
Ctrl+X | 在外部编辑器中打开提示 |
Ctrl+O | 展开/折叠最近的工具输出 |
Escape | 中断当前操作 |
Ctrl+C | 中断或退出 |
Ctrl+D | 退出 |
非交互模式和管道
使用-n 运行单个任务而不启动交互式 UI:
-n 或 -m 结合使用时,管道内容将首先出现,然后是您传递给标志的文本。
管道输入的最大大小为 10 MiB。
-S/--shell-allow-list 来启用特定命令(例如 -S "pytest,git,make"),使用 recommended 表示安全默认值,或使用 all 来允许任何命令。
干净输出和缓冲
干净输出和缓冲
使用 在非交互模式下,代理被指示做出合理的假设并自主进行,而不是询问澄清问题。它还倾向于使用非交互式命令变体(例如
-q 获取适合管道传输到其他命令的干净输出,并使用 --no-stream 在写入 stdout 之前缓冲完整响应(而不是流式传输):npm init -y, apt-get install -y)。Shell 执行示例
Shell 执行示例
切换模型
您可以在会话期间使用/model 命令切换模型,而无需重新启动 CLI,或者在启动时使用 --model 标志:
/model 以打开交互式模型选择器,该选择器按提供商分组显示可用模型。
有关切换模型、设置默认值以及添加自定义模型提供商的完整详细信息,请参阅模型提供商。
交互式模型选择器
交互式模型选择器
选择器为突出显示的模型显示详细页脚,包括上下文窗口大小、输入模态(文本、图像、音频、PDF、视频)和功能(推理、工具调用、结构化输出)。由
--profile-override 或 config.toml 覆盖的值用黄色 * 前缀标记。模型参数
模型参数
在会话期间使用 这些是仅会话覆盖,具有最高优先级,覆盖配置文件
--model-params 传递额外的模型构造函数参数:params 中的值。--model-params 不能与 --default 组合使用。配置
CLI 将所有配置存储在~/.deepagents/ 下。在该目录中,每个代理都有自己的子目录(默认:agent):
| 路径 | 用途 |
|---|---|
~/.deepagents/config.toml | 模型默认值、提供商设置、构造函数参数、配置文件覆盖、主题、更新设置、MCP 信任存储 |
~/.deepagents/.env | 全局 API 密钥和机密。请参阅配置 |
~/.deepagents/hooks.json | 生命周期事件钩子(会话开始/结束、任务完成等) |
~/.deepagents/<agent_name>/ | 每个代理的内存、技能和对话线程 |
.deepagents/(项目根目录) | 项目特定的内存和技能,在 git 仓库内运行时加载 |
config.toml 模式、提供商参数、配置文件覆盖和钩子配置——请参阅配置。
内存
有两种主要方法可以自定义任何代理:-
内存:
AGENTS.md文件和自动保存的内存,跨会话持久化。用于通用编码风格、偏好和学习到的规范。 - 技能:全局和项目特定的上下文、规范、指南或指令。用于仅在执行特定任务时需要的上下文。
/remember 明确提示代理从当前对话更新其内存和技能。
自动内存
当您使用代理时,它会自动将信息存储在~/.deepagents/<agent_name>/memories/ 中,使用内存优先协议作为 markdown 文件:
- 研究:在开始任务前搜索内存以获取相关上下文
- 响应:在执行期间不确定时检查内存
- 学习:自动保存新信息以供未来会话使用
AGENTS.md 文件
AGENTS.md 文件 提供持久上下文,在会话开始时始终加载:
- 全局:
~/.deepagents/<agent_name>/AGENTS.md— 每个会话加载。 - 项目:任何 git 项目根目录中的
.deepagents/AGENTS.md— 从该项目内运行 CLI 时加载。
内存工作原理
内存工作原理
代理在回答项目特定问题或当您引用过去的工作或模式时,也可能读取其内存文件。当您提供有关其应如何行为的反馈、对其工作的反馈或记住某事的指令时,代理将更新
AGENTS.md。
如果它从您的交互中识别出模式或偏好,它也会更新其内存。要在其他内存文件中添加更多结构化项目知识,请将它们添加到 .deepagents/ 中,并在 AGENTS.md 文件中引用它们。
您必须在 AGENTS.md 文件中引用其他文件,以便代理意识到它们。
其他文件不会在启动时读取,但代理可以在需要时引用和更新它们。何时使用全局与项目 AGENTS.md
何时使用全局与项目 AGENTS.md
全局
AGENTS.md (~/.deepagents/agent/AGENTS.md)- 您的个性、风格和通用编码偏好
- 通用语气和沟通风格
- 通用编码偏好(格式、类型提示等)
- 适用于所有地方的工具使用模式
- 不随项目变化的工作流和方法论
AGENTS.md(项目根目录中的 .deepagents/AGENTS.md)- 项目特定的上下文和规范
- 项目架构和设计模式
- 此代码库特定的编码规范
- 测试策略和部署流程
- 团队指南和项目结构
使用技能
技能是可重用的代理功能,提供专门的工作流和领域知识。 您可以使用技能为您的深度代理提供新功能和专业知识。 深度代理技能遵循代理技能标准。 添加技能后,您的深度代理将自动使用它们,并在您使用代理并提供额外信息时更新它们。 使用/remember 明确提示代理从当前对话更新技能和内存。
添加技能
添加技能
-
创建一个技能:
这将生成:
-
打开生成的
SKILL.md并编辑文件以包含您的指令。 -
可选地将其他脚本或资源添加到
test-skill文件夹。有关更多信息,请参阅示例。
安装社区技能
安装社区技能
您可以使用 Vercel 的 Skills CLI 等工具在您的环境中安装社区代理技能,并使它们可用于您的深度代理:全局安装(
-g)将技能符号链接到 ~/.deepagents/agent/skills/ — 默认代理的用户级技能目录。项目级安装(省略 -g)将技能放置在相对于当前目录的 .deepagents/skills/ 中,使它们可用于在该项目中运行的任何代理,无论代理名称如何。全局安装仅针对默认的
agent 目录。如果您使用自定义命名的代理,请使用项目级安装或手动将技能符号链接到 ~/.deepagents/{your-agent}/skills/。技能发现
技能发现
在启动时,CLI 会从 Deep Agents 和共享别名目录发现技能:当存在重复的技能名称时,后优先级目录会覆盖较早的目录(请参阅应用数据)。对于项目特定的技能,项目的根文件夹必须具有
.git 文件夹。
当您从项目文件夹内的任何位置启动 CLI 时,CLI 将通过检查包含的 .git 文件夹来找到项目的根文件夹。对于每个技能,CLI 会从 SKILL.md 文件的 frontmatter 中读取名称和描述。
当您使用 CLI 时,如果任务与技能的描述匹配,代理将读取技能文件并遵循其指令。您也可以使用 /skill:<name> [args] 直接调用技能。技能发现在启动时运行,并在 /reload 时再次运行。从命令行调用技能
从命令行调用技能
使用
--skill 在启动时调用技能,而无需在交互模式下键入斜杠命令:--skill 在非交互模式下也有效:--skill 与 --quiet 或 --no-stream 一起使用需要 -n(非交互模式)。列出技能
列出技能
子代理
定义自定义子代理作为 markdown 文件,以便 CLI 代理可以将专门的任务委托给它们。每个子代理位于其自己的文件夹中,带有AGENTS.md 文件:
name 和 description(与 SubAgent 字典规范 相同)。markdown 正文成为子代理的 system_prompt。除了基本规范外,AGENTS.md 文件支持可选的 model frontmatter 字段,该字段为此子代理覆盖主代理的模型。使用 provider:model-name 格式(例如 anthropic:claude-opus-4-6, openai:gpt-5.4)。省略以继承主代理的模型。
其他
SubAgent 字段(tools、middleware、interrupt_on、skills)目前无法通过 AGENTS.md frontmatter 配置 — 以此方式定义的自定义子代理继承主代理的工具。要完全控制,请直接使用 SDK。文件格式
文件格式
子代理
AGENTS.md 文件使用 YAML frontmatter,后跟 markdown 正文:示例:成本高效的子代理
示例:成本高效的子代理
使用 MCP 工具
使用来自外部 MCP(Model Context Protocol) 服务器的工具扩展 CLI。在项目根目录放置一个.mcp.json,CLI 会自动发现它。有关配置格式、自动发现和故障排除,请参阅 MCP 工具指南。
使用远程沙箱
CLI 使用沙箱作为工具 模式:CLI 进程(LLM 循环、内存、工具分发)在您的机器上运行,但代理工具调用(read_file、write_file、execute 等)针对远程沙箱,而不是您的本地文件系统。要将文件放入沙箱,请使用设置脚本 或提供商的文件传输 API(请参阅处理文件)。
有关沙箱架构、集成模式和安全最佳实践的更深入了解,请参阅沙箱。
LangSmith 沙箱支持默认包含在 CLI 中。AgentCore、Modal、Daytona 和 Runloop 需要安装附加组件。
沙箱标志和示例
沙箱标志和示例
| 标志 | 描述 |
|---|---|
--sandbox TYPE | 要使用的沙箱提供商:langsmith、agentcore、modal、daytona 或 runloop(默认:none) |
--sandbox-id ID | 通过 ID 重用现有沙箱,而不是创建新沙箱。跳过创建和清理。请参阅您的沙箱文档以获取更多信息 |
--sandbox-setup PATH | 在沙箱创建后在沙箱内运行的设置脚本路径 |
设置脚本
设置脚本
使用 CLI 使用您的本地环境变量扩展设置脚本中的
--sandbox-setup 在沙箱创建后在沙箱内运行 shell 脚本。这对于克隆仓库、安装依赖项和配置环境变量非常有用。setup.sh
${VAR} 引用。将机密存储在本地 .env 文件中,以便设置脚本可以访问。使用 LangSmith 进行追踪
启用 LangSmith 追踪,以在 LangSmith 项目中查看代理操作、工具调用和决策。 将您的追踪密钥添加到~/.deepagents/.env,以便在每个会话中启用追踪,而无需每个 shell 导出:
~/.deepagents/.env
.env。有关完整加载顺序,请参阅环境变量。
如果您愿意,也可以将这些设置为 shell 环境变量。Shell 导出始终优先于 .env 值,因此这是临时覆盖或测试的好选择:
将代理追踪与应用程序追踪分开
将代理追踪与应用程序追踪分开
当从 LangChain 应用程序以编程方式调用 CLI 时(例如,在非交互模式中作为子进程),您的应用程序和 CLI 都会产生 LangSmith 追踪。默认情况下,它们都位于同一项目中。要将 CLI 追踪发送到专用项目,请设置 然后为父应用程序的追踪配置 这保持了应用程序级别的可观察性清晰,同时仍在单独的项目中捕获代理的内部执行。您也可以使用
DEEPAGENTS_CLI_LANGSMITH_PROJECT:~/.deepagents/.env
LANGSMITH_PROJECT:~/.deepagents/.env
DEEPAGENTS_CLI_ 前缀 将 LangSmith 凭据限定于 CLI(例如 DEEPAGENTS_CLI_LANGSMITH_API_KEY)。/trace 打印 URL 并在浏览器中打开它。
命令参考
命令行选项
命令行选项
| 选项 | 描述 |
|---|---|
-a, --agent NAME | 使用具有单独内存的命名代理(默认:agent) |
-M, --model MODEL | 使用特定模型(provider:model) |
--model-params JSON | 作为 JSON 字符串传递给模型的额外 kwargs(例如 '{"temperature": 0.7}') |
--default-model [MODEL] | 设置默认模型 |
--clear-default-model | 清除默认模型 |
-r, --resume [ID] | 恢复会话:-r 表示最近的会话,-r <ID> 表示特定线程 |
-m, --message TEXT | 会话开始时自动提交的初始提示(交互模式) |
--skill NAME | 在启动时调用技能 |
-n, --non-interactive TEXT | 以非交互方式运行单个任务并退出。除非设置 --shell-allow-list,否则 shell 被禁用 |
-q, --quiet | 用于管道传输的干净输出——仅代理的响应进入 stdout。需要 -n 或管道 stdin |
--no-stream | 缓冲完整响应并一次性写入 stdout,而不是流式传输。需要 -n 或管道 stdin |
--stdin | 显式从 stdin 读取输入,而不是自动检测。当 stdin 不可用或是 TTY 时会明确显示错误 |
-y, --auto-approve | 自动批准所有工具调用而无需提示(禁用人在环中)。在交互会话期间使用 Shift+Tab 切换 |
-S, --shell-allow-list LIST | 逗号分隔的 shell 命令以自动批准,'recommended' 表示安全默认值,或 'all' 表示允许任何命令。适用于 -n 和交互模式 |
--json | 从管理子命令(agents、threads、skills、update)发出机器可读的 JSON。输出信封:{"schema_version": 1, "command": "...", "data": ...} |
--sandbox TYPE | 用于代码执行的远程沙箱:none(默认)、langsmith、agentcore、modal、daytona、runloop。LangSmith 包含在内;AgentCore/Modal/Daytona/Runloop 需要附加组件 |
--sandbox-id ID | 重用现有沙箱(跳过创建和清理) |
--sandbox-setup PATH | 沙箱创建后在沙箱内运行的设置脚本路径 |
--mcp-config PATH | 添加显式 MCP 配置作为最高优先级源(与自动发现的配置合并) |
--no-mcp | 禁用所有 MCP 工具加载 |
--trust-project-mcp | 信任项目级 MCP 配置和 stdio 服务器(跳过批准提示) |
--profile-override JSON | 作为 JSON 字符串覆盖模型配置文件字段(例如 '{"max_input_tokens": 4096}')。在配置文件配置文件覆盖之上合并 |
--acp | 通过 stdio 作为 ACP 服务器运行,而不是启动交互式 UI |
-v, --version | 显示版本 |
-h, --help | 显示帮助 |
CLI 命令
CLI 命令
| 命令 | 描述 |
|---|---|
deepagents help | 显示帮助 |
deepagents agents list | 列出所有代理(别名:ls) |
deepagents agents reset --agent NAME | 清除代理内存并重置为默认值。支持 --dry-run |
deepagents agents reset --agent NAME --target SOURCE | 从另一个代理复制内存 |
deepagents update | 检查并安装 CLI 更新 |
deepagents skills list [--project] | 列出所有技能(别名:ls) |
deepagents skills create NAME [--project] | 使用模板 SKILL.md 创建新技能。幂等 — 重新创建现有技能会打印信息性消息而不是错误 |
deepagents skills info NAME [--project] | 显示技能的详细信息 |
deepagents skills delete NAME [--project] [-f] | 删除技能及其内容。支持 --dry-run |
deepagents threads list [--agent NAME] [--limit N] | 列出会话(别名:ls)。默认限制:20。-n 是 --limit 的短标志。其他标志:--sort {created,updated}、--branch TEXT(按 git 分支过滤)、-v/--verbose(显示所有列,包括分支、创建时间和初始提示)、-r/--relative(相对时间戳) |
deepagents threads delete ID | 删除会话。支持 --dry-run |
deepagents deploy | 将您的代理部署到 LangSmith。请参阅使用 CLI 部署 |
--json 以获取机器可读的输出。有关详细信息,请参阅命令行选项。破坏性命令(agents reset、skills delete、threads delete)支持 --dry-run 以预览将要发生的情况而不进行更改。在 JSON 模式下,--dry-run 返回相同的信封,其中包含 dry_run: true 字段。将这些文档 通过 MCP 连接到 Claude、VSCode 等以获取实时答案。

