第16章 Agent 的生命周期 —— 从 Prompt 到执行完成
目录
上一篇我们深入了 Skills 的按需加载机制。本章我们看 Agent 的完整生命周期——从用户 prompt 到任务完成。
Agent 生命周期是什么
一句话定义:Agent 从启动到完成的完整流程——初始化→循环→完成→清理。
Agent Lifecycle = prompt → Loop → completion → cleanup 定位:理解 Agent 从开始到结束的完整过程
图表
代码
graph LR
Init[初始化
prompt → messages] --> Loop[Agent Loop
持续循环]
Loop --> Complete[完成
end_turn → 返回结果]
Complete --> Cleanup[清理
保存状态 → 结束]graph LR
Init[初始化
prompt → messages] --> Loop[Agent Loop
持续循环]
Loop --> Complete[完成
end_turn → 返回结果]
Complete --> Cleanup[清理
保存状态 → 结束]graph LR
Init[初始化
prompt → messages] --> Loop[Agent Loop
持续循环]
Loop --> Complete[完成
end_turn → 返回结果]
Complete --> Cleanup[清理
保存状态 → 结束]graph LR
Init[初始化<br/>prompt → messages] --> Loop[Agent Loop<br/>持续循环]
Loop --> Complete[完成<br/>end_turn → 返回结果]
Complete --> Cleanup[清理<br/>保存状态 → 结束]核心阶段:
- 初始化:接收用户 prompt,构建 messages 数组
- Agent Loop:持续循环,执行任务
- 完成:Model 返回 end_turn,返回最终结果
- 清理:保存状态、释放资源、结束会话
Agent 生命周期完整流程
流程详解
图表
代码
flowchart TB
subgraph Init["初始化阶段"]
I1[接收用户 prompt]
I2[构建 messages 数组
System + User]
I3[注入 System Prompt
工具定义 + 约束]
I4[注入 CLAUDE.md
项目约定]
end
subgraph Loop["Agent Loop 阶段"]
L1[observe
接收 messages]
L2[think
Model 推理]
L3{stop_reason?}
L4[tool_use
调用工具]
L5[act
执行工具]
L6[feedback
追加结果]
L7[end_turn
结束对话]
L1 --> L2 --> L3
L3 -->|tool_use| L4 --> L5 --> L6 --> L1
L3 -->|end_turn| L7
end
subgraph Complete["完成阶段"]
C1[Model 返回最终响应]
C2[构建结果
文本 + 执行记录]
C3[返回用户]
end
subgraph Cleanup["清理阶段"]
U1[保存状态
任务系统持久化]
U2[释放资源
关闭 MCP 连接]
U3[记录日志
执行记录]
U4[结束会话]
end
Init --> Loop --> Complete --> Cleanupflowchart TB
subgraph Init["初始化阶段"]
I1[接收用户 prompt]
I2[构建 messages 数组
System + User]
I3[注入 System Prompt
工具定义 + 约束]
I4[注入 CLAUDE.md
项目约定]
end
subgraph Loop["Agent Loop 阶段"]
L1[observe
接收 messages]
L2[think
Model 推理]
L3{stop_reason?}
L4[tool_use
调用工具]
L5[act
执行工具]
L6[feedback
追加结果]
L7[end_turn
结束对话]
L1 --> L2 --> L3
L3 -->|tool_use| L4 --> L5 --> L6 --> L1
L3 -->|end_turn| L7
end
subgraph Complete["完成阶段"]
C1[Model 返回最终响应]
C2[构建结果
文本 + 执行记录]
C3[返回用户]
end
subgraph Cleanup["清理阶段"]
U1[保存状态
任务系统持久化]
U2[释放资源
关闭 MCP 连接]
U3[记录日志
执行记录]
U4[结束会话]
end
Init --> Loop --> Complete --> Cleanupflowchart TB
subgraph Init["初始化阶段"]
I1[接收用户 prompt]
I2[构建 messages 数组
System + User]
I3[注入 System Prompt
工具定义 + 约束]
I4[注入 CLAUDE.md
项目约定]
end
subgraph Loop["Agent Loop 阶段"]
L1[observe
接收 messages]
L2[think
Model 推理]
L3{stop_reason?}
L4[tool_use
调用工具]
L5[act
执行工具]
L6[feedback
追加结果]
L7[end_turn
结束对话]
L1 --> L2 --> L3
L3 -->|tool_use| L4 --> L5 --> L6 --> L1
L3 -->|end_turn| L7
end
subgraph Complete["完成阶段"]
C1[Model 返回最终响应]
C2[构建结果
文本 + 执行记录]
C3[返回用户]
end
subgraph Cleanup["清理阶段"]
U1[保存状态
任务系统持久化]
U2[释放资源
关闭 MCP 连接]
U3[记录日志
执行记录]
U4[结束会话]
end
Init --> Loop --> Complete --> Cleanupflowchart TB
subgraph Init["初始化阶段"]
I1[接收用户 prompt]
I2[构建 messages 数组<br/>System + User]
I3[注入 System Prompt<br/>工具定义 + 约束]
I4[注入 CLAUDE.md<br/>项目约定]
end
subgraph Loop["Agent Loop 阶段"]
L1[observe<br/>接收 messages]
L2[think<br/>Model 推理]
L3{stop_reason?}
L4[tool_use<br/>调用工具]
L5[act<br/>执行工具]
L6[feedback<br/>追加结果]
L7[end_turn<br/>结束对话]
L1 --> L2 --> L3
L3 -->|tool_use| L4 --> L5 --> L6 --> L1
L3 -->|end_turn| L7
end
subgraph Complete["完成阶段"]
C1[Model 返回最终响应]
C2[构建结果<br/>文本 + 执行记录]
C3[返回用户]
end
subgraph Cleanup["清理阶段"]
U1[保存状态<br/>任务系统持久化]
U2[释放资源<br/>关闭 MCP 连接]
U3[记录日志<br/>执行记录]
U4[结束会话]
end
Init --> Loop --> Complete --> Cleanup初始化阶段
初始化步骤
| 步骤 | 动作 | 内容 |
|---|---|---|
| 1 | 接收用户 prompt | 用户输入的任务描述 |
| 2 | 构建 messages 数组 | [{"role": "user", "content": prompt}] |
| 3 | 注入 System Prompt | 工具定义 + 约束规则 + 格式要求 |
| 4 | 注入 CLAUDE.md | 项目约定 + 架构 + 注意事项 |
图表
代码
graph LR
Prompt[用户 prompt] --> Build[构建 messages]
Build --> InjectSystem[注入 System Prompt]
InjectSystem --> InjectCLAUDE[注入 CLAUDE.md]
InjectCLAUDE --> Ready[初始化完成
准备进入 Loop]graph LR
Prompt[用户 prompt] --> Build[构建 messages]
Build --> InjectSystem[注入 System Prompt]
InjectSystem --> InjectCLAUDE[注入 CLAUDE.md]
InjectCLAUDE --> Ready[初始化完成
准备进入 Loop]graph LR
Prompt[用户 prompt] --> Build[构建 messages]
Build --> InjectSystem[注入 System Prompt]
InjectSystem --> InjectCLAUDE[注入 CLAUDE.md]
InjectCLAUDE --> Ready[初始化完成
准备进入 Loop]graph LR
Prompt[用户 prompt] --> Build[构建 messages]
Build --> InjectSystem[注入 System Prompt]
InjectSystem --> InjectCLAUDE[注入 CLAUDE.md]
InjectCLAUDE --> Ready[初始化完成<br/>准备进入 Loop]初始化实现
# 初始化阶段实现
def initialize_agent(user_prompt, system_prompt, claude_md):
# 构建初始 messages 数组
messages = [
{"role": "system", "content": system_prompt + claude_md},
{"role": "user", "content": user_prompt}
]
# 初始化任务系统
tasks = []
# 初始化状态
state = {
"messages": messages,
"tasks": tasks,
"tool_calls": 0,
"loops": 0
}
return stateSystem Prompt 组成
| 组成部分 | 内容 | Token 数量 |
|---|---|---|
| 工具定义 Schema | 所有工具的参数定义 | 2000-5000 tokens |
| 约束规则 | 安全约束、格式要求 | 500-1000 tokens |
| Skills 列表 | 可用 Skills 目录 | 200-500 tokens |
| 格式要求 | 输出格式、响应格式 | 200-500 tokens |
Agent Loop 阶段
Loop 循环详解
每次循环包含:
图表
代码
graph LR
Observe[observe
接收 messages] --> Think[think
Model 推理]
Think --> Decide{决策}
Decide -->|tool_use| Act[act
执行工具]
Act --> Feedback[feedback
追加结果]
Feedback --> Observe
Decide -->|end_turn| End[end_turn
结束对话]graph LR
Observe[observe
接收 messages] --> Think[think
Model 推理]
Think --> Decide{决策}
Decide -->|tool_use| Act[act
执行工具]
Act --> Feedback[feedback
追加结果]
Feedback --> Observe
Decide -->|end_turn| End[end_turn
结束对话]graph LR
Observe[observe
接收 messages] --> Think[think
Model 推理]
Think --> Decide{决策}
Decide -->|tool_use| Act[act
执行工具]
Act --> Feedback[feedback
追加结果]
Feedback --> Observe
Decide -->|end_turn| End[end_turn
结束对话]graph LR
Observe[observe<br/>接收 messages] --> Think[think<br/>Model 推理]
Think --> Decide{决策}
Decide -->|tool_use| Act[act<br/>执行工具]
Act --> Feedback[feedback<br/>追加结果]
Feedback --> Observe
Decide -->|end_turn| End[end_turn<br/>结束对话]| 循环步骤 | 动作 | 说明 |
|---|---|---|
| observe | 接收 messages 数组 | 包含历史 + 工具输出 |
| think | Model 推理 | 根据上下文推理下一步 |
| decide | Model 决策 | 返回 stop_reason(tool_use/end_turn) |
| act | 执行工具 | 根据 tool_use 执行具体工具 |
| feedback | 追加结果 | 工具输出追加到 messages |
Loop 计数
问题:一个任务需要多少次循环?
| 任务复杂度 | 循环次数 | 工具调用次数 | 总 Token |
|---|---|---|---|
| 简单任务 | 2-5 次 | 1-3 次 | 5K-10K |
| 中等任务 | 5-10 次 | 3-8 次 | 10K-20K |
| 复杂任务 | 10-20 次 | 8-15 次 | 20K-50K |
| 大型任务 | 20-50 次 | 15-40 次 | 50K-100K |
图表
代码
graph TB
subgraph LoopCount["循环次数分布"]
L1[简单任务
2-5 次
单文件操作]
L2[中等任务
5-10 次
多文件修改]
L3[复杂任务
10-20 次
模块重构]
L4[大型任务
20-50 次
完整项目]
endgraph TB
subgraph LoopCount["循环次数分布"]
L1[简单任务
2-5 次
单文件操作]
L2[中等任务
5-10 次
多文件修改]
L3[复杂任务
10-20 次
模块重构]
L4[大型任务
20-50 次
完整项目]
endgraph TB
subgraph LoopCount["循环次数分布"]
L1[简单任务
2-5 次
单文件操作]
L2[中等任务
5-10 次
多文件修改]
L3[复杂任务
10-20 次
模块重构]
L4[大型任务
20-50 次
完整项目]
endgraph TB
subgraph LoopCount["循环次数分布"]
L1[简单任务<br/>2-5 次<br/>单文件操作]
L2[中等任务<br/>5-10 次<br/>多文件修改]
L3[复杂任务<br/>10-20 次<br/>模块重构]
L4[大型任务<br/>20-50 次<br/>完整项目]
endLoop 内的扩展机制
管理层插入 Loop:
图表
代码
graph LR
LoopStart[Loop 开始] --> PermCheck[权限检查
deny/ask/allow]
PermCheck --> PreHook[PreToolUse Hook
参数验证]
PreHook --> ToolExec[工具执行]
ToolExec --> PostHook[PostToolUse Hook
结果处理]
PostHook --> CompressCheck[上下文检查
触发压缩?]
CompressCheck --> LoopEnd[Loop 结束]graph LR
LoopStart[Loop 开始] --> PermCheck[权限检查
deny/ask/allow]
PermCheck --> PreHook[PreToolUse Hook
参数验证]
PreHook --> ToolExec[工具执行]
ToolExec --> PostHook[PostToolUse Hook
结果处理]
PostHook --> CompressCheck[上下文检查
触发压缩?]
CompressCheck --> LoopEnd[Loop 结束]graph LR
LoopStart[Loop 开始] --> PermCheck[权限检查
deny/ask/allow]
PermCheck --> PreHook[PreToolUse Hook
参数验证]
PreHook --> ToolExec[工具执行]
ToolExec --> PostHook[PostToolUse Hook
结果处理]
PostHook --> CompressCheck[上下文检查
触发压缩?]
CompressCheck --> LoopEnd[Loop 结束]graph LR
LoopStart[Loop 开始] --> PermCheck[权限检查<br/>deny/ask/allow]
PermCheck --> PreHook[PreToolUse Hook<br/>参数验证]
PreHook --> ToolExec[工具执行]
ToolExec --> PostHook[PostToolUse Hook<br/>结果处理]
PostHook --> CompressCheck[上下文检查<br/>触发压缩?]
CompressCheck --> LoopEnd[Loop 结束]插入顺序:
- 权限检查(deny/ask/allow)
- PreToolUse Hook(参数验证)
- 工具执行(调用具体工具)
- PostToolUse Hook(结果处理)
- 上下文检查(是否触发压缩)
完成阶段
end_turn 处理
触发条件:Model 返回 stop_reason == “end_turn”。
处理步骤:
图表
代码
graph LR
EndTurn[end_turn] --> BuildResult[构建结果
文本 + 执行记录]
BuildResult --> Format[格式化输出]
Format --> Return[返回用户]graph LR
EndTurn[end_turn] --> BuildResult[构建结果
文本 + 执行记录]
BuildResult --> Format[格式化输出]
Format --> Return[返回用户]graph LR
EndTurn[end_turn] --> BuildResult[构建结果
文本 + 执行记录]
BuildResult --> Format[格式化输出]
Format --> Return[返回用户]graph LR
EndTurn[end_turn] --> BuildResult[构建结果<br/>文本 + 执行记录]
BuildResult --> Format[格式化输出]
Format --> Return[返回用户]| 步骤 | 动作 | 说明 |
|---|---|---|
| 1 | Model 返回 end_turn | 任务完成信号 |
| 2 | 构建结果 | 最终响应 + 执行记录 |
| 3 | 格式化输出 | 优化可读性 |
| 4 | 返回用户 | 显示结果 |
执行记录
记录内容:
| 记录维度 | 内容 | 用途 |
|---|---|---|
| 工具调用次数 | 调用了哪些工具 | 性能分析 |
| 循环次数 | 总循环次数 | 效率评估 |
| Token 消耗 | 输入/输出 Token | 成本分析 |
| 权限决策 | deny/ask/allow 记录 | 安全审计 |
| 错误记录 | 工具执行错误 | 问题排查 |
// 执行记录示例
{
"execution_record": {
"loops": 10,
"tool_calls": 8,
"input_tokens": 15000,
"output_tokens": 3000,
"permissions": {
"allow": 5,
"ask": 3,
"deny": 0
},
"errors": [],
"duration": "45 seconds"
}
}清理阶段
清理步骤
| 步骤 | 动作 | 说明 |
|---|---|---|
| 1 | 保存状态 | 任务系统持久化 |
| 2 | 释放资源 | 关闭 MCP 连接、清理临时文件 |
| 3 | 记录日志 | 执行记录写入日志 |
| 4 | 结束会话 | 会话结束 |
图表
代码
graph LR
Complete[完成阶段] --> SaveState[保存状态
任务持久化]
SaveState --> ReleaseResource[释放资源
关闭 MCP]
ReleaseResource --> LogRecord[记录日志
执行记录]
LogRecord --> EndSession[结束会话]graph LR
Complete[完成阶段] --> SaveState[保存状态
任务持久化]
SaveState --> ReleaseResource[释放资源
关闭 MCP]
ReleaseResource --> LogRecord[记录日志
执行记录]
LogRecord --> EndSession[结束会话]graph LR
Complete[完成阶段] --> SaveState[保存状态
任务持久化]
SaveState --> ReleaseResource[释放资源
关闭 MCP]
ReleaseResource --> LogRecord[记录日志
执行记录]
LogRecord --> EndSession[结束会话]graph LR
Complete[完成阶段] --> SaveState[保存状态<br/>任务持久化]
SaveState --> ReleaseResource[释放资源<br/>关闭 MCP]
ReleaseResource --> LogRecord[记录日志<br/>执行记录]
LogRecord --> EndSession[结束会话]状态保存
保存内容:
| 内容 | 说明 | 存储位置 |
|---|---|---|
| 任务列表 | 未完成任务 | 任务系统 |
| messages 数组 | 对话历史 | 会话存储 |
| 执行记录 | 工具调用记录 | 日志系统 |
# 状态保存实现
def save_state(state):
# 保存任务列表
save_tasks(state["tasks"])
# 保存 messages(可选)
if need_save_session:
save_session(state["messages"])
# 记录执行日志
log_execution(state["execution_record"])资源释放
释放内容:
| 资源 | 说明 | 释放动作 |
|---|---|---|
| MCP 连接 | MCP 服务器连接 | 关闭连接 |
| 临时文件 | 工具执行产生的临时文件 | 删除文件 |
| 后台任务 | 后台执行的任务 | 终止或保存 |
# 资源释放实现
def release_resources():
# 关闭 MCP 连接
for mcp_client in mcp_clients:
mcp_client.close()
# 清理临时文件
cleanup_temp_files()
# 处理后台任务
handle_background_tasks()Agent 生命周期的状态管理
状态流转
图表
代码
stateDiagram-v2
[*] --> Initializing: 接收 prompt
Initializing --> Looping: 初始化完成
Looping --> ToolCalling: tool_use
ToolCalling --> Looping: 工具执行完成
Looping --> Completing: end_turn
Completing --> Cleanuping: 返回结果
Cleanuping --> [*]: 会话结束
Looping --> ErrorHandling: 错误发生
ErrorHandling --> Looping: 重试成功
ErrorHandling --> Completing: 重试失败stateDiagram-v2
[*] --> Initializing: 接收 prompt
Initializing --> Looping: 初始化完成
Looping --> ToolCalling: tool_use
ToolCalling --> Looping: 工具执行完成
Looping --> Completing: end_turn
Completing --> Cleanuping: 返回结果
Cleanuping --> [*]: 会话结束
Looping --> ErrorHandling: 错误发生
ErrorHandling --> Looping: 重试成功
ErrorHandling --> Completing: 重试失败stateDiagram-v2
[*] --> Initializing: 接收 prompt
Initializing --> Looping: 初始化完成
Looping --> ToolCalling: tool_use
ToolCalling --> Looping: 工具执行完成
Looping --> Completing: end_turn
Completing --> Cleanuping: 返回结果
Cleanuping --> [*]: 会话结束
Looping --> ErrorHandling: 错误发生
ErrorHandling --> Looping: 重试成功
ErrorHandling --> Completing: 重试失败stateDiagram-v2
[*] --> Initializing: 接收 prompt
Initializing --> Looping: 初始化完成
Looping --> ToolCalling: tool_use
ToolCalling --> Looping: 工具执行完成
Looping --> Completing: end_turn
Completing --> Cleanuping: 返回结果
Cleanuping --> [*]: 会话结束
Looping --> ErrorHandling: 错误发生
ErrorHandling --> Looping: 重试成功
ErrorHandling --> Completing: 重试失败状态定义
| 状态 | 说明 | 转换条件 |
|---|---|---|
| Initializing | 初始化阶段 | 接收 prompt |
| Looping | Agent Loop 循环 | 初始化完成 |
| ToolCalling | 工具调用 | tool_use |
| Completing | 完成阶段 | end_turn |
| Cleanuping | 清理阶段 | 返回结果 |
| ErrorHandling | 错误处理 | 工具执行错误 |
Agent 生命周期的异常处理
错误处理流程
图表
代码
graph LR
Error[错误发生] --> Type{错误类型}
Type -->|工具错误| ToolRetry[工具重试
最多 3 次]
Type -->|上下文溢出| Compress[上下文压缩]
Type -->|Model 错误| ModelRetry[Model 重试]
Type -->|系统错误| Abort[终止任务]
ToolRetry --> Success{成功?}
Success -->|是| Continue[继续 Loop]
Success -->|否| Abort
Compress --> Continue
ModelRetry --> Successgraph LR
Error[错误发生] --> Type{错误类型}
Type -->|工具错误| ToolRetry[工具重试
最多 3 次]
Type -->|上下文溢出| Compress[上下文压缩]
Type -->|Model 错误| ModelRetry[Model 重试]
Type -->|系统错误| Abort[终止任务]
ToolRetry --> Success{成功?}
Success -->|是| Continue[继续 Loop]
Success -->|否| Abort
Compress --> Continue
ModelRetry --> Successgraph LR
Error[错误发生] --> Type{错误类型}
Type -->|工具错误| ToolRetry[工具重试
最多 3 次]
Type -->|上下文溢出| Compress[上下文压缩]
Type -->|Model 错误| ModelRetry[Model 重试]
Type -->|系统错误| Abort[终止任务]
ToolRetry --> Success{成功?}
Success -->|是| Continue[继续 Loop]
Success -->|否| Abort
Compress --> Continue
ModelRetry --> Successgraph LR
Error[错误发生] --> Type{错误类型}
Type -->|工具错误| ToolRetry[工具重试<br/>最多 3 次]
Type -->|上下文溢出| Compress[上下文压缩]
Type -->|Model 错误| ModelRetry[Model 重试]
Type -->|系统错误| Abort[终止任务]
ToolRetry --> Success{成功?}
Success -->|是| Continue[继续 Loop]
Success -->|否| Abort
Compress --> Continue
ModelRetry --> Success错误类型
| 错误类型 | 原因 | 处理方式 |
|---|---|---|
| 工具执行错误 | 工具调用失败 | 重试 3 次 |
| 上下文溢出 | messages 超过窗口 | 压缩上下文 |
| Model API 错误 | Model 调用失败 | 重试 Model |
| 权限拒绝 | 用户拒绝操作 | Model 调整策略 |
| 系统错误 | 系统异常 | 终止任务 |
设计格言:
“错误不是终点, 是重试的起点” —— 出错时会重试、腾空间、换路子
Agent 生命周期的性能考量
时间消耗分析
| 阶段 | 时间消耗 | 占比 |
|---|---|---|
| 初始化 | 0.1-0.5 秒 | 1-5% |
| Agent Loop | 10-60 秒 | 90-95% |
| 完成 | 0.1-0.2 秒 | 1-2% |
| 清理 | 0.1-0.5 秒 | 1-3% |
图表
代码
graph TB
subgraph TimeDist["时间消耗分布"]
T1[初始化
1-5%]
T2[Agent Loop
90-95%]
T3[完成
1-2%]
T4[清理
1-3%]
end
T2[Agent Loop 占绝大部分]graph TB
subgraph TimeDist["时间消耗分布"]
T1[初始化
1-5%]
T2[Agent Loop
90-95%]
T3[完成
1-2%]
T4[清理
1-3%]
end
T2[Agent Loop 占绝大部分]graph TB
subgraph TimeDist["时间消耗分布"]
T1[初始化
1-5%]
T2[Agent Loop
90-95%]
T3[完成
1-2%]
T4[清理
1-3%]
end
T2[Agent Loop 占绝大部分]graph TB
subgraph TimeDist["时间消耗分布"]
T1[初始化<br/>1-5%]
T2[Agent Loop<br/>90-95%]
T3[完成<br/>1-2%]
T4[清理<br/>1-3%]
end
T2[Agent Loop 占绝大部分]性能优化点
| 优化点 | 方法 | 效果 |
|---|---|---|
| Loop 循环 | 并发工具执行 | 减少 50% 循环时间 |
| 上下文压缩 | 提前触发压缩 | 减少 Model 延迟 |
| 后台执行 | 慢操作后台执行 | 用户感知延迟降低 |
本章小结
- Agent 生命周期定义:prompt → Loop → completion → cleanup
- 初始化阶段:接收 prompt → 构建 messages → 注入 System Prompt + CLAUDE.md
- Agent Loop 阶段:observe → think → decide → act → feedback 的持续循环
- 完成阶段:end_turn → 构建结果 → 格式化 → 返回用户
- 清理阶段:保存状态 → 释放资源 → 记录日志 → 结束会话
- 状态流转:Initializing → Looping → ToolCalling → Completing → Cleanuping
- 错误处理:工具错误重试、上下文溢出压缩、Model 错误重试、系统错误终止
- 时间消耗:初始化 1-5%、Agent Loop 90-95%、完成 1-2%、清理 1-3%
- 性能优化:并发执行、提前压缩、后台执行
预告:下一篇我们深入理解"Harness 是 Agent 的操作系统"这个类比。
相关内容
- 第01章 Agent 的 70 年简史 —— 从符号推理到深度学习
- 第02章 LLM 时代的 Agent 革命 —— 2023-2026 爆发期
- 第03章 Harness 概念溯源 —— "模型是大脑,Harness是身体"
- 第04章 Harness 核心架构 —— 四层模型详解
- 第05章 Harness vs Agent vs Model —— 三者关系辨析
如果这篇文章对你有帮助,欢迎请我喝杯咖啡 ☕
支付宝
微信