Skip to content

v7

Choose a tag to compare

@NeonMedusa NeonMedusa released this 27 Sep 22:42
· 15 commits to main since this release
feat(tools): grep 长行截断提示、系统提示词修正、工具问题日志改为"只留未解决"

grep 长行截断(AI 视角:grep 定位、read 阅读):
- max_line_len 500 → 120:够判断"这行是不是我要找的",需要完整行时用 read
- 截断行附提示 `… [truncated at N chars; use read to see it in full]`
  (N 动态显示;不写 limit——读几行由调用方判断;行号保留便于 read 定位)
- 不加 full / max_line_len 参数:基于 331 次真实 grep 调用统计,
  "语义等价但更繁琐"的参数使用率极低(literal 仅 0.6%),
  且截断 → read 的替代路径畅通

系统提示词(main.zig):
- 删除过时条目:old_string / replace_all 已不存在于新 schema(硬错误,
  会误导模型写错参数名)
- 新增工具选择引导:grep 搜内容 / find 找文件 / ls 列目录
- 原则:提示词只讲"有什么、怎么用",截断/诊断/续读等行为让 AI 在使用中发现

grep 工具描述:删除过时的输出格式说明("path:line: text" → 现已是文件分组格式)

docs/tool-issues.md(AI 维护的问题日志):
- 新增"生命周期"规则:只保留未解决条目,修复/否决后直接删除,
  结论写进 commit message(git log --grep 可搜,不占上下文)
- 理由:该文件会被 AI 完整读入上下文,体积必须可控;历史条目价值随时间
  衰减,而 git 历史是无限的
- 清理:删除"已解决"区(4 条)与状态字段;保留 2 条未解决
- 新增"记之前先核实"规则(下结论前穷举所有路径——曾因只看一条就断言
  "工具参数不落库",实际经 tool_calls 列完整落库)

README(作者本人):补充原生程序卖点(约 4MB / 内存 30MB 内 / 启动无感)、
平台支持现状、欢迎 AI 代码的 PR。

测试 185/185(新增"grep 长行截断 + 提示"用例;修正受阈值影响的旧用例)。
实测:短行/300字符/130字符/恰好120/121/多文件混合,6 项均符合预期;
read offset=N 取回完整行的链路已验证。