feat(v2): T-M3 采纳 llmrouter pinch 三档裁剪——Architect 渲染超预算按相关性分档保留
- Workspace.render_for_architect:超 1200 token 时对 archive 行按与 query+goal 的字符 2-gram Dice 相似度分档——sim<0.25 先丢、sim<0.55 截断为 40% 摘要、 仍超限从低到高继续丢;保留行维持原插入序(前缀稳定),最近 4 行下限不变 (相比旧'从最旧整段丢',高相关事实在预算内留存更久) - 顺带消除两项旧债:压缩态与首次渲染共用同一 parts 结构(格式漂移)、 裁剪循环不再每轮 deepcopy 全文档 - 修复本轮引入的缺陷:会话轮次 tool_calls 为 int 计数时清单提取迭代崩溃 (test_session_multi_turn 抓出,已加类型防御) - 新增 tests/test_pinch_trim.py 4 项;全量 244 passed ×2(基线 230)
This commit is contained in:
+1
-1
@@ -461,7 +461,7 @@ class AgentService:
|
||||
files = sorted({
|
||||
str((a.get("arguments") or {}).get("path") or "").strip()
|
||||
for t in session.data.get("turns", [])
|
||||
for a in (t.get("tool_calls") or [])
|
||||
for a in (t.get("tool_calls") if isinstance(t.get("tool_calls"), list) else [])
|
||||
if isinstance(a, dict)
|
||||
and str(a.get("name") or "") in _FILE_TOOLS
|
||||
and (a.get("arguments") or {}).get("path")
|
||||
|
||||
Reference in New Issue
Block a user