跳转到主要内容
Agent Loop 是一次完整的 Agent 运行:消息接收 → 上下文组装 → 模型推理 → 工具执行 → 流式响应 → 状态持久化。它是将一条用户消息转化为行动和最终回复的核心路径。 在 Zeus 中,每次 Loop 是一个按 Session 序列化的运行,在模型推理、工具调用和流式输出的过程中发射生命周期事件和流事件。

Entry Points

入口路由说明
Web 前端POST /api/agent/invokeNext.js API Route,代理到 Python 后端
Python APIPOST /api/agent/invokeFastAPI 路由,直接调用 AgentService
Resume (HITL)POST /api/agent/resume用户审批后恢复执行

How It Works (High-level)

  1. 请求接收 — Next.js API 验证身份、检查信用额度、加载 LLM 和工具配置,异步保存用户消息,转发到 Python 后端
  2. 上下文组装_init_context() 按序加载工具(MCP + OAuth + Built-in)、初始化 LLM、检索 Memory/Profile、激活 Skills、构建 System Prompt,缓存至 context_cache
  3. Agent 创建 — 通过 DeepAgents 创建 LangGraph 图,装配 LLM、工具、中间件管线、Checkpointer 和 HITL 中断配置
  4. 消息构建 — 前端 chat_history 转换为 LangChain 消息类型(最多 30 条),追加当前用户消息
  5. 流式执行 — 进入 _astream_events() 核心循环,框架事件转换为 SSE 消息流式发送
  6. 完成 — 发送 CompleteMessage,Checkpointer 自动保存状态

Context Assembly

上下文组装完成后缓存至 _context_cache[session_id],供 HITL resume() 复用。

Event Streaming

_astream_events() 监听 DeepAgents 框架的内部事件,转换为标准 SSE 消息发送到前端:

SSE 事件类型

SSE 事件触发时机关键字段
textLLM 每输出一个 tokencontent, role
tool_callLLM 决定调用工具tool_name, parameters, requires_approval
tool_call_result工具执行完成tool_name, result, is_error
completeAgent 执行结束content, summary
error发生异常error, error_code, details
token_usageLLM 调用结束后prompt_tokens, completion_tokens

Messages

了解完整的消息流程、状态管理和持久化

Tool Execution

执行决策

审批决策基于 Auto-Run 模式(Run Everything / Use Allowlist / Ask Everytime)。Tool Call ID 通过 FIFO 队列匹配,按工具名分组存储,on_chat_model_end 时入队,on_tool_end 时出队。

HITL 中断与恢复

当工具需要审批时,Agent Loop 被挂起,状态通过 Checkpointer 持久化。恢复流程: 被拒绝的工具会附加 SystemMessage,明确告知 Agent 不要重试。

HITL 详解

Auto-Run 模式、审批 UI、中断恢复机制的完整说明

Frontend Processing

前端 handleStreamMessage() 消费 SSE 流,将事件路由到对应的状态管理:

Event Persistence

RealtimeEventSaver 批量持久化实时事件:
配置
批量大小3 个事件
批量间隔100ms
重试策略指数退避,最多 3 次
降级方案LocalStorage 备份

Error Handling

后端错误

错误类型检测条件用户提示
输入长度超限Range of input length / InvalidParameter建议缩短输入
上下文窗口溢出context length / token limit建议开启新会话
通用异常其他所有 Exception包含 traceback 详情
错误通过 ErrorMessage SSE 事件发送,包含 error_codedetails

前端错误

HTTP 状态码含义处理
401未授权重定向到登录
403信用额度不足Toast 提示
503后端未启动连接错误提示
504请求超时超时提示
流错误(AbortError、网络断开、解析错误)均有对应的异常处理和用户提示。

Timeouts

超时项默认值说明
Agent 最大执行时长7200s (2h)FastAPI 单次调用上限
MCP 服务器1800s (30min)每个 MCP 服务器的连接超时
HITL 工具审批可配置每个工具独立设置
LangGraph 递归限制999Agent 循环的最大迭代次数

Concurrency & Isolation

  • 每个 Session 拥有独立的 Checkpointer 状态(thread_id 隔离)
  • Context Cache 按 session_id 隔离,resume 只能恢复对应会话
  • 工具执行是序列化的(LangGraph 保证同一 Session 内不会并发执行工具)
  • 用户工作空间按 user_id 完全隔离

Where Things Can End Early

  • Agent 超时 — 超过 7200s 最大执行时长
  • HITL 审批超时 — 用户未在规定时间内响应
  • 前端断开 — 网络中断或用户关闭页面
  • 信用额度耗尽 — 调用前检查失败
  • 模型错误 — 上下文窗口溢出或 API 异常