第 06 章 · Memory 与 AGENTS.md
memory= 指向 AGENTS.md 文件路径,启动时全部加载并持久到 backend。它适合“长期偏好/项目约定”,与 skills 的“按需加载”互补。
机制与设计选择
memory 与 skill 的区别在加载时机:memory 总是进上下文,skill 是 frontmatter 摘要 + 按需全文。因此 memory 要短、要稳定;放太多会推高每轮 token。
示例
python
import os
from langchain_openai import ChatOpenAI
model = ChatOpenAI(
model=os.environ["MODEL_ID"],
api_key=os.environ["DEEPAGENT_API_KEY"],
base_url=os.environ.get("DEEPAGENT_BASE_URL", "https://api.openai.com/v1"),
)
import pathlib, shutil, tempfile
from deepagents import create_deep_agent
from deepagents.backends import FilesystemBackend
root = tempfile.mkdtemp(prefix="deepagents-memory-")
try:
agents_md = pathlib.Path(root) / "AGENTS.md"
agents_md.write_text("# Rules\n- Use Python 3.11+\n- Never hard-code secrets\n")
agent = create_deep_agent(
model=model,
memory=[str(agents_md)],
backend=FilesystemBackend(root_dir=root, virtual_mode=True),
system_prompt="Follow the AGENTS.md rules.",
)
result = agent.invoke(
{"messages": [{"role": "user", "content": "Summarize the coding rules in one line."}]},
{"configurable": {"thread_id": "ch06"}},
)
print(result["messages"][-1].content)
finally:
shutil.rmtree(root, ignore_errors=True)运行与验收
需要 API Key。验收:回答提到“Python 3.11+”与“不写死密钥”两条规则。
容易踩的坑
AGENTS.md 里放的是约定,不是机密。把密钥/凭据放到 secret 管理,不要把 .env 文件本身塞进 memory。
🧪 随堂测验
点击你认为正确的选项。答错时会展示正确答案与原因解析。
1. memory 何时加载?
2. AGENTS.md 放机密合适吗?
3. memory 太大后果?
4. skill 与 memory 分工?
动手实践
- 把同一 memory 文件加给两个 agent,观察共享。
- 写一条会被模型执行的偏好并验证。
- 对比 memory 与 skill 的加载时机差异。
官方参考
核验日期:2026-09-17,运行环境:Deep Agents 0.7.15。