← 返回总览

♻️ 生命周期与错误处理对比

Agent 的启动→运行→停止→恢复全流程对比

一、Agent 生命周期阶段

通用 Agent 生命周期: ┌─────────┐ ┌─────────┐ ┌──────────┐ ┌──────────┐ ┌─────────┐ │ INIT │───→│ RUN │───→│ PAUSE │───→│ RESUME │───→│ STOP │ │ 初始化 │ │ 执行循环 │ │ 暂停等待 │ │ 恢复执行 │ │ 终止 │ └─────────┘ └────┬────┘ └──────────┘ └──────────┘ └─────────┘ │ ├──→ Tool Call → Execute → Result → Continue ├──→ Error → Retry / Fallback / Stop ├──→ Human Input → Wait → Process └──→ Max Steps / Token Limit → Stop 各项目实现差异: ┌──────────────┬────────┬────────┬─────────┬──────────┐ │ 项目 │ 暂停 │ 恢复 │ 检查点 │ 错误恢复 │ ├──────────────┼────────┼────────┼─────────┼──────────┤ │ Aider │ ✅交互 │ ✅ │ Git │ 重试 │ │ OpenHands │ ✅ │ ✅ │ ✅State │ 重试+降级│ │ Codex CLI │ ✅审批 │ ✅ │ ❌ │ 中止 │ │ LangGraph │ ✅HITL │ ✅ │ ✅✅✅ │ 回溯 │ │ AutoGen │ ❌ │ ❌ │ ❌ │ 继续对话 │ │ AutoGPT │ ✅ │ ✅ │ Memory │ 重新规划 │ │ Agent Zero │ ❌ │ ✅ │ 文件 │ 记忆辅助 │ │ PydanticAI │ ❌ │ ❌ │ ❌ │ 类型错误 │ └──────────────┴────────┴────────┴─────────┴──────────┘

二、错误处理策略对比

项目工具执行失败LLM 输出格式错误上下文溢出网络/Rate Limit
AiderGit revert重新请求,调整格式RepoMap 缩减重试
SWE-agent继续尝试解析失败→重新提示截断重试
OpenHands错误观察反馈重试+降级Condenser 压缩重试
Codex CLI返回错误给模型重试截断重试+backoff
GoosePermissionJudge 分类+反馈重试Auto-Compaction (80%阈值)重试
AutoGPT错误反馈+重新规划JSON 解析→重试摘要重试
LangGraph错误节点+回溯节点重试State 裁剪重试
PydanticAI模型重试Pydantic 验证→重试模型限制重试
Smolagents错误文本反馈代码执行错误→重试截断重试

三、关键模式深度分析

🏆 LangGraph: 最完整的生命周期管理

LangGraph Checkpointing 流程: 1. 每个节点执行后 → 保存 State 快照 2. 条件边决定下一步 → 也记录 3. 人工干预 (Human-in-the-loop): - interrupt_before / interrupt_after 节点 - 暂停执行,等待人工输入 - 输入后从检查点恢复 4. Time Travel: - 可以回退到任意历史检查点 - 修改 State 后从该点重新执行 - 完美支持调试和 A/B 测试 优势: 完整的可追溯性和可恢复性 代价: 存储开销 + 每步序列化开销

🔧 Aider: Git 作为状态管理

Aider 的巧妙设计——用 Git 作为 Agent 的"检查点": 1. 每次文件修改前 → 自动 git commit 2. 修改失败 → git revert 回到上一个已知好状态 3. 用户不满意 → /undo 命令直接 git checkout 4. 多文件修改 → 原子 commit,可整体回退 这是"用现有工具做正确的事"的完美示例。 不需要自定义检查点系统,Git 已经解决了版本控制问题。

🛡️ Codex CLI: Guardian 安全评估 + 审批策略

Codex CLI 的安全系统是多层设计: 1. Guardian 风险评估层: - GuardianAssessmentEvent 评估每次操作风险等级 - GuardianRiskLevel (Low/Medium/High/Critical) - GuardianUserAuthorization 记录用户授权 2. 审批策略: on-request → 用户主动请求审批 (交互式) on-failure → 仅失败时审批 (半自动) never → 完全自动 (仅限信任环境) 3. Sandbox 隔离: - Linux: Landlock (文件) + Seccomp (syscall) + Network NS - Windows: Unified Exec Backend 这是 Agent 安全性的最佳实践: 不是"要不要审批",而是"审批粒度如何配置"。
🎯 构建自己 Agent 的生命周期建议: