在 Deep Agents Code 中定制一个智能体(Agent)主要有两种方式:
  • 记忆:跨会话持久化的 AGENTS.md 文件和自动保存的记忆。请使用记忆来存储通用的编码风格、偏好和学习到的惯例。
  • 技能:可复用、按需加载的功能,智能体仅在相关时发现并读取。请使用技能来存储任务特定的上下文,例如工作流、最佳实践和参考文档。
在实践中,技能和记忆处于一个谱系上。关于何时使用哪一种的更多信息,请参阅技能、记忆和工具。 使用 /remember 可以显式地提示智能体根据当前对话更新其记忆和技能。
使用 SDK 构建自定义智能体?请参阅 记忆 以了解编程化的记忆后端。

记忆

自动记忆

当你使用智能体时,它会使用“记忆优先”协议,自动将信息以 Markdown 文件的形式存储在 ~/.deepagents/<agent_name>/memories/ 目录中:
  1. 研究:在开始任务前搜索记忆以获取相关上下文
  2. 响应:在执行过程中遇到不确定情况时检查记忆
  3. 学习:自动保存新信息以供未来会话使用
智能体按主题组织其记忆,并使用描述性的文件名:
当你教给智能体一些惯例时:
它会在未来的会话中记住:

AGENTS.md 文件

AGENTS.md 文件 提供了在会话开始时总是被加载的持久化上下文:
  • 全局:~/.deepagents/<agent_name>/AGENTS.md — 每次会话都会加载。
  • 项目:任何 git 项目根目录下的 .deepagents/AGENTS.md — 当在该项目目录内运行 Deep Agents Code 时加载。
这两个文件在启动时都会被追加到系统提示词之后。

记忆的工作原理

智能体也可能在回答项目特定的问题或当你提及过去的工作或模式时读取其记忆文件。 当你提供关于它应如何表现的指示、对其工作的反馈或需要它记住某事的指令时,智能体会更新 AGENTS.md。 如果它从你的交互中识别出模式或偏好,也会更新其记忆。 要在额外的记忆文件中添加更结构化的项目知识,请将它们添加到 .deepagents/ 目录中,并在 AGENTS.md 文件中引用它们。 你必须在 AGENTS.md 文件中引用额外的文件,智能体才能意识到它们。 这些额外的文件在启动时不会被读取,但智能体可以在需要时引用和更新它们。

何时使用全局与项目 AGENTS.md

使用全局 AGENTS.md (~/.deepagents/agent/AGENTS.md) 来存储:
  • 你的性格、风格和通用的编码偏好
  • 整体的语气和沟通风格
  • 通用的编码偏好(格式化、类型提示等)
  • 普遍适用的工具使用模式
  • 不随项目变化的工作流和方法论
使用项目 AGENTS.md (项目根目录下的 .deepagents/AGENTS.md) 来存储:
  • 项目特定的上下文和惯例
  • 项目架构和设计模式
  • 针对此代码库特定的编码惯例
  • 测试策略和部署流程
  • 团队指南和项目结构

技能

技能将领域专业知识(如工作流、最佳实践、脚本和参考文档)打包成可复用的目录,智能体仅在相关时发现并读取它们。 Deep Agents 技能遵循 Agent Skills 规范。有关技能如何工作以及如何编写有效技能的更多信息,请参阅技能。 在启动时,Deep Agents Code 会从每个 SKILL.md 文件的 frontmatter 中读取名称和描述。当一个任务匹配某个技能的描述时,智能体会读取该技能文件并遵循其指令。在执行 /reload 时,发现过程会再次运行。

添加技能

1

创建技能

这将生成:
2

编辑 SKILL.md

打开生成的 SKILL.md 文件,并编辑该文件以包含你的指令。
3

添加可选资源

可选地,向 test-skill 文件夹中添加额外的脚本或其他资源。有关更多信息,请参阅用法。
你也可以直接将现有技能复制到智能体的文件夹:

安装社区技能

你可以使用诸如 Vercel 的 Skills CLI 之类的工具,在你的环境中安装社区 Agent Skills,并使它们可供你的深度智能体使用:
全局安装(-g)会将技能符号链接到 ~/.deepagents/agent/skills/——即默认智能体的用户级技能目录。项目级安装(省略 -g)会将技能放置在相对于当前目录的 .deepagents/skills/ 中,使其可供在该项目中运行的任何智能体使用,无论智能体名称如何。
全局安装仅针对默认的 agent 目录。如果你使用自定义名称的智能体,请使用项目级安装或将技能手动符号链接到 ~/.deepagents/{your-agent}/skills/。

技能发现

启动时,会从以下目录加载技能:
当存在重复的技能名称时,优先级更高的目录(后面的)会覆盖优先级较低的目录(前面的)(参见应用数据)。 对于项目特定的技能(位于 .deepagents/skills/ 或 .agents/skills/ 下),项目根目录由包含的 .git 文件夹标识。

会话中调用技能

在交互式会话内,使用 /skill:<name> 斜杠命令直接运行一个技能:
该技能的 SKILL.md 指令会连同你传递的任何参数一起注入到提示词中。

启动时加载技能

--skill 标志会在启动时立即调用一个技能,无论是在交互式(TUI)还是非交互式(headless)模式下:
--skill 配合 --quiet 或 --no-stream 使用时,需要添加 -n(非交互模式)。

列出技能