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, 可视化界面, 文档结构分析, 确定性评估, 网络流量审计, 自动化测试工具, 通知系统