session_search 模式 A/B 测试
这是一种实时的工具使用效果 A/B 对比测试,用于评估对 session_search 工具架构(描述/参数配置、响应提示等)的改动是否会影响模型实际使用该工具的能力。该测试是为 PR #95570 设计的——在此次优化中,每个调用对应的架构描述长度从 1,570 个标记缩减至 695 个标记——其核心问题是:“将指导性文本从架构描述中移出并放入响应提示中,是否会令模型产生困惑?”
与 readtool/browser 测试不同,此项测试不会启动完整的 AIAgent —— 而是运行一个极简化的智能体循环,其中两个测试组之间唯一的差异在于从两个 Git 分支中提取的 tools/session_search_tool.py 文件。其他所有参数(初始化数据库、任务内容、预言机、系统提示词、温度值等)均保持不变。
测试内容
在包含确定性初始化数据的会话数据库(以及另一个“工作”模式数据库)上执行六项任务,每项任务都配有程序化的预言机进行评分,而非由大型语言模型自行判断:
| 任务名称 | 测试的输入结构 | 预言机配置 |
|---|---|---|
t1_discover | 发现类任务 | 回答内容必须包含 pglogical 字符串 |
t2_scroll | 强制向前进页——相关事实被放置在 ±5 页面范围及书籍开头结尾之外的位置 | 设置 statement_timeout 为 45 秒 |
t3_broaden | AND 查询无法得到结果,需通过增加条件(使用 OR 运算或减少查询词条)来扩大搜索范围;两个查询主题在单条消息中绝不能同时出现 | 使用端口 3000 |
t4_link | 以原文形式生成 @session: 链接 | 需输出链接,且不能使用反引号或 Markdown 格式 |
t5_profile | 解析 @session:work/<id> 格式的个人资料链接(读取类任务) | 使用 vault 服务,超时时间为 90 秒 |
t6_browse | 浏览类任务 | 需列出至少 3 个近期会话中的主题 |
| 每次运行时的指标包括:Oracle查询通过率、工具调用次数、格式错误或失败的调用次数、首次调用时的提示词token数(用于评估模式结构本身)、总token数以及耗时。 |
运行方式
请完整翻译输入内容,不得提前终止运行。
# Arms are git refs; the runner extracts tools/session_search_tool.py
# from each and imports them side by side.
python3 evals/session_search_schema/runner.py \
--base origin/main --cand HEAD \
--model qwen/qwen3-coder-30b-a3b-instruct --reps 3
python3 evals/session_search_schema/report.py results/<model>.jsonl
需要在 ~/.hermes/.env(或环境变量)中配置 OPENROUTER_API_KEY。每次调用时,系统都会在临时目录中重新构建初始数据库;因此您的真实 state.db 文件不会受到任何影响。
Hermesbench 的评估规则:
- 最少进行 3 次重复测试;若单元差异仅为 1,则视为噪声,应在判定错误之前先提取转录内容(JSONL 格式中的
calls和final部分)。 - 若为提供商导致的异常(即工具调用次数为零且最终结果为空),则允许重试一次,且该规则对两组测试均适用;所有重试记录都会被保存。
- 需为两组测试分别报告每项任务的得分,并使用相同的分母。绝不能仅排除其中一组测试的运行结果。
- 性能较弱的模型才是反映真实能力的信号,而性能顶尖的模型则可能掩盖架构上的不足。
参考结果(PR #95570,2026年8月26日)
共进行了 108 次测试,涉及 3 种模型、6 项任务、3 次重复测试及 2 组对比组
(基准模型 2b8b4542e 为优化前的主模型,候选模型 d8a78a4dc 为优化后的模型):
| 模型 | 基准模型 | 优化后模型 | 每项任务的平均token数 |
|---|---|---|---|
| qwen3-coder-30b | 16/18 | 18/18 | 11.1k → 7.1k |
| gpt-5.6-luna | 18/18 | 17/18 | 5.4k → 3.7k |
| gpt-5.6-terra | 15/18 | 17/18 | 8.0k → 5.0k |
| 总计 | 49/54 | 52/54 | 7.0k → 5.3k |
分析结果:优化后的模型在准确率上保持稳定甚至有所提升;“滚动提示”功能显著提升了分页任务的性能;在优化后的模型组中仅有 1 次出现 1/9 比例的 Luna 格式链接识别错误;两组测试均出现了先前存在的 around_message_id=0 错误伪信号问题(问题编号 #94792 / PR #79118)。