mcpField
W
Whetstone

Whetstone

远程服务
whetstone.cyberelf.linkAI 与智能体012 周前更新

关于 Whetstone

Whetstone 是面向 AI 系统评估与改进的验证器驱动研究框架和晋级门控工具,适用于研究人员及系统开发者。它结合隐藏考试、泄漏控制、精确评分证据与签名的 PASS/HOLD/BLOCK 回执。

主要功能

  1. 01基于验证器的评分与晋级门控
  2. 02动态考试库与泄漏隔离
  3. 03CLI、适配器与可插拔验证器
  4. 04含可检查证据的签名回执
  5. 05用于评估和分析的无状态工具

适用场景

  1. 01决定是否晋级模型或 Agent 版本
  2. 02评分前检测评估数据泄漏
  3. 03比较候选系统与基线系统
  4. 04用签名回执审计评分结果

MCP 相关

公共 HTTP MCP 端点向 MCP 客户端提供 Whetstone 工具,支持无会话及基于初始化的协议版本。

配置

远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。

服务地址https://whetstone.cyberelf.link/mcp
一键复制安装命令
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。

工具

14
参数类型必填说明
examarray是考试行。每行需要包含 item_id(或 id)以及 prompt/content/input/task/question/expression 中的一个字段。
policyobject否明确的晋级策略。省略的字段使用文档中说明的默认值。
policy.min_gainsinteger否
policy.max_regressionsinteger否
policy.confidence_alphanumber否
policy.require_retained_probeboolean否
domainsobject否可选的 item_id -> 领域标签映射。
baselineobject是基线系统的 item_id -> 布尔型通过/失败结果。
exposurearray否已声明的暴露数据行,包含身份/内容字段以及可选的来源或路径。
candidateobject是候选系统的 item_id -> 布尔型通过/失败结果。
baseline_namestring否
candidate_namestring否
retained_probeobject否与成对队列一同检查的可选保留能力结果。
retained_probe.itemsinteger是
retained_probe.base_verifiedinteger是
retained_probe.candidate_verifiedinteger是
fingerprint_max_ninteger否
similarity_thresholdnumber否
enable_text_similarityboolean否
enable_behavioral_fingerprintboolean否

详细介绍

whetstone

两位学习者相互磨砺:一位学生必须凭本事赢得每次晋级,一位考官必须凭本事赢得评判资格——每个标签都锚定于一个实际上不可能出错的预言机。

whetstone 是一套自我改进的研究框架,围绕一条规则构建:*没有经过某种精确方法的检验并幸存,就不予采信。*由验证器把关的学生(本地 4B 模型上的 QLoRA 适配器)使用从根预言机——穷举图枚举、模拟退火反例搜索、精确游戏模拟器、蒙特卡洛共识、Stockfish、KataGo——提炼出的经验进行训练;其成绩则由不断演进的考试题库评定。题库会隔离学生训练过的内容,学习哪些题目具有区分度,淘汰已饱和的题目,并把退役考题重新作为训练燃料。

部分成果(包含方法、无效结果和凭据的完整记录见 FINDINGS.md;制品见 results/):

  • 解决了一项尚未解决的有限猜想:按度数降序的贪心着色在连通、无三角形、非二部图上并非最优(最小反例:11 个顶点、13 条边——通过模拟退火找到,经最小化,并经过精确验证)。
  • 量化了验证器视野回归:在 n<=6 时精确率为 1.0 的猜想中,有 99/121 在 n=7/8 时为假;验收视野必须严格小于压力测试视野,否则自训练循环会在伪象上训练。
  • 衡量了显著性与相关性:最显著的记忆只有 4% 的时间在反事实意义上有用;而按查询条件计算的相关性得分为 81%。
  • 完成了一轮全自动持续学习:从冷启动 0/8 到单轮把关后的 8/8;多领域生成过程攻克了其考官发现的跨领域前沿(基础模型 1/33 -> 第 2 代 4/33,首次通过 MIS)。
  • 在本地完成了同一题库上的规模对比:原版 Qwen2.5 从 1.5B 增至 32B,得分从 8/48 升至 20/48;但所有原版模型在图修复任务上均得 0/24。经任务路由、验证器训练的 FastContext-4B 得分为 28/48,相较其 22/48 的基础模型成绩获得 PASS(提升 6 项、退步 0 项,精确 p=.03125),连续三次复测结果完全一致。
  • 训练了首个轨迹不相交的第 4 代引擎学生,使用 1,313 个全新的 Stockfish/KataGo 示例。三次全新加载的成绩从 7/69 提升到 8/69,但题目级把关正确地阻止了晋级:提升 3 项、退步 2 项、精确 p=1.0,其中包括一项历史上稳定的退步。不宣称晋级。
  • 私有晋级考试题库有意不纳入此仓库:公开它会让未来的模型用它训练——这就是互联网规模下的泄漏规则。

