图书目录

目    录

第1章  从聊天助手到第一个Agent 1

1.1  企业Agent的问题起点 2

1.1.1  两张重复采购单 2

1.1.2  聊天助手、Agent和AgentOS 3

1.2  快速上手:用Python写一个小Agent 4

1.2.1  定义采购异常请求 5

1.2.2  查询库存、合同和预算 5

1.2.3  让模型生成采购建议 7

1.2.4  串起完整流程并观察输出 7

1.3  从能跑到能接业务系统 9

1.3.1  这段代码缺什么 9

1.3.2  把动作拆成可以检查的对象 10

1.4  回到MOTOR-42:怎样才算做对 11

1.5  本章小结 12

第2章  业务变更单与Pydantic对象契约 13

2.1  从自然语言建议到对象契约 14

2.1.1  自然语言写回建议的问题 14

2.1.2  Pydantic在本书中的位置 16

2.2  快速上手:将字典数据转换为业务对象 17

2.2.1  定义一个库存对象 17

2.2.2  校验输入并观察输出 18

2.2.3  看懂校验失败 19

2.2.4  导出字典和Schema 20

2.3  定义AgentOS的基础对象 21

2.3.1  证据对象EvidenceRef 21

2.3.2  采购变更负载PurchaseRequestChange 22

2.3.3  业务变更单BusinessPatch 22

2.4  校验一张MOTOR-42业务变更单 24

2.4.1  准备合法输入 24

2.4.2  校验并导出结果 25

2.4.3  校验失败后怎么办 26

2.5  JSON Schema让多方读同一张单 27

2.6  MOTOR-42写回前的对象关系 28

2.7  格式正确不等于业务正确 30

2.8  从对象契约走向状态图 31

2.9  本章小结 31

第3章  LangGraph:用状态图组织采购审批流程 32

3.1  从手写流程的问题开始 34

3.2  LangGraph的三个基本概念 35

3.2.1  State:任务流动时携带的数据 35

3.2.2  Node:每一步都是一个普通函数 36

3.2.3  Edge:把节点连成流程 36

3.3  运行一张图:invoke与stream 38

3.3.1  使用invoke查看最终状态 38

3.3.2  使用stream观察节点更新 38

3.4  把最小图扩展为MOTOR-42采购任务 39

3.4.1  PurchaseState:采购任务状态 40

3.4.2  采购流程中的几个基础节点 40

3.4.3  审批、写回和记录节点 42

3.5  条件边:让流程根据状态选择下一步 43

3.5.1  三个路由函数 43

3.5.2  组装采购状态图 44

3.5.3  运行采购图并阅读结果 46

3.6  人工审批:interrupt的基础用法 46

3.7  checkpointer:让任务可以恢复 49

3.8  失败路径和重试出口 51

3.9  接回AgentOS:LangGraph不替代业务对象 52

3.10  本章小结 53

第4章  LiteLLM:模型网关、路由、降级和成本 54

4.1  为什么不能在节点中直接写模型名 56

4.2  LiteLLM是什么:先把模型调用统一起来 57

4.3  快速上手:用SDK发起一次模型调用 58

4.4  Router入门:让多个模型有选择规则 60

4.5  Proxy入门:团队统一模型入口 62

4.6  AgentOS中的路由对象:从模型调用到任务记录 64

4.6.1  ModelProfile:给模型一张业务说明卡 64

4.6.2  RouteRequest和RouteDecision:完整记录模型路由决策 66

4.7  fallback与降级:备用模型不能偷偷替换 67

4.8  成本记录:不要等到账单来了才发现问题 69

4.9  回到MOTOR-42:证据摘要怎么路由 70

4.10  模型网关接入业务前要检查什么 72

4.11  本章小结 73

第5章  MCP/FastMCP:让Agent学会安全地使用工具 75

5.1  从一个普通工具函数开始 76

5.2  MCP的三个角色和三类能力 78

5.3  FastMCP快速上手:写一个合同Server 80

5.3.1  创建Server并暴露一个Tool 80

5.3.2  暴露Resource:给模型读取材料说明 81

5.3.3  暴露Prompt:复用合同摘要模板 82

5.3.4  启动Server 83

5.4  用Schema固定工具输入输出 83

5.5  把ToolResult转换为EvidenceRef 85

5.6  工具调试:先看工具,再接模型 86

5.7  授权、记录与工具目录 87

5.8  回到MOTOR-42:合同工具怎样进入采购异常 89

5.9  设备工单:同一套方法怎样迁移 90

5.10  安全检查和运行方式 91

5.11  本章小结 92

第6章  LlamaIndex与RAG:让资料变成可检查依据 93

6.1  RAG和LlamaIndex的基本概念 95

6.2  快速上手:用LlamaIndex做一个基础问答 96

6.2.1  第一步:把一段资料放入Document 96

6.2.2  第二步:把Document建成索引 97

6.2.3  第三步:用QueryEngine提问 97

6.2.4  第四步:读取回答使用的来源节点 98

6.3  Document、Node与metadata:证据份不能丢 99

6.3.1  给文档补齐基础metadata 99

6.3.2  Node是检索和引用的基本单位 100

6.4  把source_nodes转换为EvidenceRef 101

6.4.1  定义一个轻量的EvidenceRef 101

6.4.2  从Node生成EvidenceRef 102

6.4.3  三种常见的处理结果 103

6.5  检索链路:权限过滤、混合检索和低置信度暂停 103

