2026-07-21 第十四阶段 Agent 运行时与上下文可信控制面深审记录
阶段结论
本阶段逐章深审 Agent 核心 与 上下文工程 共 17 篇课程页面及两套标准库离线项目。课程主结构和学习顺序保持不变;修改集中在此前“文字已经提出、代码尚未完整证明”的运行边界:Context Pack 不再允许去重跨越 section、权限或信任类别;Agent runtime 不再让畸形 proposal、approval、tool result 或内部不一致的 checkpoint 以异常崩溃或错误状态继续,并让查询已证实目标满足的任务直接无写入完成。
两门课程的来源与状态元数据已按实际深审结果补齐或刷新:原创讲解标为 original,供应商/规范事实页标为 dynamic,完成运行验证的项目页标为 validated 并记录 execution_verified: 2026-07-21。这不是对历史页面的机械转正,也不表示整个知识库已完成来源分类。
结论边界
本阶段证明当前离线 fixture、状态机合同、课程交叉链接和公开构建自洽;不证明真实 IAM、供应商 tokenizer/模型行为、分布式持久化、外部 receipt 真实性、生产审批身份或所有历史课程已经完成深审。长期
/goal继续保持 active。
多 Agent 执行情况
阶段开始时按独立边界规划了三路并行审阅:
- Agent 核心与上下文工程运行合同;
- 提示词工程与 LLM/API 集成;
- Embedding、语义搜索与向量数据库。
三路子 Agent 均在读取或修改文件前被账户用量上限中止,没有产生文件改动或冲突。主 Agent 随后完整接管第一路,完成本记录所列审阅、修改与验证;第二、三路保留在后续队列,未被计入本阶段完成范围。这次限制属于协作资源不可用,不是对课程质量的判断。
Agent 核心深审
修复的运行时缺口
离线 bounded_agent.py 新增或收紧以下确定性边界:
- proposal 在访问字段或集合运算前先验证
ActionProposal、字符串、参数对象和幂等键类型,畸形 action 进入policy_violation,不再抛出未分类TypeError; - approval 的 action ID、fingerprint、state version、decision 与 expiry 先做严格类型/非负整数检查,畸形 expiry 失败关闭到
invalid_approval; - lookup tool result 必须具有精确字段、当前 ticket 和预期基础类型,错目标或畸形结果进入
failed / invalid_tool_result,不会被记录为可继续使用的 observation; - 合法查询若确认 ticket 已关闭,runtime 以
already_satisfied完成,不提出 close、不请求写审批,也不制造多余副作用; - terminal transition 清除可执行
pending_action,避免 cancel、failure 或 budget exhaustion 后旧审批仍挂在活动状态; - checkpoint 恢复验证 observation 内层 hash、evidence 结构、event sequence/state version 连续性、completed action ID 类型与唯一性;
waiting_approval必须同时有冻结 action、前置 lookup action 与 observation;非等待态不得保留 pending action;completed必须精确匹配一条证据路径:already_satisfied只有 lookup 动作与已关闭 observation,且没有 close/evidence;写入完成则必须有 lookup/close 两个动作,以及绑定当前 action fingerprint、ticket、closed状态和非空 receipt ID 的 evidence。
这些检查阻止的是程序错误、迁移错误和不可能状态。普通 SHA-256 仍只能发现偶然损坏;能控制存储的攻击者可以伪造相互一致的 payload/hash/evidence,因此课程继续明确要求受保护存储、MAC/签名、访问控制和外部 receipt 核验。
文档同步
- 长任务检查点、恢复与幂等 增补业务不变量与“可解析不等于可恢复”的边界;
- 人在回路与控制权 明确 terminal 状态清除 pending action、审计事实留在 event;
- 不可信工具结果与防护 增补错目标/畸形 observation 必须失败关闭;
- 综合 Agent 项目与自测 同步新合同、实验、限制与 59 项测试覆盖;
- 全课程来源复核日期更新为 2026-07-21,并补齐原创/动态/已验证状态。
上下文工程深审
去重安全边界
原选择器会按 dedupe_key 在优先级、日期、大小和 ID 之间选一个候选,但没有验证同组成员是否属于相同 section、权限与信任类别。配置错误时,一个高优先级的 user-input 或低权限片段可能替换本应独立处理的受控来源。
context_budget.py 现在在选择前拒绝任何跨越以下边界的去重组:
section;required_permission;trust。
原有“required chunk 不能与其他成员共享 key”规则继续保留。新增三项负向测试分别证明跨 section、跨权限和跨信任组都会在 fixture 加载时失败;Context Pack 测试由 15 项增至 18 项。
可信控制面说明
选择、相关性与来源 与 Context Pack 项目 现在显式区分:
- 身份与
granted_permissions来自认证/授权上下文; allowed_trust来自应用策略;- chunk 的
trust、required_permission、required和dedupe_key由受控摄取流程或人工审核赋值; - 网页、用户输入和工具正文不能自行声明信任、授权、必选或等价关系。
教学 fixture 为离线可读性把 request 与 chunks 放在同一文件;选择器只能检查声明的一致性,不能替这些声明完成身份鉴别。estimated_tokens 仍是外部教学估算,不能冒充目标模型 tokenizer、usage 或费用证据。
来源复核
本阶段优先核对官方文档、公开风险框架和原始论文:
- OpenAI Conversation state、Compaction 与 Prompt caching;
- Anthropic Context windows、Context editing、Prompt caching 与 Manage tool context;
- Google Gemini Long context 与 Context caching;
- OpenAI: A practical guide to building agents、Anthropic: Building effective agents 与 Temporal Workflow;
- OWASP Top 10 for Agentic Applications 2026 与 NIST AI RMF;
- ReAct、SWE-agent、Lost in the Middle 与 LongBench 原始论文。
截至 2026-07-21,NIST 官方页仍注明 AI RMF 1.0 正在修订;OpenAI 的 conversation、compaction、缓存页面,Anthropic 的上下文页面和 Google 的长上下文/缓存页面均可访问。课程只记录复核日事实,不把当前产品语义推广成跨供应商永久规则。
验证证据
| 检查 | 结果 |
|---|---|
| Agent 语法与 demo | Python 3.11.9 py_compile 通过;demo 为 completed,close_count=1,crash 后复用 receipt |
| Agent 回归 | 59 项 unittest 在普通与 -O 模式、-W error 下均通过,共 118 次用例执行;包含“已关闭目标不再写入”的回归用例 |
| Context 语法与 CLI | Python 3.11.9 py_compile 通过;默认 5 个入选、6 个排除、估算用量 162/170 |
| Context 回归 | 18 项 unittest 在普通与 -O 模式、-W error 下均通过,共 36 次用例执行 |
| Context 确定性 | 普通与 -O CLI 文本、完整 JSON pack 逐字一致 |
| 站点单元测试 | 46/46 通过 |
| 完整公开构建 | 904 个源 Markdown;558 个全文、346 个 fail-closed stub、220 个资源;生成 907 个 staged Markdown 与 2,423 个 HTML 页面 |
| 导航验收 | 57 个课程入口、10 个知识域、4 条角色路径、72 个导航文件夹 |
| 发布门禁 | broken local links、禁止文件、进度泄漏、敏感信息、自重定向、表格 wikilink 泄漏、交互 checkbox 与 KaTeX 错误均为 0 |
| 作用域检查 | 所改 frontmatter、wikilink、测试计数与 git diff --check 通过 |
协作期间外层 vault 自动快照推进至 d74b472 vault backup: 2026-07-21 18:07:17。各 Agent 均未手工 stage、commit、reset 或回退其他工作;第十四阶段修改继续保留为工作区 diff,.obsidian/workspace.json 与 Remarks/账号.md 等用户状态未被本阶段读取、修改或纳入处理。
后续队列
- 深审提示词工程与 LLM/API 集成:版本化 prompt、structured output、provider adapter、streaming/tool-call continuation、错误/usage/存储语义与离线 fixture;本阶段子 Agent 未启动成功,不能视为已完成。
- 深审 Embedding、语义搜索与向量数据库:模型/距离/归一化合同、过滤与多租户隔离、索引一致性、删除、混合检索、召回评测和可运行例子;本阶段同样未完成。
- 在 Obsidian 阅读视图抽查两门课程的 Mermaid、长表、callout、代码链接与移动端布局;Quartz 构建不能替代桌面端渲染。
- 将 Agent 教学 runtime 扩展到 SQLite/独立 receipt store、lease、optimistic concurrency、真实身份/授权和 provider adapter,并加入跨进程 crash/recovery 测试。
- 将 Context Pack 接入真实 tokenizer/usage、受控 IAM/摄取元数据、覆盖度/多样性约束和长上下文任务级评测;保留离线估算作为确定性回归,不把它升级为线上质量证据。
- 继续逐页审阅缺少
content_origin、content_status或当前来源复核的历史页面,不做机械批量填充。
本记录只覆盖第十四阶段,不表示整个长期 /goal 已完成。