diff --git a/tier2/gen-worker/service/control_plane.py b/tier2/gen-worker/service/control_plane.py index 197eb4d2..8a5d26a1 100644 --- a/tier2/gen-worker/service/control_plane.py +++ b/tier2/gen-worker/service/control_plane.py @@ -238,8 +238,10 @@ def _compact_sse_event(event: dict) -> dict: """把一个 SSE 事件压成 trace 行的精简形(只留有意义字段,长文本截断;绝不抛)。""" etype = event.get("type") out: dict = {"type": etype, "reply_id": event.get("reply_id")} - # 工具调用:记工具名(看 agent 调了哪些工具、按什么顺序——卡在哪一目了然)。 - for k in ("tool_name", "name", "id"): + # 工具调用:记工具名 + call-id + 结果态(看 agent 调了哪些工具、按什么顺序、成没成——卡在哪一目了然)。 + # 2.0.2 真实字段名(源码核实 event/_event.py):TOOL_CALL_START 带 tool_call_name + tool_call_id; + # TOOL_CALL_END / TOOL_RESULT_END 带 tool_call_id(+ state=结果态)。此前误取 tool_name/name/id → 抓不到名。 + for k in ("tool_call_name", "tool_call_id", "tool_name", "name", "state"): if event.get(k): out[k] = event.get(k) # 截断可能的长文本字段(text/delta/output/content 的字符串形),只留前 200 字。