Skip to content

第 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 分工?

动手实践 ​

  1. 把同一 memory 文件加给两个 agent,观察共享。
  2. 写一条会被模型执行的偏好并验证。
  3. 对比 memory 与 skill 的加载时机差异。

官方参考 ​

核验日期:2026-09-17,运行环境:Deep Agents 0.7.15。