Skip to content

在 Deep Agents Code 中定制智能体主要有两种方式:

  • 记忆AGENTS.md 文件以及跨会话持久保存的自动记忆。使用记忆来保存通用的编码风格、偏好以及学到的约定。

  • 技能:可复用、按需加载的能力,智能体只有在相关时才去发现并读取。使用技能来保存特定于任务的上下文,例如工作流、最佳实践和参考文档。

实际上,技能和记忆处于一个频谱之上。关于何时使用每一种的更多信息,请参阅技能、记忆和工具

使用 /remember 来显式提示智能体根据当前对话更新其记忆和技能。

TIP

正在用 SDK 构建自定义智能体?请参阅记忆了解编程式记忆后端。

记忆

自动记忆

在你使用智能体的过程中,它会通过一个记忆优先(memory-first)协议自动将信息作为 markdown 文件存储在 ~/.deepagents/<agent_name>/memories/ 中:

  1. 研究:在开始任务前搜索记忆以获取相关上下文
  2. 应答:在执过程中不确定时检查记忆
  3. 学习:自动保存新信息供未来的会话使用

智能体按主题组织其记忆,并使用描述性文件名:

~/.deepagents/backend-dev/memories/
├── api-conventions.md
├── database-schema.md
└── deployment-process.md

当你向智能体传授约定时:

bash
dcode --agent backend-dev
> Our API uses snake_case and includes created_at/updated_at timestamps

它会为未来的会话记住:

bash
> Create a /users endpoint
# 无需提示即可应用约定

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)适用于:

  • 特定于项目的上下文和约定
  • 项目架构和设计模式
  • 特定于该代码库的编码约定
  • 测试策略和部署流程
  • 团队指南和项目结构

技能

技能将领域专长(例如工作流、最佳实践、脚本和参考文档)打包成可复用的目录,智能体只有在相关时才去发现和读取。 深度智能体技能遵循Agent Skills 规范。关于技能如何工作以及如何编写有效技能的更多信息,请参阅技能

启动时,Deep Agents Code 会读取每个 SKILL.md 文件 frontmatter 中的名称和描述。当任务与某个技能的描述匹配时,智能体就会读取该技能文件并遵循其中的指令。在 /reload 时会再次运行发现。

添加技能

创建技能

bash
# 用户技能(存储在 ~/.deepagents/<agent_name>/skills/)
dcode skills create test-skill

# 项目技能(存储在 .deepagents/skills/)
dcode skills create test-skill --project
    这会生成:
plaintext
skills/
└── test-skill
    └── SKILL.md

编辑 SKILL.md

    打开生成的 `SKILL.md` 并编辑该文件,加入你的指令。

添加可选资源

    可选地,向 `test-skill` 文件夹添加其他脚本或资源。更多信息请参阅[用法](/oss/deepagents/skills#add-supporting-resources)。

你也可以将现有技能直接复制到智能体的文件夹中:

bash
mkdir -p ~/.deepagents/<agent_name>/skills
cp -r examples/skills/web-research ~/.deepagents/<agent_name>/skills/

安装社区技能

你可以使用 Vercel 的 Skills CLI 之类的工具,在你的环境中安装社区 Agent Skills,并使其可用于你的深度智能体:

bash
# 全局安装一个技能
npx skills add vercel-labs/agent-skills --skill web-design-guidelines -a deepagents -g -y

# 列出已安装的技能
npx skills ls -a deepagents -g

全局安装(-g)会将技能符号链接到 ~/.deepagents/agent/skills/——默认智能体的用户级技能目录。项目级安装(省略 -g)会将技能放置在当前目录相对路径的 .deepagents/skills/ 中,使其对该项目中运行的任何智能体可用,无论智能体名称如何。

INFO

全局安装仅针对默认的 agent 目录。如果你使用自定义名称的智能体,请使用项目级安装,或手动将技能符号链接到 ~/.deepagents/{your-agent}/skills/

技能发现

技能会在启动时从以下目录加载:

txt
~/.deepagents/<agent_name>/skills/
~/.agents/skills/
.deepagents/skills/
.agents/skills/
~/.claude/skills/          (experimental)
.claude/skills/            (experimental)

当存在重复的技能名称时,后置优先的目录会覆盖前置的目录(参见应用数据)。

对于项目级技能(.deepagents/skills/.agents/skills/ 下),项目根目录通过包含的 .git 文件夹来识别。

在会话中调用技能

在交互式会话中,使用 /skill:<name> 斜杠命令直接运行技能:

txt
/skill:code-review
/skill:code-review review the auth module

技能的 SKILL.md 指令会与任何你传入的参数一起注入到提示词中。

启动时使用技能

--skill 标志会在启动时立即调用技能,无论是在交互式(TUI)还是非交互式(无头)模式:

bash
# 打开 TUI 并立即运行一个技能
dcode --skill code-review

# 使用 -m 向技能传递请求
dcode --skill code-review -m 'review the auth module'

# 将内容通过管道传入技能
cat diff.txt | dcode --skill code-review

# 管道传入内容并添加请求
cat diff.txt | dcode --skill code-review -m 'focus on security'

# 无头运行一个技能
dcode --skill code-review -n 'review this patch'

# 安静模式(stdout 上仅输出智能体结果)
dcode --skill code-review -n 'review this patch' -q

INFO

--skill--quiet--no-stream 结合使用时需要 -n(非交互式模式)。

列出技能

bash
# 列出所有用户技能
dcode skills list

# 列出项目技能
dcode skills list --project

# 获取某个具体技能的详细信息
dcode skills info test-skill
dcode skills info test-skill --project