返回 P2 总览

P2 重点主线 · 90 天不加量

系统设计 × AI 开发 × Harness

不仅学习模型怎样回答,更学习如何把任务、上下文、工具、状态、代码变更与人的判断组织成一个工作系统。

本地运行完整示例 · 不调用付费模型、不改真实代码

npm run learning:harness -- workflow

内容已准备,P2 尚未启动。默认是脚本模型 + 内存虚拟仓库,用于理解 harness;不是已接入真实 LLM 的开发代理,也不改变个人学习进度。

本轮实践核验 :四章已补充原理、案例与适用条件;厂商特定能力不等于通用最优方案。

H01 · S01—S21 · 总 Day 91111

任务契约与上下文架构

讲透上下文选择、版本与记忆;用完整案例区分 Compaction、KV 前缀缓存、Skills 渐进加载和外部状态。

原理详解 · 完整案例推演 · 设计取舍 · 源码 →

H02 · S22—S42 · 总 Day 112132

Harness 循环、状态与恢复

从四步执行到异步工具、后台请求与中途改方向,推演恢复、取消、幂等和晚到结果的因果关系。

原理详解 · 完整案例推演 · 设计取舍 · 源码 →

H03 · S43—S63 · 总 Day 133153

工具接口与代码变更边界

解释工具搜索、程序化调用、MCP 版本演进及沙箱隔离;区分发现、授权、执行与版本绑定变更。

原理详解 · 完整案例推演 · 设计取舍 · 源码 →

H04 · S64—S84 · 总 Day 154174

AI 开发完整工作流

从需求到最小完整变更,深入模型与 Harness 协同调整、Provider 消息流、轻量 Trace 和仓库知识回流。

原理详解 · 完整案例推演 · 设计取舍 · 源码 →

2026 实践核验:来源、适用条件与实现边界

核验日期:2026-09-12。 只覆盖 H01~H04 本轮新增的 Harness / AI 开发主题,不表示对全仓库 360 篇教材逐条重新核验。检索日不是资料发布日期,动态文档以后仍可能变化。
网页入口Harness 主线 · 实践核验。正文已经写入机制、案例与取舍,不需要先读完全部外部资料。
学习状态:沿用原 P2 九十天安排,不增加天数、考试或进度账本。

A. 怎样理解这里的“最佳实践”

这里指:参考可核验的一手资料,解释一种做法解决什么问题、凭什么有效、在哪些条件下不值得采用。它不意味着存在一套能同时优化所有模型、任务、成本和风险的唯一配置。

教材分开四类结论。稳定工程原则包括责任分离、版本绑定、权限检查与未知状态的明确表达。具体产品能力包括 API 压缩项、异步工具与缓存参数,需要核对模型和接入方式。作者工程经验来自特定系统,有启发但不自动具有普遍性。本仓库原创设计是帮助学习的字段、状态表和反事实案例,不冒充厂商源码或已运行系统。

例如,Anthropic 的 2026 年应用开发文章报告了随模型变化简化 Harness 的经历;Managed Agents 文章讨论把持久会话、执行环境与可替换的 Harness 分开。可迁移的启发是“重新检查策略是否必要、明确状态所有者”,不是照搬角色数量或扩大自主范围。应用开发经验Managed Agents 架构经验

B. 已落进四章的内容

阅读入口新增的机制与案例
H01 · 上下文架构稳定前缀为何可以复用计算;Skills 如何先发现再展开;压缩后怎样保留 sum 的版本、提案和“未应用”状态;四种机制如何互相影响
H02 · 运行与恢复Promise、后台请求与异步工具的区别;双任务并行时用户收窄范围;取消后的晚到结果;调用关联、执行状态与任务适用性分开
H03 · 工具与边界工具搜索为何不是授权;MCP 版本演进;挂载、凭证与网络的组合边界;程序化查询多个模块后怎样保留部分失败
H04 · AI 开发模型与 Harness 协同调整;目标约束与过程提示;一次 read 的 Provider 消息流;用 trace 定位信息传递失败;仓库知识的失效与回流

四章保留原有离线例子,新增设计解释它尚未覆盖的真实系统问题。缓存、异步和程序化调用是按需理解的选项,不是要把每个开关都打开。

C. 一手来源、版本与采用边界

