Memory、Context、Knowledge 与 Instruction Files 的边界
把 memory、context、knowledge 和 instruction files 放在同一张图里区分,帮助理解 agent 到底是在读现场、读规则,还是在调用长期状态。
#tech / ai
#type / synthesis
#status / growing
[!info] related notes
- 所属 MOC: Coding Agent Memory MOC, Agent MOC, AI MOC
- 相关概念: AI Agent Memory Layer, Augmented LLM, Skills
- 易混淆概念: Built-in tools, Function Calling
- 相关资源: openai-codex, claude-code, opencode, github-copilot
Memory、Context、Knowledge 与 Instruction Files 的边界
范围
这篇关系笔记不是单独定义某一个组件,而是回答 agent 在执行时到底从哪几种“信息层”拿能力。
为什么要放在一起理解
很多 agent 工程讨论里最容易混的,不是工具,而是这些信息层:
- 当前会话现场
- 长期记住的事实和偏好
- 外部知识来源
- 显式规则文件
如果不把它们分清,就很容易出现两种问题:
- 把不断变化的事实塞进
AGENTS.md - 把本该固定的规则扔给 memory 或检索临场补
依赖路径 / 调用链 / 演进链
可以粗略把这四层理解成:
1. Context
当前这次执行直接可见的现场信息,例如:
- 当前对话历史
- 当前任务目标
- 当前工具返回结果
- 当前工作区里刚读到的文件片段
它回答的是“现在眼前发生了什么”。
2. Memory
跨会话、跨任务仍应保留的长期状态,例如:
- 项目约定
- 用户偏好
- 历史决策
- 常见坑和复用经验
它回答的是“这个 agent 之前已经知道什么”。
3. Knowledge
偏外部知识源或待检索材料,例如:
- 文档库
- 知识库
- 代码库检索结果
- 产品说明和政策文本
它回答的是“为了完成当前任务,还需要查什么资料”。
4. Instruction Files
显式规则层,例如:
AGENTS.mdCLAUDE.mdcopilot-instructions.md- 其他项目级 instruction files
它回答的是“你应该怎么做、遵守什么约束”。
一句话区分就是:
- context 是现场
- memory 是长期状态
- knowledge 是可查资料
- instruction files 是显式规则
对比与易混淆点
| 层 | 主要内容 | 核心问题 |
|---|---|---|
| Context | 当前消息、工具结果、临时片段 | 现在发生了什么 |
| Memory | 偏好、项目事实、历史决策 | 之前已经知道什么 |
| Knowledge | 文档、资料、检索结果 | 还需要查什么 |
| Instruction files | 规则、流程、验证要求 | 应该怎么做 |
几个常见误区:
- 把
AGENTS.md当成长期开会纪要,说明规则层过重。 - 把项目规范完全寄希望于 memory,说明可审计显式规则不足。
- 把检索到的文档当成 memory,说明长期状态和外部资料混了。
- 把最近几轮聊天历史当成成熟 memory,说明上下文和记忆没分开。