第 一部分 Agent基础认知
第 1章 Agent的行动之源 2
1.1 Agent:交互范式的质变 2
1.2 Function Calling:AI连接现实世界的接口 3
1.2.1 Function Calling是Agent的灵魂 3
1.2.2 选择并配置你的“中央处理器” 4
1.2.3 实战演练:赋予AI实时天气查询能力 5
1.3 Agent Loop:Agent的核心 8
1.3.1 手搓计算器Agent:理解Agent Loop 9
1.3.2 深度剖析Agent与LLM的交互模式 10
1.4 ReAct:通用的任务处理框架 14
1.4.1 ReAct起源 14
1.4.2 基于ReAct的结构化闭环 15
1.4.3 案例解析:从“静态幻觉”到“动态求真” 16
1.5 Agent实战:从零开始构建一个简易版编程助手 17
1.5.1 编写“宪法”:ReAct System Prompt 17
1.5.2 实现“核心调度器”:ReActAgent类 18
1.5.3 运行体验:让Agent写“贪吃蛇”游戏 20
1.6 本章小结 23
第 2章 Agent的武装力量 24
2.1 MCP 24
2.1.1 什么是MCP 25
2.1.2 MCP实战:构建天气查询服务 25
2.1.3 MCP的通信机制:父子进程模型 28
2.1.4 通过日志解析MCP 29
2.2 Skills:让Agent拥有“专业本能” 31
2.2.1 什么是Skills 32
2.2.2 渐进式披露 34
2.2.3 实现带有Skills功能的Agent 35
2.2.4 编写高质量Skills的实战心法 36
2.3 SubAgent与多智能体协同:分治法的AI实践 37
2.3.1 单智能体难以应对复杂任务 38
2.3.2 SubAgent架构:首席架构师+领域专家 39
2.3.3 SubAgent架构的核心优势 41
2.4 本章小结 42
第3章 Coding Agent:OpenCode与自主编程实践 44
3.1 Coding Agent的进化历程 44
3.1.1 第 一代(补全):GitHub Copilot 44
3.1.2 第二代(交互):Cursor/Claude Dev 45
3.1.3 第三代(自主):Agent 46
3.1.4 范式跃迁的本质:从“代码补全”到“工程交付” 47
3.2 Coding Agent的核心能力 47
3.3 选型与环境准备 49
3.3.1 为什么选择OpenCode 49
3.3.2 环境准备:安装与配置OpenCode 50
3.3.3 配置后端模型提供商 51
3.4 OpenCode实战配置:使用Chrome MCP 52
3.4.1 配置Chrome MCP服务 52
3.4.2 深度解构:Agent启动浏览器背后的故事 53
3.5 OpenCode实战配置:封装与使用Skills 55
3.5.1 开发一个自定义Skill:pr-code-review 55
3.5.2 实战演练:让Agent自主执行代码审查 57
3.6 OpenCode实战配置:构建专属SubAgent 58
3.6.1 定义专家角色:开发code-reviewer 58
3.6.2 实战调用:使用@符号唤醒“专家” 59
3.6.3 SubAgent是治理上下文腐化的关键 60
3.7 OpenCode实战配置:通过Plugin进行能力扩展 61
3.7.1 核心认知:Plugin的工程定位 61
3.7.2 事件驱动架构:核心Hooks体系 62
3.7.3 开发插件:实现任务完成通知 64
3.8 本章小结 65
第二部分 Harness工程理论
第4章 Harness工程的缘起 68
4.1 命名中的隐喻:从“放任生成”到“受控演进” 68
4.1.1 工业界的首次定名 69
4.1.2 为什么是2026年 69
4.2 OpenAI的Harness工程实践:零手工实现百万行代码 70
4.3 Anthropic的Harness工程实践:从生产线到决策闭环 71
4.4 Thoughtworks与体系化:从实践到理论 73
4.4.1 从实践导出理论 73
4.4.2 控制矩阵:约束与灵活性的平衡 74
4.4.3 体系化成型:控制熵增的工程分水岭 75
4.5 本章小结 76
第5章 Harness工程的演进 77
5.1 Prompt工程—意图的精准对齐 77
5.1.1 意图对齐:从描述到规约的跨越 77
5.1.2 隐形的工程天花板 79
5.1.3 Prompt工程无法独自走向生产 80
5.2 Context工程—信息的全局治理 81
5.2.1 信息的“贫血”与过载:Agent的认知悖论 81
5.2.2 上下文治理的核心策略:从“堆砌”到“蒸馏” 82
5.2.3 Context工程的局限:仍需Harness控制 83
5.3 Harness工程:约束、环境与反馈的控制闭环 84
5.3.1 从“软性引导”到“硬性控制” 84
5.3.2 控制闭环的核心三要素 85
5.3.3 工程实现:从理论到生产流水线 86
5.3.4 确定性的飞跃 87
5.4 深入理解范式跃迁:能力边界对比与Harness启动条件 88
5.4.1 从线性输出到闭环治理的演进 88
5.4.2 Harness的启动条件 90
5.5 本章小结 91
第6章 Harness工程的方法论 92
6.1 Harness的控制论根基 92
6.2 Harness飞轮 94
6.3 如何选择Harness套件 96
6.3.1 Harness套件决策框架 96
6.3.2 从通用到特有:两类套件的沉淀与打磨 98
6.3.3 套件不是越多越好 100
6.4 Harness软约束的主要阵地:AGENTS.md 102
6.4.1 AGENTS.md的前世今生 103
6.4.2 AGENTS.md的设计原则与内容指南 104
6.5 仓库是Agent的操作系统 105
6.6 重塑软件PDLC 106
6.6.1 传统软件PDLC的困境 107
6.6.2 Harness工程下的软件PDLC 107
6.6.3 工程师与组织角色演进 108
6.7 本章小结 110
第三部分 Harness工程实践
第7章 Harness实践:经典微服务 112
7.1 AI友好型代码 112
7.2 AI友好型架构 113
7.2.1 AI友好型架构概述 114
7.2.2 COLA是AI友好型架构首选 115
7.3 高效的Plan-Build模式 117
7.4 客户主数据中心(customer-center)工程实践 119
7.4.1 项目初始化 119
7.4.2 领域建模:金融属性的类型化表达 122
7.4.3 复杂业务:账户冻结/解冻的分层实现 124
7.5 本章小结 128
第8章 Harness实践:全新“绿地项目” 130
8.1 项目任务拆分 131
8.2 SDD与OpenSpec 133
8.3 迭代零之任务一:搭建项目框架 135
8.3.1 探索阶段:消除歧义 136
8.3.2 提案阶段:方案设计与任务拆解 137
8.3.3 实施阶段:“按图施工” 138
8.4 迭代零之任务二:初步构建挽具 139
8.4.1 生成AGENTS.md 139
8.4.2 构建测试防护网 140
8.4.3 沉淀为Harness约束 142
8.5 迭代一:CRM核心业务+ Harness修复 143
8.5.1 关键决策与长程任务挑战 143
8.5.2 代码审视:纠正AI的“平庸倾向” 144
8.5.3 迭代Harness:将经验转化为“挽具” 146
8.6 迭代二:客户小记功能+飞轮验证 149
8.6.1 需求澄清 149
8.6.2 关键输出物:tasks.md中的重要任务 150
8.6.3 交付即成品:享受飞轮红利 151
8.6.4 迭代Harness:增强架构防护 152
8.7 迭代三:客户标签+代码质量闸门 156
8.7.1 通过SDD实现业务功能 156
8.7.2 迭代Harness:构建“前馈+反馈”双重保障 157
8.7.3 上下文治理:从“手册”到“地图” 159
8.8 迭代四:客户360°视图+外部系统集成 160
8.8.1 基于SDD的跨系统集成 161
8.8.2 审视代码“草稿”:手动优化不可避免 161
8.8.3 迭代Harness:提供外部信息 163
8.9 本章小结 164
第9章 Harness实践:遗留“棕地项目” 166
9.1 传统遗留系统 167
9.1.1 走进“大泥潭” 167
9.1.2 新需求的降临 170
9.2 局部重构:完成新需求的同时偿还技术债 171
9.2.1 第 一步:AI辅助领域知识抽取 171
9.2.2 第二步:构建单元测试防护网 172
9.2.3 第三步:引入PricingPolicy封装定价逻辑 173
9.2.4 第四步:实现新需求(VIP客户专属折扣) 175
9.3 绞杀者重构:飞着飞机换引擎 176
9.3.1 绞杀者模式概述 176
9.3.2 第 一步:搭建绞杀者框架(特性开关) 177
9.3.3 第二步:构建集成测试防护网 179
9.3.4 第三步:防腐隔离—新旧系统划清边界 181
9.3.5 第四步:重构核心业务逻辑(合规校验与折扣计算) 182
9.3.6 第五步:最后的绞杀 184
9.4 本章小结 186
第 10章 Harness实践:测试、环境与交付 189
10.1 测试模型的演进 190
10.1.1 测试金字塔模型 190
10.1.2 菱形测试模型 192
10.2 三个测试反馈环路的测试策略 193
10.2.1 内环(Inner Loop) 194
10.2.2 中环(Middle Loop) 195
10.2.3 外环(Outer Loop) 196
10.2.4 三环协同与Harness工程原则 198
10.3 环路落地:在Harness中实现内环与中环 199
10.3.1 Mock的局限性 199
10.3.2 用Embedded方案替代Mock 201
10.3.3 CRM系统中的Harness实践 202
10.4 外环实战(一):本地脚本自动化 204
10.4.1 MCP工具链准备 205
10.4.2 防御性环境启动 205
10.4.3 OpenCode命令封装 208
10.5 外环实战(二):容器化沙箱与声明式端到端基座 210
10.5.1 裸机脚本方案的局限性 210
10.5.2 用Docker Compose构建全栈自动化测试环境 211
10.5.3 OpenCode命令封装 213
10.6 用GitHub Actions完善CI/CD体系 214
10.6.1 事件驱动的工程哲学 214
10.6.2 为CRM系统设计CI/CD流水线 215
10.7 本章小结 220
第四部分 未来展望与挑战
第 11章 未来软件工程的展望与挑战 224
11.1 从编码者到构建者 224
11.1.1 被终结的“码农”时代 224
11.1.2 构建者的3种核心能力 225
11.2 架构能力的价值重估 225
11.2.1 AI的能力边界局限 226
11.2.2 无法被训练的架构决策 227
11.2.3 AI时代的“架构债” 227
11.2.4 未来架构师的新定位 228
11.3 未来的人才培养和组织文化 229
11.3.1 培养审视能力 229
11.3.2 培养工程能力 230
11.3.3 未来考核指标的演进 232
11.4 多智能体协作与可观测性挑战 233
11.4.1 从单智能体到多智能体系统 234
11.4.2 Agent行为的可观测性挑战 236
11.5 认知债风险 237
11.5.1 什么是认知债 237
11.5.2 认知债的危机与应对 238
11.6 软件的未来 240
11.7 本章小结 242