下表资料在本轮实际打开核对。动态指南没有明确固定发布日期时,不编造日期;“当前”只指核验当天看到的文档。

来源核验内容与采用边界
OpenAI · Compaction阈值触发、独立压缩与续接项。压缩项不是普通可读摘要或外部动作账本;不同续接方式分别处理
OpenAI · Prompt caching匹配前缀的计算复用。不缓存“正确答案”;不把旧参数、价格或保留期写成跨模型常量
OpenAI · Build skills方法元信息、正文和附属资源。借鉴渐进加载,方法文件不能自行扩大任务权限
OpenAI · Async tool calling模型继续工作、应用运行工具与结果关联。有模型和工具类型限制,不是任意 async 函数都具备此能力
OpenAI · Background mode长模型请求后台执行与状态获取。不自动托管业务工具任务或永久保存应用状态
OpenAI · Mid-turn steering工作中接收新指令。需核对模型与 WebSocket 路径,已发生的外部动作不会自动回滚
OpenAI · Tool search延迟发现和加载工具定义。相关性、可见性与执行授权是不同判断
OpenAI · Programmatic Tool Calling程序编排与中间结果处理。需保留失败与覆盖范围,不视为通用并发开关
OpenAI · Sandbox AgentsHarness 与执行环境分离。核验时 SDK 能力为 beta;借鉴设计,不宣称本地已有相同隔离
MCP · 2026-07-28 发布说明基础协议无状态核心与请求自描述。旧 initialize / session 流程不能标作新版本通用流程;历史笔记保留对照
MCP · ToolsCaching工具结构与目录缓存。private 不跨授权上下文;public 只适合不含用户特定数据的结果;缓存不替代访问控制
OpenAI · Model guidanceModels and providers模型相关指令、显式配置与兼容性。不预设最优型号;迁移时同时审视提示、工具与运行策略
OpenAI · AgentsFunction calling托管/SDK/直接 API 责任及调用结果关联。教材 JSON 仅为协议片段,未发出真实请求
OpenAI · Integrations and observability调用、工具与交接的结构化 trace。本仓库只有简化事件,未启用 SDK 导出或上传正文
Anthropic · Harness design,2026-03-24Harness 随模型与任务调整的经验。不引入文中的多轮评分门槛或完整多 Agent 平台
Anthropic · Managed Agents,2026-04-08持久会话、执行与可变 Harness 分离。作为系统设计阅读,不是本仓库的部署验证

API、SDK 与协议各有自己的版本。MCP 新版发布,不代表任意客户端已升级;某模型支持异步工具,也不意味着托管工具、程序化调用和所有传输可以任意组合。真正接入时沿所选路径核对兼容性,本轮不生成未经验证的跨产品配置。

D. 当前实现与教材设计的差距

源码仍为 src/learning/ai-harness/runtime.tsdemo.ts。本轮优化教材和页面,没有把概念扩成生产 Agent。

对象已有教学实现讲透但尚未实现
上下文任务、路径白名单、最近观察、字符上限token 计数、Compaction、KV 缓存统计、Skills loader
运行单动作循环、预算、暂停 JSON、快照检查后台服务、持久 job、异步工具调度、运行中 steering
工具内存 search/read、版本绑定预览、finishMCP、工具搜索服务、程序化执行器、真实磁盘应用
隔离精确字符串路径白名单,不执行 shellOS sandbox、网络策略、受控挂载、凭证代理
模型与观测脚本替身、ModelPort、步骤事件、handoff真实 Provider、usage、完整 trace、模型效果对比

“尚未实现”不等于只能写大纲:可以完整推演信息流、状态变化和失败原因,但不能写成自己的生产证据。sum 四步例子对应离线程序;双 job、协议 JSON 和 trace 是设计案例,未知耗时与 usage 不填零、不编造测量。

E. 不加天数,怎样学进去

H01 学完原案例后,比较缓存、压缩与状态的职责;H02 沿双 job 时间线理解“晚到但不再适用”;H03 比较工具目录、协议与执行隔离;H04 画出一次 Provider 调用,再用一条 trace 解释一个具体卡点。每次取一个问题深入即可,不要求同时学习所有 SDK。

CS329S、FSDL 与分布式系统课程继续提供原理,官方指南补充变化快的机制。完整课程地图保留在 docs/ai-deep-mastery/phase-2-systems/PROFESSIONAL_COURSE_REFERENCE_MAP.md。模型、SDK 或协议升级时,检查机制前提,再加有日期的更新说明;不只更换型号名字就宣称全部更新,也不把软件案例外推成 AGI 或真机能力。

