Balanov/verdict
AI 工程一个 197 KB 的本地语义分类器,读取 CLI 工具调用的命令与输出,判断结果是成功、失败、受阻还是未知。
项目介绍
Verdict 针对的是 Agent 与 CI 自动化里的一个常见盲区:退出码为 0 并不等于任务真的完成了。测试命令可能收集到 0 个用例就返回 0;非零退出也可能只是依赖缺失或环境受阻,而不是断言失败。Verdict 读取命令、退出码、stdout 和 stderr,输出 success、failure、blocked、unknown 四类标签 项目说明。
它定位为面向编码 Agent、CI 运行器和其他工具调用系统的语义结果层。模型把命令和输出映射为哈希后的字符与词 n-gram 特征,再交给多分类逻辑回归,权重约 19.6 万个 int8 参数。推理使用纯 Python 标准库,在 CPU 上本地运行,不需要分词文件、GPU、网络请求或遥测 模型细节。
快速使用
准备条件:已安装 Python,并能在本地克隆仓库。推理阶段不需要额外 Python 依赖。
git clone https://github.com/Balanov/verdict.git
cd verdict
python -m pip install .
安装后通过 Python API 传入命令、退出码和捕获的输出 安装与 Python 示例:
from verdict_tiny import Verdict
model = Verdict()
result = model.predict(
command="pytest tests/",
exit_code=0,
stdout="collected 0 items\nno tests ran in 0.01s",
)
print(result)
以上示例输入在 README 中返回高置信度的 unknown,因为输出表明没有测试运行,而不是一次成功的测试 示例输出。
同一模型也提供 CLI。把 stdout 通过管道传入,并用参数指定命令和退出码 CLI 用法:
printf 'collected 0 items\nno tests ran\n' | verdict \
--command 'pytest tests/' --exit-code 0
需要读取文件或替换权重时,可使用 --stdout output.log、--stderr error.log 和 --weights /path/to/verdict-q8.bin。发布权重也托管在 Hugging Face;浏览器演示在本地运行同一份量化权重 浏览器演示。
输出含义与限制
输出契约区分操作已完成、明确失败、环境受阻和证据不足四种情况。概率来自线性模型,并不是安全意义上的校准置信度;对后果重要的操作应结合阈值和确定性检查或人工复核 输出契约。Verdict 只分类观察到的 CLI 证据,不判断任务是否完成、代码是否正确、是否安全或是否真实。
在公开基准上,Verdict 0.1(int8)在 192 个合成样本上取得 93.2% 准确率和 93.2% macro-F1,这些样本来自未参与训练的 48 个 CLI 家族;退出码基线的准确率为 47.9%。在 Windows 11 / AMD64 / Python 3.12 上对 576 次预测测得中位推理耗时 0.54 ms,包含特征提取和 Python API 调用 基准结果。语料是合成的且偏英文,因此这些数字衡量的是对留出模板的泛化,而不是生产 Agent 轨迹上的可靠性;真实轨迹验证被列为后续里程碑。
复现与许可证
要从零重新训练并评估,安装训练依赖、运行训练脚本并执行测试 复现步骤:
python -m pip install -e '.[train,dev]'
python training/train.py
pytest -q
代码和模型权重使用 Apache-2.0,合成数据集使用 CC0-1.0 许可证。仓库把推理代码、训练代码、基准结果、合成数据和发布权重分开存放,模型行为可以检查和重建。
HotRepo 点评
Verdict 在 HotRepo 新项目榜的首条记录中,于 2026-11-02 19:14 UTC 至 2026-11-03 02:45 UTC 期间净增 136 个 Star。这属于早期关注,还不足以构成稳定趋势,也没有记录到 GitHub 全部语言日榜名次。这个项目值得注意的地方在于它直指「退出码 0 即成功」的默认假设,并用一个极小、无依赖的本地分类器来补充证据。相比 93.2% 的准确率,更应留意其基准建立在合成且偏英文的语料上,目前更适合看作一个等待真实轨迹验证的辅助层。
本文由 AI 根据项目 README 生成,更新于 ,以项目官方文档为准。