文档
模型请求长时间没有进展
根据 Agent 阶段日志区分输入装配、等待模型流和处理输出
工具显示执行中时,先检查 Agent 日志中的阶段记录。工具参数由模型流式生成,生成参数和实际执行工具是两个阶段。
定位停滞阶段
Session 执行器记录以下边界:
| 日志 | 含义 |
|---|---|
[agent] step.input_start | 开始提交待处理输入并装配当前步骤 |
[agent] step.input_ready | 输入装配完成,包含模型 ID、上下文窗口和消息、工具数量 |
[agent] model_request.request_start | 开始一次模型调用 |
[agent] model_request.stream_open | 模型客户端返回事件流 |
[agent] model_request.first_event | 消费到第一个模型事件;可能只是 model_start,不代表已经生成正文 |
[agent] model_request.waiting | 调用尚未结束时,每 30 秒记录当前阶段和最近事件 |
[agent] model_request.stream_end | 模型流已关闭且协议校验通过;本步骤的工具仍可能正在执行 |
[agent] model_request.request_failed | 模型调用或事件处理失败,具体原因结合失败日志查看 |
[agent] step.finish | 当前模型步骤及其工具执行完成 |
用 session_id 和 turn_id 定位执行轮次,再用 invocation_id 区分每次模型调用;attempt 表示同一步骤中的尝试次数。
waiting 中的 stage 表示当前等待的操作:opening 为等待模型客户端返回流,reading 为等待下一个流事件,accepting 为处理事件及输出回调。last_event_type、last_event_at 和 event_count 可帮助判断是否持续收到事件。日志不包含消息正文或工具参数。
只有 input_start 而没有 input_ready 时,优先检查输入提交和上下文装配;已经 stream_end 却没有 step.finish 时,继续检查工具执行和步骤收尾。
核查上下文窗口
查看 input_ready 或模型请求日志的 context_window。null 表示这次执行没有有效窗口值,无法据此计算上下文压力。此时应检查模型定义及其目录元数据的传递,不要根据模型名称猜测窗口大小。
窗口有效时,当前压力阈值为 95%。上下文较长但没有压缩记录,并不单独证明压缩异常。这些日志用于诊断,不会自动设置请求超时、重试已产生部分输出的请求,或恢复正在运行的会话。
更新运行时代码并重新构建、启动宿主后,新的模型调用才会产生这些记录;已有停滞请求不会补写历史阶段。