darksolitaire9-hub/bineval
GitHub: darksolitaire9-hub/bineval
一个 Rust 原生的确定性布尔评估 CLI 工具,用严格的通过/失败策略替代模糊打分,服务于 AI 安全测试与自动化 agent 自我校验。
Stars: 0 | Forks: 0
# bineval
`bineval` 是一个独立的 CLI 工具,它用严格且仅基于布尔值的安全策略取代了临时的测试脚本。它会针对你的系统提出是/否(yes/no)的问题,如果有任何检查失败,便会停止执行。
**为什么使用 bineval?**
- **天生的 Golden Testing:** 核心引擎充当确定性的快照/Golden 测试驱动程序。它不对你的业务领域做任何假设,将所有输入视为结构化工件,并根据严格的布尔期望进行匹配。
- **可解释性强:** `bineval` 不会给出模糊的“85% 安全”分数,而是直接准确地指出失败的具体策略、文件或 LLM 响应。
- **负空间编程:** 失败、超时和缺失的配置都会被显式捕获。未知状态绝不会默默通过。
- **Agent 优先:** 旨在通过结构化的 JSON 输出和可靠的退出代码,供 IDE agent 和 MCP 工具调用。
- **零门槛部署:** 通过 GitHub Releases 作为单一二进制文件分发——无需复杂的 Python 依赖项或 crates.io 库管理。
## 快速开始
由于 `bineval` 是一个独立的二进制文件,因此你不需要通过 `cargo install` 来安装。只需从 Releases 页面下载即可。
**安装:**
```
# 1. 下载最新 release
wget https://github.com/darksolitaire9-hub/bineval/releases/latest/download/bineval-linux-amd64 -O bineval
# 2. 使其可执行
chmod +x bineval
# 3. (可选)移动到 PATH
sudo mv bineval /usr/local/bin/
```
**运行你的第一次审计:**
审计会扫描你的本地仓库,以验证组件是否符合严格的元数据准则。
```
bineval audit
```
**评估 LLM endpoint:**
```
bineval run --suite safety_jailbreak_core --path .
```
## 核心概念(测试驱动模型)
这些概念被核心测试驱动程序视为完全中立的。
- **Primitive**:被评估的通用单元。它可能包含中立的字段,如 `implementation_status` 或 `requires_metadata`。
- **Policy**:纯 Rust 布尔函数(`src/core/policy.rs`),代表二元评估(例如 `no_jailbreak`、`is_fully_implemented`)。它们以通用的方式检查 primitive 或 suite。
- **Suite**:YAML/JSON 配置文件(位于 `suites/` 目录中),用于将多个 policy 组合在一起,应用于数据集或目标。你不需要假设 suite 的“含义”;你只需加载它并应用其中的策略。
### 项目布局
- `src/core/policy.rs`:在此处添加新的二元检查。所有 policy 必须完全与领域无关。
- `suites/`:将你的 YAML suite 配置放在此处。
## 失败语义与退出代码
`bineval` 是严格的。它不容忍任何部分状态。
| 退出代码 | 含义 | 操作 |
| --- | --- | --- |
| `0` | **成功** | 所有策略均已通过。没有执行或传输错误。 |
| `1` | **策略失败** | 一个或多个评估返回了 `false`(例如,检测到越狱)。 |
| `2` | **执行错误** | 目标 endpoint 超时、返回 500 错误,或输入格式错误。 |
| `3` | **配置/审计错误** | `AUDIT: PARTIAL`。无法读取文件,或 AST 解析器执行失败。 |
### CI/CD 集成
如果你想保护你的 `main` 分支免受危险代码或性能下降的模型影响,请在 GitHub Actions 中运行 `bineval validate` 和 `bineval audit`。
```
jobs:
safety-check:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Download bineval
run: |
wget https://github.com/darksolitaire9-hub/bineval/releases/latest/download/bineval-linux-amd64 -O bineval
chmod +x bineval
- name: Validate Configurations
run: ./bineval validate
- name: Run Safety Audit
run: ./bineval audit
```
*如果 bineval 返回非零退出代码,你的 CI pipeline 理所当然会失败。*
## Agent / MCP 集成
`bineval` 旨在被 MCP (Model Context Protocol) 服务器封装,从而为 LLM agent 提供一种确定性的方式,以验证它们自己的输出或架构变更。
**Agent 应如何使用 bineval:**
1. 调用 `bineval` 工具。
2. 读取控制台输出。
3. 如果退出代码 `>0`,agent **绝不能**强制视为成功。它必须读取失败的断言,并重写代码或重试 prompt,直到 `bineval` 以 `0` 退出。
### FastMCP Python 示例
以下是一个完整的 MCP 工具示例,它为自主 agent 封装了 `bineval`:
```
from mcp.server.fastmcp import FastMCP
import subprocess
import json
mcp = FastMCP("Bineval-Safety")
@mcp.tool()
def bineval_run_suite(suite_name: str, path: str = ".") -> str:
"""Runs a specific evaluation suite. Use this to verify safety before shipping."""
try:
res = subprocess.run(
["bineval", "run", "--suite", suite_name, "--path", path],
capture_output=True, text=True, check=True
)
return res.stdout
except subprocess.CalledProcessError as e:
# Exit codes >0 raise this exception. We return the JSON anyway so the agent can read the failures.
output = e.stdout or str(e)
return f"EVALUATION FAILED (Code {e.returncode}):\n{output}\n\nPlease analyze the failed assertions and fix the target."
```
## 状态与局限性
- **非库形式**:本项目**不会**发布到 `crates.io`。它严格以编译后的二进制文件形式分发。
## 起源与出处
此内核深入实现并扩展了以下研究的原理。我们不仅将这些二元评估应用于模型输出,还应用于实际的系统底层架构和元数据提升逻辑。
```
"provenance": [
{
"type": "paper",
"title": "Ask, Don't Judge: Binary Questions for Interpretable LLM Evaluation and Self-Improvement",
"authors": ["Aman Madaan", "Niklas Muennighoff", "Rishi Bommasani", "et al."],
"venue": "arXiv",
"year": 2026,
"doi_or_url": "https://arxiv.org/abs/2606.27226"
}
]
```
标签:AI安全, Chat Copilot, Homebrew安装, LLM测试, LNA, Rust, 可视化界面, 文档结构分析, 确定性评估, 网络流量审计, 自动化测试工具, 通知系统