从 Context Engineering 到 Context Parenting
Personal Agent × Self Layer:当 Personal Agent 的上下文管理从“检索工程”走向“养育系统”。
为什么我们已经有了 RAG、压缩、缓存、技能加载、子代理分治,Personal Agent 仍然会在长期使用中失真、漂移甚至越界? 今天主流的上下文工程已经很强,但它主要优化“这次会话”。而 Personal Agent 是长期代理系统,它需要优化的是“持续可托付的行为”。因此上下文管理要从 Context Engineering 继续升级: 从“检索什么”转向“系统该学什么、何时学、如何学、如何忘、谁来兜底”。这就是 Context Parenting。 在这个框架里,Self Layer 不是记忆仓库,而是长期身份治理层;编排层决定上下文何时被调度,治理层决定上下文何时被允许,自我层决定上下文何时被沉淀。三层不再并列,而是闭环。
一、当前上下文工程范式已经比较成熟,但仍偏“会话最优”
如果把 Anthropic、pi-mono、OpenClaw 等实践放在一起,Context Engineering 的能力版图其实已经非常完整。常见路径是:技能按需加载、历史剪枝、长会话压缩、prompt 缓存复用、子代理分治、分层检索注入。它们共同解决的是一个工程难题:在有限 token 和时延预算里,尽量让当前任务完成得更好。 Anthropic 在《Building effective agents》里强调“先简单、可组合,再逐步增强自治度”,本质就是在提醒大家:上下文组织常常比模型参数更决定结果。Claude Code 文档里的 common workflows、context windows、prompt caching、subagents、memory 也都在证明这一点。pi-mono 则把这套机制进一步运行时化,给出 session tree、compaction、branch summary、steer/follow-up 队列语义等一线工程形态。 但这些机制大多以“当前回合优化”为主要目标。Personal Agent 的难点恰恰在于,它要跨任务、跨时间、跨执行器保持身份连续并承担后果。会话最优不自动等于长期最优。
二、范式断层:为什么 Personal Agent 不能只做“上下文优化”
Personal Agent 至少有三个不可回避的属性:长期性、代理性、后果性。长期性要求它在数周数月内保持身份一致;代理性意味着它会替用户调用外部工具和外部 agent;后果性意味着错误不止是答错题,还可能是越权外发、记忆污染、策略偏航。 所以它的目标函数必须变。Context Engineering 1.x 常隐含“当前任务质量最大化”,而 Personal Agent 需要联合优化“质量、风险、可追责与可纠偏成长”。 这带来三个关键缺口。 第一,目标函数缺口。单纯相关性排序无法回答“这条记忆是否有资格进入本次决策”。 第二,治理耦合缺口。压缩、缓存、检索本身是中立动作,但在代理系统里会放大污染与越权的复用效应。 第三,身份连续性缺口。传统做法更像会话状态管理,缺少“什么可成为长期自我、什么必须短期遗忘、什么必须人审”的机制。 换句话说,我们需要的不是更激进的注入,而是更严格的养育。
三、Context Parenting:把上下文从输入材料变成成长机制
Context Parenting 不是“RAG 改名”,而是一种更高层的系统治理观。它关心的不是“塞多少上下文”,而是“系统在时间里成长成什么样”。 它把上下文管理从信息流问题提升为状态治理问题,并且至少完成四个迁移:
- 从相关性优先到合法性优先。相关信息不一定有资格参与决策,策略与边界先于相似度。
- 从会话压缩到生命周期管理。上下文对象要经历候选、证据、审查、激活、衰减、撤销,而非“一检索就注入”。
- 从模型私有缓存到用户主权资产。上下文必须可审计、可迁移、可过期、可撤销。
- 从静态前缀到阶段编译。计划、执行、验收阶段需要不同上下文块,不该一次性全量灌入。
四、放进三层结构里看:谁负责什么
三层结构里,Context Parenting 不是自我层孤岛,而是贯穿编排、治理、自我的流水线。 编排层负责调度时机。它基于 Task DAG 和 next-k steps 决定“何时加载、何时压缩、何时外发 capsule、何时暂不注入”。 治理层负责门禁裁决。它在写入前裁决“能不能学”,在外发前裁决“能不能给”,并且把所有关键决策写入可审计轨迹。 自我层负责长期沉淀。它把高价值经验编译成 identity、preference、procedure,而不是无限堆积原始日志。 从这个角度,Self Layer 的本质不是 memory database,而是 identity operating system。
五、Self Layer + Context Parenting v0.1 规范草案(整合版)
5.1 对象模型
{
"self_profile": {
"self_id": "user_xxx",
"version": "v0.1",
"updated_at": "ISO8601",
"identity_core": {
"roles": ["founder", "researcher"],
"constitution": [
"safety_first",
"evidence_before_assertion"
],
"hard_boundaries": [
"no_secret_exfiltration",
"no_unauthorized_spending"
],
"voice": {
"style": "concise_rigorous",
"language": ["zh", "en"]
}
},
"preference_model": {
"communication": {
"tone": "direct",
"length": "short_to_medium"
},
"workflow": {
"default_planning": true,
"evidence_required": true
}
},
"governance_policy": {
"risk_threshold": "medium",
"approval_required_for": [
"external_post",
"payment",
"destructive_action"
]
}
}
}{
"memory_entry": {
"memory_id": "mem_xxx",
"type": "episode|semantic|procedural|preference",
"content": "...",
"source": {
"origin": "user_explicit|agent_inferred|external_agent|tool_output",
"refs": ["artifact://...", "a2a://task/..."],
"confidence": 0.0
},
"policy": {
"sensitivity": "public|work|personal|secret",
"retention_days": 365,
"write_mode": "append|merge|immutable"
},
"lineage": {
"parent_ids": ["mem_old_1"],
"change_reason": "user_correction"
},
"status": "candidate|screened|evidence_checked|policy_checked|user_aligned|committed|active|archived|revoked|rejected"
}
}{
"context_capsule": {
"capsule_id": "cap_xxx",
"task_id": "task_xxx",
"scope": ["identity", "preference", "project"],
"summary": "minimal context for this task",
"facts": [
{
"k": "preferred_output",
"v": "structured_markdown",
"evidence_ref": "artifact://..."
}
],
"constraints": {
"forbidden": ["request_credentials"],
"required": ["cite_sources"]
},
"sharing": {
"allowed_agents": ["agent://trusted-a"],
"ttl_hours": 24,
"revoke_token": "rvk_xxx"
}
}
}
为保证可观测性,运行时补充两个对象:
{
"context_budget": {
"task_id": "task_xxx",
"max_input_tokens": 12000,
"reserved_for_policy": 1200,
"reserved_for_plan": 1800,
"reserved_for_self": 2200,
"reserved_for_evidence": 2200,
"adaptive_headroom": 4600
}
}{
"context_action_log": {
"task_id": "task_xxx",
"actions": [
{
"ts": "ISO8601",
"action": "load|compress|evict|cache_hit|cache_miss|capsule_emit|write_decision",
"target": "memory_id_or_segment",
"reason": "plan_step_change|risk_gate|token_budget|user_correction",
"trace_ref": "trace://..."
}
]
}
}5.2 状态机:从候选信号到长期自我
主路径: candidate -> screened -> evidence_checked -> policy_checked -> user_aligned -> committed -> active -> archived/revoked
拒绝支路: 任一阶段失败进入 rejected,并保留原因码与证据缺口。
这个状态机解决的是一个长期被忽略的问题:系统不仅要记录“学到了什么”,还要记录“为什么这次没学”。
5.3 写入策略:从“自动记忆”到“可问责写入”
写入引擎仅允许四类动作:ADD / UPDATE / DELETE / NOOP。
决策顺序建议固定为:
- 证据门槛检查(至少一条可追溯 evidence_ref)。
- 身份冲突检查(触及 identity_core 默认进入人审)。
- 来源加权判断(user_explicit > user_correction > verified_tool_output > trusted_agent > untrusted_external)。
- 敏感分区检查(secret 不跨域外发)。
删除必须是逻辑删除,保留审计轨迹与 lineage。
5.4 上下文编译器:把三层约束编译到一次执行里
输入四元组: 任务阶段、治理策略、活跃自我状态、预算约束。
输出两类块: 内部 Runtime Context Block 与外部 Capsule。
实践中建议坚持两个编译顺序:
- 先硬约束后软偏好(先 policy/plan,再 preference/style)。
- 先证据锚点后叙述摘要(先 facts/evidence,再 summary)。
六、从 v0.1 到 v0.2:三条必须补上的运行时纪律
这部分来自 Self Layer 深化研究,用于解释 v0.1 下一步该怎么演进。
第一条,证据优先于相关性。语义相似只能决定“可能有关”,不能决定“可进入长期自我”。
第二条,冲突优先于覆盖。新旧记忆冲突时默认进入对账队列,生成 diff 并触发用户确认或策略仲裁,避免静默漂移。
第三条,最小披露优先。对外协作默认发 capsule 子集,不发完整自我;全部外发附 TTL 和 revoke token,并要求结果证据回流。
v0.2 最关键的结构升级是“写入动作与注入动作解耦”:记忆可以 committed 但不默认 injected,只有在当前任务阶段和风险预算匹配时才参与执行上下文。
七、评测不该只看答案质量:四组指标联合优化
个性化与连续性:Personalization Precision、Identity Drift Rate、Correction Adoption Latency。
安全与治理:Unauthorized Memory Write Rate、Sensitive Leakage Rate、Policy Override Auditability。
执行与效率:Task Success Under Budget、Context ROI、Rework Rate。 记忆质量:Memory Utility@K、Conflict Resolution Accuracy、Stale Memory Impact。
如果没有这四组联合指标,系统很容易在“自动化更强”与“长期更稳”之间失衡。
参考资料
- Anthropic, Building effective agents
- Anthropic, Code execution with MCP
- Anthropic Claude Code Common Workflows
- Anthropic, Context windows
- Anthropic, Prompt caching
- Anthropic, Claude Code memory
- Anthropic, Claude Code hooks
- Anthropic, Claude Code subagents
- A2A Protocol v0.3.0
- MCP Specification (2025-11-25)
- pi-mono
- pi Session docs
- pi Compaction docs
- pi Extensions docs
- OpenClaw Memory
- OpenClaw Security
- OpenViking Context Types
- OpenViking Retrieval
- soul.md
- Claude Soul Document (Gist)
- Pika AI Selves
- Pika User Memory
- A-MEM (arXiv:2502.12110)
- How Memory Management Impacts LLM Agents (arXiv:2505.16067)
- Memory-R1 (arXiv:2508.19828)
- SEDM (arXiv:2509.09498)
- A-MemGuard (arXiv:2510.02373)
- Trainable Graph Memory (arXiv:2511.07800)
- PAACE (arXiv:2512.16970)
- E-mem (arXiv:2601.21714)
- LoCoMo (arXiv:2402.17753)
- Reddit (memory discussion)
- Reddit (Pika discussion)