完整规划与学习方法

规划更新:2026-09-12
学习范围:沿用 P2 第 91~180 天,不另加 90 天
重点:设计 AI 系统、构造开发上下文、实现 Agent harness、理解 AI 辅助软件开发
节奏:知识与动手优先,不求职、不增加考试或 Gate;已有教材全部保留

实践核验(2026-09-12):四章已结合当前 OpenAI 官方指南、MCP 2026-07-28 规范与 Anthropic 一手工程经验补充机制、案例和取舍。请查看来源、版本与实现边界;此日期只覆盖本轮主题,不表示全部历史教材重新核验。

1. 重点怎样调整

下一阶段不以“遍历所有 AI 基础设施工具”为目标,而以“能解释并实现一个小型 AI 开发工作系统”为主线。模型只是其中一个部件;你要学会把需求、上下文、工具、状态、执行边界、变更和人的判断连接起来。

建议将约 60% 学习精力放在系统设计、harness 与 AI 开发工作流,约 25% 放在数据、版本、接口、观测等支撑知识,约 15% 留给训练/Serving 原理与个人兴趣。比例可调,不按小时打卡。

已有 S01~S90 日课与 12 周机制讲义继续作为参考库;下列 H01~H04 是同一个阶段的四段学习主线,不是四份额外作业。只选能解决当下问题的支撑材料,不要求同时全量阅读两套内容。

教材怎样读:先理解原理,再对照运行

H01~H04 已从专题导读扩写为四章原理教材。正文直接讲解概念为何成立、机制如何运作、设计取舍和失败边界,并逐步推演同一个 sum 修复提案。无需先跳到外部课程,才能理解这里的知识点。

章节正文已经展开的问题
H01不完整信息下的决策、任务契约、预算与来源版本;Compaction、KV 前缀缓存、Skills 渐进加载和外部状态的分工
H02四步轨迹、暂停恢复、超时与幂等;异步工具与后台请求、中途改方向、双 job 时间线及晚到结果
H03四工具契约、版本绑定与注入;工具发现和逐次授权、MCP 版本演进、程序化调用、控制/执行平面隔离
H04需求与跨层影响、最小完整变更;模型与 Harness 协同调整、Provider 协议流、轻量 trace、知识回流与失效

每章页面都包含正文目录、示例命令和实际源码;正文中的设计扩展另行标明,不冒充已有实现。初读先顺着案例理解,遇到具体细节再展开源码与支撑日课即可,不增加每日提交或考试要求。

内容范围要分清:此次深化的是四章 Harness 主教材,不是重新写了 90 篇 Harness 日课。原 S01~S90 与 12 周讲义仍然保留,可按问题查阅;教材已写入不等于个人学习已完成。

2. 90 天路线:四段深入,六天整合

主线对应日课 / 总日系统设计问题AI 开发落地
H01 · 任务与上下文架构S01~21 / Day091~111如何把模糊目标变成边界清楚的任务?模型应该看到什么?Task contract、仓库地图、来源与版本、上下文预算
H02 · Harness 运行与恢复S22~42 / Day112~132谁控制循环?状态保存在哪里?什么时候停止?Model port、工具观察、状态机、预算、checkpoint 与恢复
H03 · 工具与代码变更边界S43~63 / Day133~153模型提出的调用与修改怎样进入可信执行层?Schema、scope、读后改、base hash、局部变更提案与交接
H04 · AI 开发完整工作流S64~84 / Day154~174如何用 AI 理解、设计、修改和维护系统,而非只生成代码?需求澄清、影响分析、最小改动、轻量观察、review 与知识更新
轻量整合S85~90 / Day175~180哪些是系统工程问题,哪些是能力研究问题?一张系统图、一段可解释运行、三个研究兴趣;不作硬性产出

H01 的三周

第一周以一个已有函数或页面为样本,说明目标、输入输出、不改什么、谁负责决定。第二周把代码、文档和版本组织成可追溯上下文,并理解 Skills 的按需加载。第三周比较压缩、前缀缓存与外部状态的不同作用,把 W3 的训练内存作为选读;本阶段不要求训练模型。

H02 的三周

