主题
记忆与技能
适用于 Deep Agents Code 的持久化记忆、AGENTS.md 文件和可复用技能,包括其创建、发现与调用。
在 Deep Agents Code 中定制智能体主要有两种方式:
记忆:
AGENTS.md文件以及跨会话持久保存的自动记忆。用记忆承载通用的编码风格、偏好和习得的约定。技能:可复用的按需能力,智能体只在相关时才去发现并读取它们。用技能承载任务特有的上下文,例如工作流、最佳实践和参考文档。
在实践中,技能与记忆处于一个连续的光谱上。有关何时该使用哪一种的更多信息,参见技能、记忆与工具。
使用 /remember 可以显式提示智能体根据当前对话更新其记忆和技能。
TIP
正在用 SDK 构建自定义智能体?有关可编程的记忆后端,参见记忆。
记忆
自动记忆
在你使用智能体的过程中,它会采用记忆优先协议,自动将信息以 Markdown 文件的形式存储到 ~/.deepagents/<agent_name>/memories/ 中:
- 检索:在任务开始前搜索记忆中的相关上下文
- 响应:执行过程中遇到不确定时查阅记忆
- 学习:自动保存新信息,供后续会话使用
若要在停止自动保存的同时继续加载记忆,参见自动记忆。
智能体会按主题组织记忆,并使用具有描述性的文件名:
~/.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
# Applies conventions without promptingAGENTS.md 文件
AGENTS.md 文件 提供始终在会话开始时加载的持久化上下文:
- 全局:
~/.deepagents/<agent_name>/AGENTS.md——每次会话都会加载。 - 项目:任意 git 项目根目录下的
.deepagents/AGENTS.md——当 Deep Agents Code 在该项目中运行时加载。
这两个文件都会在启动时追加到系统提示词中。
TIP
要生成仓库 wiki,并把指针写入供编码智能体使用的 AGENTS.md 和 CLAUDE.md,参见 OpenWiki。
记忆的工作原理
在回答项目特定的问题,或当你提及过去的工作或模式时,智能体也可能读取其记忆文件。
当你提供关于它应如何行为的信息、对其工作的反馈,或让它记住某事的指令时,智能体会更新 AGENTS.md。 如果它从你们的交互中识别出某些模式或偏好,也会更新自己的记忆。
要在额外的记忆文件中添加更多结构化的项目知识,请把它们放在 .deepagents/ 中,并在 AGENTS.md 文件中引用它们。 你必须在 AGENTS.md 文件中引用这些额外文件,智能体才能知道它们的存在。 这些额外文件不会在启动时被读取,但智能体可以在需要时引用和更新它们。
何时使用全局 AGENTS.md,何时使用项目 AGENTS.md
在以下场景使用全局 AGENTS.md(~/.deepagents/agent/AGENTS.md):
- 你的个性、风格和通用编码偏好
- 整体的语气与沟通风格
- 通用的编码偏好(格式化、类型注解等)
- 处处适用的工具使用模式
- 不随项目变化的工作流与方法论
在以下场景使用项目级 AGENTS.md(项目根目录下的 .deepagents/AGENTS.md):
- 项目特有的上下文与约定
- 项目架构与设计模式
- 该代码库特有的编码约定
- 测试策略与部署流程
- 团队规范与项目结构
技能
技能把领域专长(例如工作流、最佳实践、脚本和参考文档)打包成可复用的目录,智能体只在相关时才去发现并读取它们。 Deep agent 的技能遵循 Agent Skills 规范。有关技能的工作原理以及如何编写有效的技能,参见技能。
启动时,Deep Agents Code 会从每个 SKILL.md 文件的 frontmatter 中读取名称和描述。当某个任务与某技能的描述相匹配时,智能体会读取该技能文件并遵循其中的指示。执行 /reload 时会再次进行发现。
添加技能
Create a skill
bash
# User skill (stored in ~/.deepagents/<agent_name>/skills/)
dcode skills create test-skill
# Project skill (stored in .deepagents/skills/)
dcode skills create test-skill --project这会生成:
plaintext
skills/
└── test-skill
└── SKILL.mdEdit SKILL.md
打开生成的 SKILL.md,并编辑该文件以加入你的指示。
Add optional resources
你也可以向 test-skill 文件夹中添加更多脚本或其他资源。更多信息参见用法。
你也可以直接把已有的技能复制到智能体的文件夹中:
bash
mkdir -p ~/.deepagents/<agent_name>/skills
cp -r examples/skills/web-research ~/.deepagents/<agent_name>/skills/安装社区技能
你可以使用 Vercel 的 Skills CLI 之类的工具,在你的环境中安装社区 Agent Skills,并将其提供给你的 deep agents:
bash
# Install a skill globally
npx skills add vercel-labs/agent-skills --skill web-design-guidelines -a deepagents -g -y
# List installed skills
npx skills ls -a deepagents -g全局安装(-g)会以符号链接方式把技能放进 ~/.deepagents/agent/skills/——即默认智能体的用户级技能目录。项目级安装(省略 -g)会把技能放在相对于当前目录的 .deepagents/skills/ 中,使该项目中运行的任何智能体都能使用它们,而与智能体名称无关。
NOTE
全局安装只针对默认的 agent 目录。如果你使用自定义名称的智能体,请使用项目级安装,或手动以符号链接方式把该技能放入 ~/.deepagents/{your-agent}/skills/。
技能发现
启动时,技能会从以下目录加载:
text
~/.deepagents/<agent_name>/skills/
~/.agents/skills/
.deepagents/skills/
.agents/skills/
~/.claude/skills/ (experimental)
.claude/skills/ (experimental)当存在重复的技能名称时,优先级较后的目录会覆盖优先级较前的目录(参见应用数据)。
对于项目专属技能(位于 .deepagents/skills/ 或 .agents/skills/ 下),项目根目录通过其所在位置是否包含 .git 目录来识别。
在会话中途调用技能
在交互式会话中,可以直接用 /skill:<name> 斜杠命令运行技能:
text
/skill:code-review
/skill:code-review review the auth module该技能的 SKILL.md 指令会连同你传入的参数一起注入到提示词中。
启动时使用技能
--skill 标志可在启动时立即调用某个技能,交互式(TUI)与非交互式(headless)模式均可用:
bash
# Open the TUI and immediately run a skill
dcode --skill code-review
# Pass a request to the skill with -m
dcode --skill code-review -m 'review the auth module'
# Pipe content into a skill
cat diff.txt | dcode --skill code-review
# Pipe content and add a request
cat diff.txt | dcode --skill code-review -m 'focus on security'
# Run a skill headlessly
dcode --skill code-review -n 'review this patch'
# Quiet mode (only agent output on stdout)
dcode --skill code-review -n 'review this patch' -qNOTE
--skill 与 --quiet 或 --no-stream 同时使用时需要加 -n(非交互模式)。
列出技能
bash
# List all user skills
dcode skills list
# List project skills
dcode skills list --project
# Get detailed info about a specific skill
dcode skills info test-skill
dcode skills info test-skill --project