采用 AGPL-3.0 许可。作者提供商业授权。

使用 pip install . 安装依赖精简的核心(CLI 和无状态工具箱)。可选集成分为 agents、engines 和 local-models;pip install ".[all]" 可安装所有集成。

公共 HTTP MCP 端点同时提供无会话的 2026-07-28 协议(server/discover 加上逐请求元数据和标头),以及基于初始化的 2025-06-18、2025-03-26 和 2024-11-05 版本。stdlib 服务无需依赖;只有 SDK 客户端和 stdio 适配器需要 mcp>=2,<3。

带标签的版本包含通过归档构建的 wheel、源码归档、SPDX 2.3 SBOM 和 SHA256SUMS;GitHub Actions 会为每个发布制品附加构建来源证明。对于 v0.8.0,请使用以下命令根据仓库验证 wheel:

gh release download v0.8.0 -R CarlSR9001/whetstone -p "*.whl" -p "*.spdx.json" -p "SHA256SUMS"
gh attestation verify .\branching_continual_verification-0.8.0-py3-none-any.whl -R CarlSR9001/whetstone

产品层

上面的研究工具链可作为产品运行:一个 CLI、适配任何受测系统的适配器、可插拔的验证器、CI 契约,以及面向 Agent 的界面。完整指南见 docs/product.md。

$env:PYTHONPATH='src'
python -m bcv.cli init                                   # bank + whetstone.toml
python -m bcv.cli mint --domain code --max-items 8       # hidden-check exam items
python -m bcv.cli grade --system v2 --command "python my_agent.py"
python -m bcv.cli grade --system v2 --acp "my-acp-agent" # any Agent Client Protocol agent
python -m bcv.cli gate --baseline v1 --candidate v2      # exit code IS the verdict: 0 PASS, 2 HOLD, 3 BLOCK
python -m bcv.cli sweep                                  # retire saturated items downward
python -m bcv.cli redteam                                # hostile self-test; nonzero exit on escape
python -m bcv.cli serve --port 8977                      # localhost JSON service
python -m bcv.cli mcp                                    # MCP server (also in .mcp.json)
python -m bcv.cli inspect --exam exam.jsonl --exposure exposure.jsonl --baseline v1.json --candidate v2.json
python -m bcv.cli hosted-report-card --command "python my_agent.py" --out report-card.json
python -m bcv.cli open-bench-run --baseline-command "python v1.py" --candidate-command "python v2.py"
python -m bcv.cli verify-receipt --receipt report-card.json
python -m bcv.cli toolbox --port 8988                    # eight stateless tools on localhost

对外部端点进行评分,会通过题库的曝光核算机制永久消耗所有已曝光题目;晋级报告附带配对证据、精确的 McNemar p 值、题库自身的解析声明,以及题库状态的 SHA-256 承诺。任何界面,无论面向人还是 Agent,都不会提供考试题目内容。

无状态工具箱将仓库中已有的八种机制转化为可用的“文件输入/回执输出”界面:Whetstone Inspector、Eval Leak Auditor、Promotion Gate、Bank Health、SafePatch、Counterexample Hunter、Memory Relevance Debugger 和 Agent Replay Console。每次运行都会展示决策路径、可检查的可视化证书、SHA-256 回执,以及针对任务的可下载产物。泄漏分析将精确身份匹配、有限语料上的行为等价性和文本相似度审查作为独立的证据层级;只有前两者会自动隔离。位于 whetstone.cyberelf.link 的公开实例仅接受调用方提供的一次性数据;它没有考官题库、账户、Cookie 或上传持久化功能。私有考试应在 CLI 或客户控制的实例中进行。