第一周画单 Agent 的 observe → decide → act 循环,区分固定 workflow 与模型自主选择。第二周理解状态、工具结果与停止原因,运行暂停/恢复示例。第三周沿双 job 案例理解异步调用、中途改方向与晚到结果;不要求部署后台服务,也不重放真实副作用。

H03 的三周

第一周设计少量目标明确的工具,约定参数、结果、错误和权限,并区分工具搜索与授权。第二周理解虚拟仓库与真实 OS sandbox、控制平面与执行平面的区别。第三周结合版本绑定提案,阅读 MCP 新旧版本和程序化调用案例;协议和批量调用都不替代执行边界。

H04 的三周

第一周用一份任务卡完成从需求到设计的推理,区分目标约束和过程提示。第二周运行本地开发闭环,再用 Provider 消息流理解真实模型接入责任。第三周用一条 trace 解释卡点,讨论模型与 Harness 的配合,再把经验提炼进仓库说明;不增加自动评分流水线。

3. Harness 到底是什么

这里把 harness 定义为围绕模型组织任务执行的工程运行层:构造上下文、调用模型、解析动作、执行工具、保存状态、管理资源与停止、留下交接信息。不同项目对词的边界不同,不把这个定义当成统一标准。

部件负责什么不负责什么
模型根据上下文提出文本或动作不自行决定真实权限,也不自动知道外部执行结果
Harness上下文、循环、工具路由、状态、预算、停止不等于 OS 隔离,也不让模型天然正确
工具适配器把受限动作转成明确操作与观察不从模型内容继承更高权限
Sandbox限制进程、文件、网络等运行环境不保证业务含义正确或代码质量
人的工作界面目标、授权、review、反馈与交接不应只是机械地点击“同意”

一个更长的 Prompt 不能替代这些职责。反过来,也不必一开始就做多 Agent;单个可解释循环通常更适合学习状态与边界,再按实际瓶颈决定是否拆分。

4. 已实现的本地教学 Harness

入口:Harness 学习页。源码在 src/learning/ai-harness/runtime.tsdemo.ts,脚本在 scripts/ai-harness-lab.ts

npm run learning:harness -- context
npm run learning:harness -- resume
npm run learning:harness -- boundaries
npm run learning:harness -- workflow

实现包括:任务读写白名单、有限上下文包、返回 Promise 的 model port(不等于异步工具调度)、严格动作 schema、search/read/propose_edit/finish 路由、步骤预算、暂停 checkpoint、快照一致性检查、版本绑定的改动预览、事件记录与 handoff。

默认 model 是确定性脚本替身,仓库是内存里的三份合成文件。完整示例能从搜索、读取走到代码修改提案,但没有接入真实 LLM,没有修改项目源码,没有启动 shell,没有访问网络,也没有生产级 sandbox。输出中的 needs_review 不是“开发完成”。

只有在明确选择模型服务、费用与数据范围后,才应新增真实 provider adapter。那时还需要 token 计数、超时与取消、速率限制、敏感数据处理、真实工具隔离和成本上限;当前不默默读取 API Key 或上传仓库。

5. 轻量练习原则

每次挑一个问题:为什么模型缺上下文;为什么工具返回太大;为什么它重复动作;为什么旧 patch 不能直接应用;为什么“我完成了”还缺证据。运行一个相关示例,改一处输入,再写两三句观察即可。

轻量不等于不用检查。可以沿用一个已有命令、一次页面浏览或一个小例子来确认当前变更,但不以测试数量和门槛为学习主角,也不搭建额外 gate 平台。

6. 专业阅读与选读边界

以上为专业课程与一手工程经验,不是证明某一种架构普遍最优的定律。本仓库实现为自编教学例子,不能代表原作者产品或 SDK 的完整行为。

7. 未来延伸到 AGI 与具身智能

先学会归因:改了 harness 后任务成功,可能来自更好的工具、上下文或分解,不一定来自模型内在能力提升。P3 再研究规划、记忆、学习效率和泛化时,可以固定模型对比系统条件,或固定系统比较模型,避免混淆来源。

P4 把工具动作换成环境动作后,会出现延迟观测、状态估计、动作期限、不可逆后果与接管。软件开发中“先提案再 review”的思路可以参考,但不能直接当物理安全机制。当前继续只做纸面与仿真层面的延伸。