Files
Genarrative/apps
lhk229 caf021e556 tool-plan 审计记下上游终态标记,预算切断不再无声
tool-plan 这条链路此前把 finish_reason 整个丢掉了:provider_tool_plan.rs
全文没有一处引用它。platform-llm 只在**存在工具调用**且上游明确给出未完成
终态时才拒收(reject_incomplete_tool_calls),其余情形按「可用的降级结果」
放行;而这一层既不看也不记,审计里没有任何东西能把「上游说这一轮没写完」
和「模型自己写歪了」分开。

信封退化的排查就卡在这个盲点上:我一度据此判定上游根本不发 status,实际
response-streams 里的 final-reply 记录明明写着 "completed"——只是 tool-plan
那一发的标记从来没落过盘,而策划子 Agent 的信封恰恰产在 tool-plan 那一发
(stream=false 时 plan.response 直接充当 final reply,不再发 final-reply 请求)。

只记录,不改判。是否因未完成终态拒收仍旧由 platform-llm 决定,做游戏与
做素材逐字保持既有行为。

字段按固定字符集夹紧后落库:兼容网关会在这里发自定义值甚至整段文案,审计
不是转发通道,越界字符丢弃、长度夹到 32、夹空记 null。agent_db 侧同步进
PROTOCOL_FIELDS 白名单并复核夹紧结果——那张白名单是精确长度匹配,写入侧
加字段而不同步读取侧会直接把审计写失败。

tool_plan 过滤器 93/93。

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-24 04:30:50 +00:00
..