mcpField
P
poordjaevin

poordjaevin

本地服务
github.com/Icaro0310AI 与智能体6今天更新

关于 poordjaevin

poordjaevin 面向 AI 工程师和 QA 工程师,是本地优先的 AI 决策层,提供带置信度的类型化答案。它支持本地 NLI 和 Devin ACP 后端,并通过 MCP 服务供 Agent 调用决策工具。

主要功能

  1. 01类型化分类、评分和是非决策
  2. 02一次模型调用批量回答问题
  3. 03校准置信度并标注来源
  4. 04本地离线 NLI 后端
  5. 05CLI、Python 库和 MCP 服务

适用场景

  1. 01分类并路由支持工单
  2. 02拦截高风险 Agent 操作
  3. 03按等级为文本评分

MCP 相关

MCP 服务提供操作拦截、判断、分类、评分和类型化问答工具。后端包括 Devin ACP、VS Code LM 和离线 NLI。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"icaro0310-poordjaevin": {
"command": "uvx",
"args": [
"poordjaevin"
],
"env": {
"POORDJAEVIN_BACKEND": "<POORDJAEVIN_BACKEND>"
}
}
}
}
启动命令uvx poordjaevin
需要配置的环境变量
POORDJAEVIN_BACKENDBackend: 'acp' (Devin's own model), 'local' (offline NLI) or 'auto'

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
pypipoordjaevin0.1.1

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

poordjaevin

测试 PyPI MCP Registry M8ven 评分 Glama

OpenSSF 记分卡 OpenSSF 最佳实践 GitHub 星标 最近提交 devin-* 生态系统 欢迎提交 PR

属于 DEVIN 生态系统
领域:控制 · 类型:产品
面向:AI 工程师、QA 工程师
接口:CLI / Python 库 / MCP 服务 / Bridge
路径:QA 工程师 · 第 3/3 步 — 位于 devin-evals 之后

适用场景

poordjaevin

更名(2026 年 10 月):此仓库从 Icaro0310/poordjaevin 迁移至 Icaro0310/devin-judge。PyPI 软件包、控制台脚本和 MCP 注册表名称仍为 poordjaevin;星标、问题和历史记录通过重定向保留。

平民版 Jev。一个开源、本地优先的 LLM 应用“系统一”决策层:提供经过可证明校准的置信度的类型化决策。无需 API 密钥。无需候补名单。

MIT 许可证 Python 3.10+ ECE 从 0.156 降至 0.072 无需 API 密钥

社区项目。与 Cognition AI 无关联、未获其认可或赞助。“Devin”是 Cognition AI 的商标。

Linux · 个人版 Windows · 企业版 Windows

隶属于 awesome-devin 生态系统:精选的 devin-* 工具中心。


你的模型给出的 0.9 只是感觉。poordjaevin 的 0.9 则是经过测量的结果。

每个采用 JSON 模式的 LLM 都会给你一个置信度分数,并希望你不会去核实。poordjaevin 会核实。在随附的评估集上,它在准确率毫无损失的情况下,将校准误差(ECE)从 0.156 降至 0.072,并且可在笔记本电脑上运行,无需 API 密钥。

可靠性图:原始置信度过高,校准后的置信度贴近对角线

左:原始置信度,过高。右:校准后,标称为 0.8 的置信度确实约有 80% 的时候是正确的。

快速入门

# Linux / macOS
pip install "poordjaevin[local]"
# Windows (PowerShell)
py -m pip install "poordjaevin[local]"

[local] 会安装 torch 和 transformers,以用于离线 NLI 后端。如果你只打算使用 Devin ACP 后端(poordjaevin serve 的默认选项),直接执行 pip install poordjaevin 即可。若要直接从 GitHub 安装开发版本,请在软件包规格后附加 @ git+https://github.com/Icaro0310/devin-judge.git。

from poordjaevin import Client, Choice, Score, Noul

client = Client()  # local model, no key, offline after one download

result = client.ask(
    state="I've emailed three times and I'm STILL being double-charged. Cancel my account today.",
    questions={
        "topic":        Choice(["billing", "technical", "account", "shipping", "other"]),
        "frustration":  Score(levels=["low", "medium", "high"]),
        "is_urgent":    Noul("The customer needs a response today."),
        "wants_cancel": Noul("The customer wants to cancel their account."),
    },
)

result["topic"].value          # "billing"      always one of your options, by construction
result["topic"].confidence     # 0.86           calibrated, not a vibe
result["frustration"].value    # "high"
result["is_urgent"].value      # True
result["wants_cancel"].value   # True

一次调用、一次模型推理,获得四个类型化答案。无需提示词工程,无需解析 JSON,也不会出现“模型返回了一段文字”的情况。

与 Devin 配合使用(MCP 服务,仅限 Devin)

poordjaevin 附带 MCP 服务,因此 Devin(或任何 MCP 客户端)都可以将其作为工具,快速做出经过校准的决策。一个显而易见的用途是:在 Agent 执行高风险工具调用前进行拦截。

此模式只需要 Devin。 默认后端(acp)通过一个随包提供的小型 Node 桥接程序与 devin acp 通信,因此每次决策都由你的 Devin 计划已提供的模型评分,并自动轮换模型。 无需 Ollama、虚拟机、隧道或第二个 API 密钥:桥接程序会读取 Devin CLI 使用的同一份 credentials.toml。

# Devin users: no local model needed
uv tool install "poordjaevin[mcp]"

或者使用 pipx(替代方式):

pipx install "poordjaevin[mcp]"

将其添加到 Devin MCP 配置中:

{
  "mcpServers": {
    "poordjaevin": { "command": "poordjaevin", "args": ["serve"] }
  }
}

ACP 后端的要求:devin CLI 位于 PATH 中(或设置 DEVIN_CLI_PATH), Node.js >= 18 位于 PATH 中,并且 Devin 凭据有效,存放在 %APPDATA%\devin\credentials.toml(Windows)或 ~/.local/share/devin/credentials.toml(Linux,可通过 DEVIN_CREDENTIALS_PATH 覆盖)。

后端选择和调优,均为可选项:

变量默认值含义
POORDJAEVIN_BACKENDacpacp = 通过 ACP 使用 Devin 的模型,vscode-lm = 通过 LM API 使用 VS Code 的模型,nli = 完全离线的本地模型
POORDJAEVIN_ACP_MODELauto固定使用指定的 Devin 模型,而非自动轮换
POORDJAEVIN_ACP_TIMEOUT120每轮决策往返的秒数
POORDJAEVIN_ACP_MAX_COSTunset当 ACP 累计成本超过此预算时,默认拒绝
POORDJAEVIN_VSCODE_LM_ENDPOINTauto端点文件路径或直接覆盖为 http(s):// URL
POORDJAEVIN_VSCODE_LM_TIMEOUT120向扩展端点发出每次请求的秒数
POORDJAEVIN_VSCODE_LM_FALLBACKunsetnli = 扩展不可用时回退到本地模型
POORDJAEVIN_ABSTAINoffon = 低于校准阈值时弃答,而不是给出答案

关于置信度的说明:在 acp 和 vscode-lm 模式下,置信度为 self_report(模型自行给出的概率,并经过温度调整),而不是 NLI 对数概率。每个工具响应都包含 confidence_source 字段,因此调用方不会混淆两者;每次调用的 model/cost 也会记录下来,以便监控配额。

vscode-lm 后端会通过 VS Code 当前提供的聊天模型(Copilot、Codex、BYOK)进行评分。vscode.lm 只存在于扩展宿主中,因此 icaro0310.judge 扩展会提供一个小型 localhost 端点,并通过平台数据目录中的 vscode-lm-endpoint.json(与 djaevin_log.db 同目录)公布该端点。如果扩展未运行,后端会默认拒绝;若 POORDJAEVIN_VSCODE_LM_FALLBACK=nli,则会回退到 nli。

机器上没有 Devin?使用离线路径:

uv tool install "poordjaevin[local,mcp]"

或者使用 pipx(替代方式):

pipx install "poordjaevin[local,mcp]"
POORDJAEVIN_BACKEND=nli poordjaevin serve   # ~400MB one-time model download, then offline

此服务也适用于 Claude Code/Desktop(claude mcp add poordjaevin -- poordjaevin serve),JSON 配置格式相同。

随后,Agent 将获得以下本地工具:

工具功能
gate(action)护栏:是否应拦截此操作(例如转移资金、删除数据)?
judge(text, statement)是/否问题,并给出经过校准的 P(true)
classify(text, options)选择一个选项,并给出经过校准的置信度
rate(text, levels)按等级评分(低 / 中 / 高)
decide(text, questions)一次处理多个类型明确的问题

为什么这比让 LLM 来判断更好:使用默认的 NLI 后端时,它在本地运行(隐私性好)、免费(不消耗 token)、速度快,而且置信度经过校准,而非凭空编造。使用 acp 或 vscode-lm 时,评分文本会发送给你所选的模型提供商;置信度仍会通过 confidence_source 如实标注,加载了匹配的校准器时会经过校准,否则则为原始置信度。

限制提交范围(pre-commit hook)

此仓库提供了一个 pre-commit hook,会在每次提交前对操作文件运行 poordjaevin gate:

# .pre-commit-config.yaml (in the repo you want to protect)
- repo: https://github.com/Icaro0310/devin-judge
  # the hook manifest ships in v0.1.2+; use a tag once cut
  rev: main
  hooks:
    - id: devin-judge-gate
      # optional: point the gate at your own action file
      # args: [--action-file, path/to/action.txt]

必须先完成设置:该 hook 会在缺少配置时拒绝提交。如果没有操作文件,每次提交都会以状态码 2 退出,因此请先创建一次:

mkdir -p .devin
echo "The risky action this commit performs." > .devin/judge-action.txt

有两点值得注意:pre-commit 会将 args 附加在 entry 中已有的标志之后,因此需要重复指定 --action-file 来覆盖默认路径。此外,该 hook 会在每次提交时运行(always_run、pass_filenames: false),因此需要可用的后端:默认的 acp,或安装了 local extra 后使用 POORDJAEVIN_BACKEND=nli。

poordjaevin 的存在意义

大多数生产环境中的 AI 工作并非聊天,而是快速的结构化决策:路由工单、分类意图、评估情感、提取字段、门控工具调用。TypeSafe 的 Jev 为这一类别命名(“System One”模型),并准确阐明了其核心观点——而且,根据下文的独立跨系统基准测试,它目前也用结果支撑了自己的校准声明:它是在此测得的最强模型。不过,它是闭源的,需要托管服务,而且设有候补名单。

poordjaevin 面向那些无法通过“调用托管 API”来满足需求的部署场景:私有数据、离线环境、零边际成本、无需候补名单。它在小型本地模型上复现了 Jev 的类型化决策接口,并如实验证了自身的校准表现(采用 5 折交叉验证,绝不在用于拟合的数据上评分)。在下文的混合决策原语基准测试中,它优于其他开源本地替代方案,但在高基数基准测试中并非如此,具体情况请参见实际结果。它并未胜过 Jev。对于 NLI 后端完全本地且免费的方案而言,这就是诚实的取舍。

poordjaevin 与其他方案的比较

独立测得,非自报数据——完整的测试框架、数据和每个原始结果文件见 crossbench/。

柱状图比较 poordjaevin、Jev、von 和 Laya 在 Banking77 与多原语测试集上的准确率和 ECE。Jev 在多原语测试集的两项指标上均领先;在开源方案中,von 在 Banking77 上的准确率和校准度均领先;poordjaevin 仅在多原语测试集上领先于开源方案。

poordjaevin 以红色显示。图表通过 crossbench/plot_comparison.py 从 crossbench/results/ 重新生成——与下表数据相同。

Jev (TypeSafe)vonLayapoordjaevin
接口(类型化问题,单次处理)是是是是
可在本地运行,无需 API 密钥否是是是
数据保留在你的环境中否是是是
等待名单 / 注册是否否否
开源否是 (Apache-2.0)是 (Apache-2.0)是 (MIT)
准确率,Banking77(77 类,n=154)0.8120.8380.5190.656
ECE,Banking77(越低越好)0.0840.1350.3880.414
准确率,多原语测试集(n=160)0.9060.7750.7750.781
ECE,多原语测试集(越低越好)0.0450.1080.2150.071

多原语测试集的数据是在 evalset/tasks.jsonl 的 55 个项目 / 160 个决策快照上测得的;发布的测试集此后已扩展至 70 个项目 / 203 个决策(见 evalset/README.md)。Banking77 数据不受影响;尚未针对扩展后的测试集对四个系统进行完整重测。

请直截了当地看待结果,这正是开展这项测试的意义:

  • Jev 在多原语测试集上全面胜出——准确率和校准度均最佳,没有例外。
  • von 在 Banking77 上胜出——四个系统中准确率最高(0.838,甚至高于 Jev 的 0.812),不过 Jev 在该测试集上的校准度仍然更好(0.084 对比 0.135)。
  • poordjaevin 在多原语测试集上领先于开源本地方案——在 Laya、von 和 poordjaevin 中,准确率和校准度均最佳。但这不适用于 Banking77:von 的准确率远高于 poordjaevin(0.838 对比 0.656),而且 poordjaevin 在该测试集上的校准度是四个系统中最差的(0.414,甚至高于 Laya 的 0.388),并非最佳。

没有哪个系统能包揽胜利,poordjaevin 尤其没有横扫开源方案——它赢下一项测试,却在另一项测试中被 von 大幅击败。完整的方法说明、公平性说明和每个原始结果文件都在 crossbench/ 中——只需花几美分调用 Jev API,再加上一些 CPU 时间即可复现。

poordjaevin 不是 Jev 的克隆,也不声称能击败 Jev,或能全面胜过 von。它复现了接口,用数据而非营销文案证明自身的校准表现,并且在混合决策原语基准测试中是最强的纯本地方案——但在高基数分类任务中并非如此,目前由 von 领先。

三种原语

原语适用场景返回值
Choice(options)分类、路由胜出选项、各选项概率、经校准的置信度
Score(levels)序数评分、严重程度胜出等级、量表上的连续分数、置信度
Noul(statement)是 / 否门控、护栏P(true),经阈值处理后转换为布尔值

返回的 value 始终取自你声明的集合。无效类别在结构上不可能出现,而非“通常会避免”。我们使用对抗性输入(NaN、无穷大、负数、全零分数向量)对此进行了测试。

工作原理

state + typed questions
        |
        v
   one batched pass through a local zero-shot NLI model   (no API key)
        |
        v
   raw probabilities per option
        |
        v
   calibration: temperature scaling + conformal abstention
        |
        v
   typed, schema-valid answers + calibrated confidence
  • 本地 NLI 后端(完全离线): 一个小型自然语言推理模型会在单次批量前向传递中,将每个选项作为蕴含假设进行评分。一次约 400MB 的下载后即可完全离线使用。无需密钥,也不依赖供应商;你的文本永远不会离开你的设备。poordjaevin eval / calibrate 和 Python 中的 Client() 使用此后端;如需将其用于 serve,请设置 POORDJAEVIN_BACKEND=nli。
  • Devin ACP 后端(poordjaevin serve 的默认后端): 通过 devin acp 执行评分,因此决策使用 Devin 方案已提供的模型,并支持自动轮换和按调用报告成本。无需额外模型,也无需额外密钥。
  • VS Code LM 后端: 通过 icaro0310.judge 扩展中的 vscode.lm 执行评分,因此决策使用 VS Code 当前提供的聊天模型(Copilot、Codex、BYOK),无需额外密钥。设置 POORDJAEVIN_BACKEND=vscode-lm 即可选择此后端。
  • 校准(竞争优势): 温度缩放会拟合一个标量,使预测置信度与实际准确率相匹配;保形阈值会将目标风险预算转化为“我不知道,请升级处理”的信号。校准因后端而异:基于 NLI 后端拟合的校准器不会应用于 ACP 分数(如果不匹配,服务会发出警告并回退到原始置信度)。

基准测试

使用两条命令即可复现所有结果:

poordjaevin eval       --set evalset/tasks.jsonl          # accuracy, ECE, Brier, risk-coverage
poordjaevin calibrate  --set evalset/tasks.jsonl --plots  # before/after ECE + the diagrams

在随附的评估集(70 个手动标注的条目,203 个决策)上,使用本地 NLI 后端且无需密钥:

指标原始值校准后
准确率0.7930.793
ECE(校准误差)0.1560.072
Brier 分数0.173更低
温度1.002.59

温度通过 5 折交叉验证拟合,因此“校准后”的数值是在留出数据上测得的,而不是在拟合所用的数据上测得的。完整表格和坦诚说明的局限性见 RESULTS.md。

**在相同输入和相同指标代码下,与 Jev、Laya 和 von 对比:**请参阅上文的 poordjaevin 与其他方案的比较,以及 crossbench/ 中的完整测试框架。简而言之:在这个混合决策原语基准测试中,poordjaevin 领先于开源方案;在高基数分类方面,von 领先;总体上,Jev 领先。

选择性预测:知道自己何时不知道

设置风险预算后,poordjaevin 会对置信度最低的决策弃权,而不是猜测:

风险-覆盖率曲线:模型对低置信度决策弃权时,错误率随之下降

在 10% 的错误预算下,它会有把握地回答 64% 的决策,并将其余决策升级处理。这是从系统 1(快速自动回答)过渡到系统 2(人工或更大的模型)的自然桥梁。

实例

python examples/ticket_router.py   # full triage on a support ticket
python examples/tool_gate.py       # gate a risky tool call before it runs
python examples/demo.py            # raw vs calibrated, side by side

工具门控示例体现了一条实用经验:本地模型擅长回答具体问题(“此操作会转移资金”“此操作会删除数据”),但不擅长回答抽象问题(“此操作很危险”)。提出具体问题,再用一条规则应用策略。

坦诚说明局限

不炒作。以下是它的不足之处。

  • 速度不如 Jev。 Jev 使用定制模型。poordjaevin 使用通用模型。我们会报告延迟,但不会拿它做宣传。
  • 评测集规模较小(数十个项目、1 位标注者、英文、偏支持场景)。足以展示校准趋势和 schema 有效性,但不足以用于排行榜。
  • 校准后的 ECE 为 0.072,并未低于 0.05。 这是实际交叉验证得出的数值,我们如实报告。按问题分别设置温度,很可能会进一步降低它。
  • 本地模型的智能水平中等。 它能进行真正的语义蕴含判断,但无法深入推理。校准和弃答机制让它能够安全使用。
  • Jev 目前领先,这是测量结果,而非假设;von 在一个指标上也领先。 跨系统基准测试显示,Jev 在多原语集合中明显胜出,并在 Banking77 校准方面领先;von 在 Banking77 准确率上胜过 Jev 和 poordjaevin。poordjaevin 的真实定位是“在混合决策原语基准测试中,最佳的完全本地/免费选项”,而不是“胜过 Jev”,也不是“在所有方面都胜过所有开源替代方案”。
  • 温度缩放无法解决所有问题。 对于 Banking77 的 77 类规模,经过适当交叉验证的温度重新拟合几乎无法改变 ECE(0.414 → 0.416)——这里的校准偏差源于小型 NLI 后端在选项数量较多时的结构性问题,而不是能通过拟合一个标量消除的问题。请参阅 crossbench/results/banking77_poordjaevin_recalibrated.json。

常见问题

这是 Jev 的克隆版吗? 不是。它在开放的本地模型上复现了 Jev 的开发者接口及其置信度校准保证,但不会照搬 Jev 的架构或速度。

我可以在本地运行 Jev 吗? 不能运行 Jev 本身,因为它是闭源托管服务。poordjaevin 是本地开源替代方案:它能在你自己的机器上离线运行相同的类型化决策接口,无需 API 密钥,也无需排队等待。

有没有 Jev 的开源替代方案? 有,poordjaevin 就是其中之一。poordjaevin 采用 MIT 许可证,在通用模型上复现了 Jev 的 Choice/Score/Noul 接口,并通过可复现的数据证明其校准效果。

我需要 API 密钥或 GPU 吗? 不需要。有两种免费使用方式:serve 默认使用 ACP 后端,可复用你现有的 Devin 凭据和模型;nli 在下载一次模型后,即可在 CPU 上离线运行。

这与 JSON 模式下的大模型有什么不同? 有两点。输出从设计上就符合 schema,而不是通过解析来实现。此外,置信度经过校准并有实证支持,不是模型凭空编造的数字。

什么是“System One”模型? 这是一种用于快速、自动化、结构化决策(分类、路由、评分、门控)的模型,与缓慢、审慎的聊天模型相对。这个名称源自 Kahneman 的 System 1 / System 2。

什么是 ECE? 期望校准误差:模型置信度与实际准确率之间的平均差距。数值越低越好。poordjaevin 的全部目标就是缩小这一差距。

我可以使用自己的模型吗? 可以。后端采用可插拔设计;后端只需实现 entail_probs(pairs) 即可。

路线图

  • 类型化原语,设计上确保符合 schema
  • 本地 NLI 后端,单次运行,无需密钥
  • 评测集与指标(准确率、ECE、Brier、风险覆盖率)
  • 校准:温度缩放 + 保形弃答
  • MCP 服务:在 Claude Code 中将 poordjaevin 用作本地工具
  • 对比 Jev、Laya、von 的独立跨系统基准测试(crossbench/)
  • Devin ACP 后端:通过你现有的 Devin 凭据进行大模型评分(智能调节旋钮)
  • 缩小与 Jev 在 Banking77 准确率/校准方面的差距(更大的后端、按类别校准)

平台支持

支持 Windows、Linux 和 macOS。ACP 桥接器会按平台解析 Devin 凭据和 devin 可执行文件:

平台Devin 凭据Devin CLI
Windows%APPDATA%\devin\credentials.tomlPATH 中的 devin.exe
Linux$XDG_DATA_HOME/devin/credentials.toml(默认路径为 ~/.local/share/devin/credentials.toml)PATH 中的 devin
macOS~/Library/Application Support/devin/credentials.tomlPATH 中的 devin

可通过 DEVIN_CREDENTIALS_PATH 和 DEVIN_CLI_PATH 分别覆盖这两项。凭据文件仅读取用于验证 ACP 会话;绝不会记录日志或复制。

贡献

欢迎提交问题和 PR,尤其是为评估集新增带标签的决策任务。如果你发现置信度表述不诚实,这就值得提交为一个 bug。

许可证

MIT。随意使用、发布和销售。


poordjaevin:价格低廉,诚实满满。如果你的模型的置信度只是种感觉,欢迎来看看。


如果这为你节省了调试时间,请在仓库点个 ⭐,帮助其他人发现它。

评论

支持 Markdown

第一次接触 MCP?

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

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