6.5.1  先过滤权限,再进行检索 104

6.5.2  为什么需要混合检索 105

6.5.3  低置信度时要暂停 105

6.6  结构化数据查询:从自然语言问题到查询计划 106

6.6.1  定义MetricQueryPlan 106

6.6.2  指标目录让口径先说清楚 107

6.6.3  QueryEvidence和ReportSection 107

6.7  回到项目:设备工单和MOTOR-42采购异常 110

6.7.1  设备工单:从维修手册到工单草案 110

6.7.2  MOTOR-42:文档证据和数据证据一起使用 111

6.8  上下文预算和评测 111

6.9  本章小结 112

第7章  OPA与工具工程:策略、审批、幂等和补偿 113

7.1  为什么需要OPA:不要把策略散落在业务代码中 115

7.2  OPA/Rego快速上手:输入、规则、结果 116

7.2.1  第一步:准备策略输入 117

7.2.2  第二步:写一组入门Rego规则 118

7.2.3  第三步:查看策略输出 119

7.3  把OPA输出变成PolicyDecision 120

7.4  从策略到审批:ApprovalRequest和ApprovalGrant 122

7.5  工具契约:不要把写回工具当成普通函数 124

7.6  幂等键、错误分类和补偿任务 126

7.7  回到MOTOR-42:高风险采购写回的完整流程 130

7.8  设备工单:同一套方法也能服务其他场景 132

7.9  本章小结 133

第8章  OpenTelemetry、测试与评测:让任务看得见、查得清 134

8.1  普通日志为什么不够 136

8.2  OpenTelemetry的4个入门概念 137

8.3  快速上手:为MOTOR-42任务添加Trace 139

8.3.1  创建Tracer和顶层Span 139

8.3.2  给关键节点加子Span 139

8.3.3  记录外部调用错误 140

8.4  AgentOS中应该记录哪些字段 142

8.5  TraceSpan和AuditEvent要分开 143

8.6  Metric和运营看板:看整体健康度 145

8.7  pytest入门:先测对象关系和失败路径 146

8.8  promptfoo入门:测试模型输出和RAG引用 148

8.9  线检查:把测试、评测和Trace字段放在一起 149

8.10  MOTOR-42超时复查:把本章内容接回主线 151

8.11  攻击面和数据最小化 152

8.12  事故回灌:把真实问题变成新样本 155

8.13  本章小结 156

第9章  长任务运行时 157

9.1  问题起点:一次可能跑丢的采购任务 158

9.2  队列和Worker:先把任务放到后台 160

9.3  什么时候普通队列足够,什么时候需要Temporal 163

9.4  Temporal入门:Workflow、Activity、Worker和Client 164

9.4.1  第一步:把外部动作写成Activity 165

9.4.2  第二步:Workflow负责组织长流程 166

9.4.3  第三步:Worker注册并执行任务 166

9.4.4  第四步:Client启动Workflow 167

9.5  确定性要求、RetryPolicy与失败分类 168

9.6  审批等待、Signal与跨天恢复 170

9.7  死信、人工接管与幂等补偿 172

9.8  接入LangGraph:谁表达流程,谁保障时间跨度 175

9.9  设备工单、索引重建与多场景长任务 176

9.10  部署结构:API、Worker、Temporal和可观测性 176

9.11  成本、SLO和运行反馈 177

9.12  恢复演练、常见坑和修正方式 180

9.13  本章小结 181

第10章  把框架组合成基础AgentOS工程 183

10.1  从单个框架到组合工程 185

10.2  快速上手:用一条任务线串起对象 186

10.3  工程模块:先分清责任,再看目录 188

10.4  配置入口:把场景、工具、策略和预算写清楚 190

10.5  编排入口:用一个很薄的服务提交任务 191

10.6  数据表:先保存能说清楚的事 193

10.7  端到端验证:正常路径和失败路径一起看 194

10.8  两个场景:采购异常和设备工单怎样复用同一套工程 196

10.9  安全、多租户和版本:不要把复杂问题藏起来 196

10.10  轨迹回放、指标快照和上线检查 197

10.11  服务拆分和试点范围 199

10.12  本章小结 200

第11章  完整实战:采购异常与设备工单 201

11.1  实战章节先看什么 202

11.2  两个场景共用的对象 204

11.3  采购异常快速上手:从输入到依据 206

11.4  采购变更单:从建议到ERP写回前的对象 209

11.5  采购策略、审批和写回 210

11.6  采购失败路径:拒绝、超时、冲突和越权 214

11.7  设备工单快速上手:从告警到依据 217

11.8  设备工单:从依据到CRM工单草案 219

11.9  设备失败路径:信息缺失、旧版手册和反馈复核 221

11.10  回放、测试和接入前检查 223

11.11  把现场反馈带回系统 225

11.12  本章小结 226

第12章  从项目到企业AgentOS:能力目录、负责人和成熟度 227

12.1  问题起点:项目成功不等于平台成功 228

12.2  能力目录是什么 230

12.3  快速上手:用一个对象登记平台能力 232

12.4  能力检查:先让机器发现明显问题 233

12.5  负责人:能力出了问题要找得到人 235

12.6  自助接入:让新团队按同一张表接入 236

12.7  从项目资产沉淀成平台能力 239

12.8  运行看板和成本归因 240

12.9  成熟度模型:判断下一步应该补什么 243

12.10  平台化路线图和注意事项 245

12.11  本章小结 246