Tool Compression
OpenSquilla 的 agents 会使用工具。工具调用可能产生大量输出:命令日志、 JSON、网页、搜索结果、diffs、文件内容、表格以及 artifacts。 Tool compression 在不让这些输出占满整个模型上下文的前提下,仍保持其有用。
这是一项面向用户的上下文管理功能。它不会改变工具实际返回的内容; 只会改变向模型展示多少结果以便进行下一步操作。
为什么重要
Tool compression 在以下情形中提供帮助:
- 命令打印大量日志;
- 网页或搜索结果对于有用的 prompt 来说太长;
- 文件读取返回的文本超出下一步所需;
- 长 session 接近上下文预算;
- 你希望保留原始结果,同时让模型只看到紧凑的预览。
如果没有 compression,一个大型工具结果就可能挤掉用户的目标、 近期对话以及下一步操作。
用户可能会看到的内容
在长 turn 或工具密集的 turn 中,模型可见的结果可能包含:
- 紧凑的预览;
- 表明结果已被缩短的说明;
- 指向带外存储结果的
tool_result_handle; - 在启用诊断时,估算的 token 节省诊断信息。
这是预期行为。它意味着 OpenSquilla 正在保护当前的上下文窗口。
产品层级模型
OpenSquilla 将两种视图分开:
| 视图 | 用途 |
|---|---|
| 运行时视图 | OpenSquilla 可以保留、检查或导出的持久化结果。 |
| Provider 视图 | 发送回模型以进行下一步推理的有界文本。 |
agent 可以基于关键事实继续推进,同时大型原始材料仍可在配置允许时通过 文件、session 导出、诊断或工具结果 handles 获取。
Compression 模式
OpenSquilla 根据配置和工具输出形态支持几种 compression 风格。
| 模式 | 最适用于 | 取舍 |
|---|---|---|
truncate | 快速、确定的预览。 | 可能省略中间有用的部分。 |
summarize | 受益于语义摘要的较慢/后台 workflows。 | 增加一次模型调用,应当作为可选项启用。 |
| 结构化投影 | 日志、diffs、JSON、表格以及已知的工具输出形态。 | 取决于针对该输出类型的 reducer 覆盖情况。 |
大多数用户应保留默认行为,仅当 workflow 仍然过大时再使用诊断。
如何处理大型输出
请求聚焦的后续读取:
Look at the failing test names and the last 80 lines of the log.
优先使用 handles、路径与摘要:
Use the compacted result to identify likely causes, then read the exact file
sections you need.
除非确切文本就是交付物,否则不要让 agent 粘贴一个巨大结果的每一行:
Paste the entire 50,000-line log into chat.
检查与调试
当你需要了解上下文增长时,开启诊断:
opensquilla diagnostics on
当你需要在聊天界面之外检查持久化历史时,导出 session:
opensquilla sessions export <session-key>
在一次工具密集的大型运行之后,查看成本与用量:
opensquilla cost
最佳实践
- 保持工具请求具体明确。
- 请求能回答问题的最小文件范围、日志尾部或 JSON 字段。
- 对于大型交付物,使用 artifacts,而不是把所有内容都塞入聊天。
- 使用 session 导出进行审计和调试。
- 将 tool compression 视为连续性功能,而不是存储重要文件的替代品。