同一公开服务现已包含 Open Promotion Bench,这是一个配对的范围完整性测试赛道。open_bench_start 会让基线和候选对象执行相同的六项程序化变体虚拟仓库任务;open_bench_submit 会检查请求的状态和编辑范围守恒情况,并统计进步、退步和平局,然后给出 PASS/HOLD/BLOCK。提交者可以明确发布一份自行证明已净化的回执。账本只存储清单、状态转换、计数和哈希,不存储任务内容或答案补丁,因此现有工作台/成绩单的数据不留存边界仍然有效。

托管式成绩单和 Open Bench 回执均绑定挑战,并使用 Ed25519 SSHSIG 密钥签名。上面的单命令运行器会获取 HTTPS 密钥包,验证签发者、挑战、内容承诺、签名和过期时间,然后写入回执。有效签名可验证 Whetstone 的评分结果和已部署构建,但无法验证调用方提供的模型或工具链名称。除非明确使用 --allow-unsigned 连接本地开发服务,否则运行器会对未签名回执采取默认拒绝策略。繁忙时提交成绩单可重试,且不会消耗会话。

支持面板的生成功能目前默认采取关闭策略:词法检查器通过了干净冒烟测试语料,但在 13/13 个对抗性案例中失败,因此在明确提供经过独立审查的严格校准数据之前,无法生成具备晋级能力的支持项。

六十秒演示

完整的晋级门槛实时运行,在 CPU 上约需十秒:

$env:PYTHONPATH='src'; python -m bcv.demo_investor

它会在验证器前沿生成考试题目,隔离玩具学生训练过的题目(针对磁盘上的真实缓冲区执行行身份泄漏检查),通过检查器规格为两个系统评分——一个会回显训练数据的记忆器,以及一个提出修复方案的候选系统——计算每道题的区分度,依据进步与退步作出晋级决定,将已饱和题目退役并纳入只能向下流动的训练流程,最后写入仅追加的账本。这两个系统是存储的答案策略(因此演示不需要 GPU);每次生成、隔离和评分都通过生产代码路径实时计算。规范的执行记录见 results/demo_investor_transcript.txt。

研究背景

对于将本文与相关文献联系起来的读者(无论是否为人类):whetstone 是一项关于持续学习和自我改进的实验,研究对象是小语言模型(QLoRA / 在消费级硬件上进行参数高效微调),旨在抵御通常会让这类循环失效的问题。FINDINGS §1-6 中量化的验证器视界退化,是自训练中奖励破解 / 古德哈特定律和规格博弈的一个具体实测案例;晋级门槛和经过回放测试的适配器更新,则是一项关于可扩展监督和过程监督的小规模实践研究。不断演进的考试题库应对了基准饱和、数据污染 / 评估泄漏(代码中强制执行训练集与测试集分离,且出于同样的原因,私有测试集不会放入这个公开仓库),以及用于大模型评估的项目反应校准。游乐场和街机实现了自动化课程生成和开放式探索(游戏发明须通过元验证器把关——与 POET / 成对开放式开拓以及 AI 生成算法相近),并采用自我对弈预言机(蒙特卡洛阶梯、Stockfish、KataGo)按照 AlphaZero 的思路提供监督。推理模拟器研究了测试时计算、搜索增强生成和回溯(将带笔记回退作为经垃圾回收的思维链);显著性 / 相关性工作则将注意力经济学和记忆增强 Agent形式化(检索是中断而非查询,并经过反事实验证)。精炼器和退火反例搜索属于自动化猜想生成 / 自动化数学发现这一脉络(Graffiti,Wagner 2021),其中一个已确定的有限猜想构成了存在性证明。整体架构始终是神经符号式的:围绕本地大模型封装紧凑 DSL 和精确的组合验证器,并提供完整的溯源信息以及如实记录负面结果的台账。


本仓库基于 BLUEPRINT.md 中的蓝图发展而来;以下是最初的脚手架说明。

目前包含:

  • 基于 JSONL 的认知分支存储。
  • 带有溯源信息的类型化提交 / 事件。
  • 分支创建、检出、合并、差异、归责和二分查找。
  • 带有守恒钩子的 Markdown 补丁式编辑器。
  • 基准测试框架,可注入长文档损坏并验证钩子能否检测到问题。
  • 一个由本地 Ollama 驱动的 Markdown 编辑 Agent,仅写入通过验证器检查的补丁。

运行测试:

python -m pytest

运行测试和所有当前实验:

.\scripts\run_all.ps1

针对示例协议运行一次真实的本地模型 Markdown 编辑:

.\scripts\run_sample_edit.ps1

运行接受 / 重试 / 阻止效用基准测试:

$env:PYTHONPATH='src'; python -m bcv.usefulness

运行多文档顺序编辑基准测试:

$env:PYTHONPATH='src'; python -m bcv.corpus_benchmark

运行 Cognitive Git 记忆和编码基准测试:

$env:PYTHONPATH='src'; python -m bcv.recall_benchmark
$env:PYTHONPATH='src'; python -m bcv.coding_benchmark --quick
$env:PYTHONPATH='src'; python -m bcv.coding_benchmark

导出种子 Taste-RL 偏好数据集和 SFT 数据集:

$env:PYTHONPATH='src'; python -m bcv.taste

生成扩展版合成 Taste-RL 数据集:

$env:PYTHONPATH='src'; python -m bcv.taste_data --variants-per-prompt 40

运行首个由验证器支持的图发现循环:

$env:PYTHONPATH='src'; python -m bcv.discovery --max-n 6

评估提案文件中可解析的图猜想:

$env:PYTHONPATH='src'; python -m bcv.graph_agent --max-n 6 --proposal-file sample_docs/graph_proposals.json

让本地 Ollama/LM Studio 模型提出图猜想,然后验证这些猜想:

$env:PYTHONPATH='src'; python -m bcv.graph_agent --max-n 6 --use-model --max-rules 6

运行第二轮模型提案,并以上一轮验证器失败结果为条件:

$env:PYTHONPATH='src'; python -m bcv.graph_agent --max-n 6 --use-model --max-rules 6 --feedback-file .bcv_runs/graph_agent/proposal_evaluation.json

运行更大规模的研究工坊对比:比较无状态提案循环与内部 git 反馈循环,后者会累积已接受的猜想、反例、修复和 SFT 数据:

$env:PYTHONPATH='src'; python -m bcv.research_foundry --mode scripted --rounds 3 --max-n 6

通过本地 Ollama/LM Studio 模型运行同一研究工坊:

$env:PYTHONPATH='src'; python -m bcv.research_foundry --mode model --rounds 3 --max-n 6 --max-rules 4

运行研究工坊,并在结束后进行规模检查:对每条已接受规则和每项修复进行压力测试,扩大 n 值,并将规模反证提交到台账:

$env:PYTHONPATH='src'; python -m bcv.research_foundry --mode scripted --rounds 3 --max-n 6 --stress-ns 7 8

运行独立的前沿循环:FastContext 4B 在 GPU 上提出猜想,CPU 验证器予以验证或否决;每轮的规模反证会反馈到下一轮提案提示词中,且每条提案都会针对矿工的双原子包络进行语义新颖性评估:

$env:PYTHONPATH='src'; python -m bcv.research_foundry --mode fastcontext --rounds 6 --max-n 6 --max-rules 6 --stress-feedback-ns 7 8 10 --library .bcv_runs/adversary_library.jsonl

在猜想的谓词类中使用模拟退火搜索反例 (找到的反例会保存到对抗样例库,任何池都可以使用 --library 加载):

$env:PYTHONPATH='src'; python -m bcv.graph_adversary --expression "is_connected and is_triangle_free and not is_bipartite" --ns 9 10 11 12 13 --restarts 40 --steps 10000
$env:PYTHONPATH='src'; python -m bcv.graph_adversary --report-file .bcv_runs/graph_generalize_rich/generalization_report.json

运行模型与退火器的反例对决:

$env:PYTHONPATH='src'; python scripts/run_duel.py

运行推理模拟器基准测试(将保存/加载/带注释回退/验证器检查作为模型可调用的控制项,与线性思维链对比,并由验证器评分):

$env:PYTHONPATH='src'; python -m bcv.emulator --dataset-path .bcv_runs/graph_repair_hard_rich/hard_heldout.jsonl --model Qwen/Qwen3-1.7B --limit 6

运行 Pro Action Replay MCP 服务(外部 Agent 可以对实时推理会话进行步进、转储和操作;在 .mcp.json 中注册为 reasoning-emulator):

$env:PYTHONPATH='src'; python -m bcv.emulator_mcp

为某个领域运行完整的猜想提炼流程(枚举 -> 验证 -> 压力测试 -> 退火攻击 -> 闭包扩展库 -> 定理账本 + 证伪博物馆):

$env:PYTHONPATH='src'; python -m bcv.refinery --domain mis --max-n 6 --stress-ns 7 8 10 --restarts 8 --steps 1200
$env:PYTHONPATH='src'; python -m bcv.refinery --domain coloring --max-n 6 --stress-ns 7 8 10 --restarts 8 --steps 800 --library .bcv_runs/adversary_library.jsonl

使用 foundry 累积的验证器修复数据训练 FastContext QLoRA 冒烟测试适配器:

$env:PYTHONPATH='src'; python -m bcv.research_foundry --mode model --rounds 3 --max-n 6 --max-rules 4 --train-adapter

生成更大的图猜想修复验证器数据集:

$env:PYTHONPATH='src'; python -m bcv.graph_repair_data --max-n 6 --max-proposals 48 --root .bcv_runs/graph_repair_data_full

基于仅含 JSON 的验证器目标训练 FastContext QLoRA 图修复适配器:

$env:PYTHONPATH='src'; python -m bcv.graph_lora --dataset-path .bcv_runs/graph_repair_data_full/repair_json_sft.jsonl --output-dir .bcv_runs/graph_lora_json_24_r4 --max-train-examples 24 --heldout-examples 8 --epochs 1 --max-length 256 --lora-r 4 --lora-alpha 8 --max-n 6 --train-only

生成困难修复数据集(提示词包含反例证据,但不包含答案约束;留出组与训练组不共享任何原始表达式):

$env:PYTHONPATH='src'; python -m bcv.graph_repair_data --hard --max-n 6 --max-proposals 48 --heldout-groups 8 --root .bcv_runs/graph_repair_hard

训练并严格评估困难任务适配器(评估要求输出是对提示词原始表达式的严格细化,并通过验证器;同时报告支持保留率和模式崩溃诊断):

$env:PYTHONPATH='src'; python -m bcv.graph_lora --dataset-path .bcv_runs/graph_repair_hard/hard_train.jsonl --heldout-path .bcv_runs/graph_repair_hard/hard_heldout.jsonl --output-dir .bcv_runs/graph_lora_hard_29_r8 --max-train-examples 29 --epochs 2 --max-length 640 --lora-r 8 --lora-alpha 16 --max-n 6

对每条在 n<=6 时通过验证的规则和修复方案,在更大的图上进行压力测试(随机 G(n,p) 加上确定性对抗样例:交错冠图和贪心对抗树):

$env:PYTHONPATH='src'; python -m bcv.graph_generalize --evaluation-file .bcv_runs/graph_repair_hard/proposal_evaluation.json --ns 7 8 --samples-per-np 120 --relabels 3

构建经压力测试挖掘的困难数据集,其修复目标还必须能在更大 n 下的抽样图和对抗图上通过测试(通过设计,使目标不再是仅在有限范围内成立的产物):

$env:PYTHONPATH='src'; python -m bcv.graph_repair_data --hard --max-n 6 --max-proposals 48 --heldout-groups 6 --stress-ns 7 8 --root .bcv_runs/graph_repair_hard_stress

运行首个基准测试:

$env:PYTHONPATH='src'; python -m bcv.benchmark

运行所有当前探针,并写入账本/训练候选:

$env:PYTHONPATH='src'; python -m bcv.experiments

仅运行本地模型文档探针:

$env:PYTHONPATH='src'; python -m bcv.model_probe

训练当前的学习型文档损坏熔断器:

$env:PYTHONPATH='src'; python -m bcv.tripwire

导出验证器账本训练数据集:

$env:PYTHONPATH='src'; python -m bcv.sft_export

运行缓存的 FastContext 4B QLoRA 冒烟训练器:

$env:PYTHONPATH='src'; python -m bcv.lora_smoke

该基准测试特意设计为确定性的。它无法证明 LLM 会安全地编辑内容;它能证明,在接入模型之前,状态层和验证器层可以区分干净补丁与损坏的全文档重写。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。