Appearance
上下文工程与分层记忆
上下文工程
上下文工程解决的是“模型在当前任务里应该看什么、以什么优先级看、哪些可信、哪些只是参考”的问题。它不是单纯写 prompt,而是组织系统指令、任务输入、检索证据、工具结果、历史摘要和用户偏好。
| 上下文类型 | 内容 | 要点 |
|---|---|---|
| 系统指令 | 角色、边界、安全规则 | 简洁稳定、优先级高 |
| 任务上下文 | 用户目标、输入文件、输出格式 | 结构化表达 |
| 检索上下文 | 文档片段、图谱路径、数据库结果 | 带来源和时间 |
| 工具上下文 | 工具描述、参数、返回结果 | 最小暴露 |
| 历史上下文 | 对话摘要、偏好、任务状态 | 定期压缩和过期 |
分层记忆
| 记忆层 | 保存什么 | 常见存储 |
|---|---|---|
| 工作记忆 | 当前任务步骤和临时变量 | 上下文窗口、状态对象 |
| 会话记忆 | 当前会话目标和已确认决策 | 摘要、短期数据库 |
| 长期记忆 | 稳定偏好、项目规则、历史案例 | 向量库、关系库 |
| 语义记忆 | 实体、关系、概念、规则 | 知识图谱 |
| 情景记忆 | 具体事件和操作记录 | 日志、审计时间线 |
常见风险
上下文越多不一定越好。过多上下文会增加成本、噪声和提示注入风险。记忆如果不更新,会把过期信息带入新任务;如果不做权限过滤,会造成数据泄露。
Python 入口
python
def build_context(question, user_id):
history = summarize_session(user_id)
docs = vector_store.search(question, user_id=user_id)
profile = memory_store.get_preferences(user_id)
return {
"question": question,
"history_summary": history,
"retrieved_docs": docs,
"user_preferences": profile,
}这里的关键不是某个库,而是上下文组装时要做摘要、检索和权限过滤。
