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 执行情况

阶段开始时按独立边界规划了三路并行审阅:

  1. Agent 核心与上下文工程运行合同;
  2. 提示词工程与 LLM/API 集成;
  3. 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 核验。

文档同步

上下文工程深审

去重安全边界

原选择器会按 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 或费用证据。

来源复核

本阶段优先核对官方文档、公开风险框架和原始论文:

截至 2026-07-21,NIST 官方页仍注明 AI RMF 1.0 正在修订;OpenAI 的 conversation、compaction、缓存页面,Anthropic 的上下文页面和 Google 的长上下文/缓存页面均可访问。课程只记录复核日事实,不把当前产品语义推广成跨供应商永久规则。

验证证据

检查结果
Agent 语法与 demoPython 3.11.9 py_compile 通过;demo 为 completed,close_count=1,crash 后复用 receipt
Agent 回归59 项 unittest 在普通与 -O 模式、-W error 下均通过,共 118 次用例执行;包含“已关闭目标不再写入”的回归用例
Context 语法与 CLIPython 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 等用户状态未被本阶段读取、修改或纳入处理。

后续队列

  1. 深审提示词工程与 LLM/API 集成:版本化 prompt、structured output、provider adapter、streaming/tool-call continuation、错误/usage/存储语义与离线 fixture;本阶段子 Agent 未启动成功,不能视为已完成。
  2. 深审 Embedding、语义搜索与向量数据库:模型/距离/归一化合同、过滤与多租户隔离、索引一致性、删除、混合检索、召回评测和可运行例子;本阶段同样未完成。
  3. 在 Obsidian 阅读视图抽查两门课程的 Mermaid、长表、callout、代码链接与移动端布局;Quartz 构建不能替代桌面端渲染。
  4. 将 Agent 教学 runtime 扩展到 SQLite/独立 receipt store、lease、optimistic concurrency、真实身份/授权和 provider adapter,并加入跨进程 crash/recovery 测试。
  5. 将 Context Pack 接入真实 tokenizer/usage、受控 IAM/摄取元数据、覆盖度/多样性约束和长上下文任务级评测;保留离线估算作为确定性回归,不把它升级为线上质量证据。
  6. 继续逐页审阅缺少 content_origin、content_status 或当前来源复核的历史页面,不做机械批量填充。

本记录只覆盖第十四阶段,不表示整个长期 /goal 已完成。