Forgejudge

io.github.ahmedEid1由 GitHub 帳號 ahmedEid1 發布v0.1.1更新於 Oct 25, 2026

Open eval leaderboard + CI gate for autonomous coding agents (solve, score, trace).

已驗證STDIO僅桌面開發者工具AI 與機器學習

概覽

AI 產生的概覽

已封存的 MCP 伺服器,透過 stdio 提供 ForgeJudge 這套面向自主編碼代理的開放評測框架與排行榜。

可以做什麼
  • 執行 ForgeJudge 框架自我測試,回報黃金任務是否仍判定為已解決
  • 以設定的模型求解黃金集任務,並對產生的修補做確定性評分
  • 透過此套件的 MCP 伺服器存取已凍結的排行榜快照與執行資料
  • 提供函式庫與命令列入口,用於批次評測、回歸閘門與框架檢查
適用情境
僅當你想從助理端檢視或重用 ForgeJudge 評測框架及其凍結排行榜時適用,例如重新評分修補或研究方法論。此專案已封存且不再維護,不適合用於持續的評測工作。
執行需求
以 stdio 在本機執行,通常透過 uvx 加上 mcp 額外相依套件啟動,需要 uv 與 Python 3.12。求解任務需要以 GROQ_API_KEY 提供的 Groq API 金鑰;自我測試與 info 指令不需金鑰或網路。完整重跑另涉及封存文件中所述的資料庫與部署密鑰。
安裝前請注意
專案已於 2026-09-28 封存,不再有排程執行;排行榜已凍結,三個模型中有兩個已退役。已發佈的 0.1.0 套件其角色鏈仍列有已退役模型。求解任務會在成本預算內消耗模型額度,完整重跑涉及資料庫與部署憑證。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Forgejudge,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

ForgeJudge

An open leaderboard and CI gate for autonomous coding agents — every patch runs in a sandbox, every run is traced, every regression fails the build.

📦 Archived (2026-09-28). ForgeJudge is no longer maintained and nothing runs on a schedule any more. The leaderboard is frozen at the last complete sweep (2026-07-02, 162 runs). Two of its three models have since been retired by Groq. Archive notes & how to rerun it in a fork →

[CI] [regression gate] [license: MIT] [python 3.12]

▶ Archived leaderboard (frozen 2026-07-02): forgejudge.ahmedhobeishy.tech · playground · methodology · model swap · MCP registry

Final results — the last complete sweep, 2026-07-02 (run #34; hidden-test = the agent never sees the failing test; $0 free tier; same harness, swap the model; 18 tasks × 3 seeds = 54 runs/model, 162 total):

Modelpass@1pass@3Status today
llama-3.3-70b-versatile98.1%100%retired by Groq 2026-08-16
gpt-oss-120b94.4%94.4%available
llama-3.1-8b-instant57.4%72.2%retired by Groq 2026-08-16

With the harness fixed, the 8B model trails the 70B/120B models by ~40 points (the model-swap signal), and pass@3 ≥ pass@1 reflects run-to-run variance — which is exactly why the CI gate is multi-seed. Every run's patch is in runs.json and re-grades to the same verdict. Traces were kept in Langfuse while the project ran; they are not public, so the trace links do not open for other viewers. Details, later unpublished sweeps and the retired models: docs/ARCHIVE.md.

ForgeJudge is an open-source autonomous software-engineering agent that proved its quality in public on every commit while it was active: a hand-rolled single-agent solver, a deterministic execution-as-judge harness, a leaderboard with per-run traces (now a frozen snapshot), and a CI gate that blocks regressions — all on a $0 / self-hostable stack against a contamination-resistant, intrinsically-verifiable golden set.

The engineered harness, observability, and gate are the deliverable — not a high resolution rate. A $0 free-model agent will score modestly by design. We prove value with a model-swap comparison: the score rises with a better model while the harness stays fixed.

How it works

mermaid
flowchart TD    G["Golden set · Git-canonical<br/>18 intrinsically-verifiable, mutation-hardened<br/>make-CI-green tasks"]
    subgraph SOLVER["Single-agent solver"]        direction LR        L["localize<br/>(BM25)"] --> R["repair<br/>(LLM router · critic · syntax edit-gate)"] --> V["validate<br/>(run tests)"]    end
    G --> SOLVER    SOLVER --> PATCH["unified diff"]    SOLVER -. "every step traced" .-> TRACE["OTel → Langfuse<br/>per-run trace"]
    PATCH --> H["Deterministic harness, in a sandbox<br/>apply test_patch + candidate patch · run F2P / P2P<br/><b>RESOLVED iff</b> every FAIL_TO_PASS passes AND every PASS_TO_PASS stays green<br/>SWE-bench-style grading on a contamination-resistant task set · stricter on skips · cheat-resistant"]
    H --> STORE["Run store<br/>Neon + pgvector"]    STORE --> LB["Leaderboard<br/>pass@1 / pass@3 · cost · tokens · trace link"]    H --> GATE["Multi-seed CI gate<br/>a PR that lowers the resolution rate fails the build"]
    style G stroke:#3fb950,stroke-width:2px    style H stroke:#4cc2ff,stroke-width:2px    style GATE stroke:#f0883e,stroke-width:2px
  • Solver — a single, phase-structured loop (localize → repair → validate), not a multi-agent swarm: cheapest, most deterministic, most debuggable. BM25 localization, an LLM router over free tiers, a syntax edit-gate, a cheap critic pre-filter, and a cost/step budget with autosubmit.
  • Harness — encodes the SWE-bench RESOLVED_FULL rule and is verified equivalent to swebench.harness.grading on real PASS/FAIL/ERROR/XFAIL outcomes in CI — and deliberately stricter on a skipped FAIL_TO_PASS: swebench 4.1.0 rates a skipped oracle test RESOLVED_FULL (a skip is neither success nor failure), so a patch that makes the oracle skip rather than run grades as resolved. ForgeJudge counts a skip as not-passed, closing that cheat vector. Patches are also cheat-resistant: the canonical test files are restored before grading, so a patch can't neuter the oracle.
  • Golden set — 15 purpose-built post-cutoff fixtures + 3 tasks mined from the author's own repos (real commit SHAs, MIT/own license — zero leak/copyleft risk). Each is mutation-hardened: a wrong fix to the patched region is caught (16 mutation-hardened at mean score 0.94; 2 inconclusive for regex/string code; 0 weak).
  • Sandbox / CI / sweep — GitHub Actions on a public repo does triple duty (ephemeral isolated VM sandbox + regression gate + leaderboard sweep) at $0. The sweep ran nightly until the archive; it is manual (workflow_dispatch) now.
  • Observability — OpenTelemetry GenAI spans (invoke_agent → retrieval / chat / execute_tool, gen_ai.usage.*, a gen_ai.evaluation.result pass/fail verdict) exported to Langfuse Cloud; every run recorded a trace link while the project ran. The traces are not public, so the links do not open for other viewers.

Two gates, two jobs

The deterministic gold-integrity gate (does the harness itself still work?) is kept separate from the stochastic regression gate (did a change make the agent meaningfully worse?) — because gold grading is deterministic and must never be averaged with noisy per-seed runs.

mermaid
flowchart TD    PR["Pull request / commit"] --> GG["Gold-integrity gate<br/>deterministic · $0 · re-grade all gold patches"]    GG -->|"any gold task unresolved"| F1["fail — the harness broke"]    GG -->|"all gold tasks resolved"| OK1["harness intact"]
    CRON["On-demand multi-seed sweep"] --> SEEDS["run the agent × N seeds<br/>→ one resolution rate per seed"]    SEEDS --> RG["Regression gate<br/>small-sample CI (Student-t / Wilson)"]    BASE["baseline_scores.json<br/>per-seed reference"] --> RG    RG -->|"candidate CI upper bound &lt; baseline CI lower bound"| F2["❌ fail — real regression"]    RG -->|"overlapping · equal · improved"| OK2["✓ no regression"]
    style GG stroke:#4cc2ff,stroke-width:2px    style RG stroke:#f0883e,stroke-width:2px

Quickstart

Prereq: uv (Python 3.12 is provisioned for you) — curl -LsSf https://astral.sh/uv/install.sh | sh.

bash
git clone https://github.com/ahmedEid1/forgejudge && cd forgejudgeuv sync                       # Python 3.12, deps via uv
# Run the deterministic harness self-test (no API key, no network):uv run python -m forgejudge.harness.runner_actions --patch-source gold   # 18/18 resolved
# Solve a task with a free model and grade it.# Needs a (free) Groq key. Either export it, or put it in .env and pass --env-file:#   export GROQ_API_KEY=...                     # or#   cp .env.example .env && edit GROQ_API_KEY   # then: uv run --env-file .env python - <<'PY'uv run python - <<'PY'from forgejudge.golden.loader import load_tasksfrom forgejudge.agent.solver import solvefrom forgejudge.harness.grade import gradetask = {t.instance_id: t for t in load_tasks("golden/dataset.jsonl")}["fixture-semver-001"]res = solve(task, run_id="demo", budget_usd=0.10, seed=0)print(res.status, "→ resolved:", grade(task, res.patch).resolved)PY

Fast tests: uv run pytest -m "not slow". Full golden validation + mutation hardening: uv run pytest -m slow. Sweep one model without a database: uv run --env-file .env python -m forgejudge.eval.sweep --model groq/openai/gpt-oss-120b --seeds 0,1,2 --no-store --out runs-0.jsonl. The full rerun guide (secrets, database, deploy) is in docs/ARCHIVE.md. See CONTRIBUTING.md for the full pytest marker map and dev workflow.

Install

Working on the agent/harness itself? Clone and uv sync (above). To consume ForgeJudge as a package:

The published forgejudge==0.1.0 predates the archive: its models.yaml still lists the retired llama-3.3-70b-versatile in several role chains. solve() still works through its gpt-oss-120b primary, but for the current chains install from git (pip install git+https://github.com/ahmedEid1/forgejudge).

bash
# Library + the `forgejudge` CLI (selftest / mcp / info):pip install forgejudgeforgejudge selftest           # deterministic harness check — 18/18 resolved, no keyforgejudge mcp                # MCP server over stdio (needs the [mcp] extra)
# Zero-install MCP server (no venv to manage) — for an MCP client config:uvx --from "forgejudge[mcp]" forgejudge mcp

Optional extras (installed only when you need them):

ExtraPulls inFor
forgejudge[harness]swebenchthe swebench-equivalence grading check
forgejudge[mcp]fastmcpthe MCP server (forgejudge mcp)
forgejudge[playground]fastapi, uvicorn, httpxthe guarded live playground API (self-host; the hosted instance is no longer maintained)
bash
pip install "forgejudge[mcp]"            # one extrapip install "forgejudge[harness,mcp]"    # several

forgejudge selftest and forgejudge info work with the base install — no extras, no API key, no network.

Six objections, pre-empted

  1. "Your benchmark is contaminated / cherry-picked." The golden set is freshly authored / post-cutoff, sourced only from the author's own repos + fixtures (no third-party leak surface), and mutation-hardened so a wrong patch can't pass. SWE-bench Verified is now widely held contaminated — OpenAI stopped reporting it (2026-02); >32% of "passed" cases leaked the solution and ~31% passed on weak tests. Decontamination here is a documented, tested property — not a footnote.
  2. "Thin wrapper around an LLM / a framework." The orchestrator is hand-rolled (no LangChain): the control loop, the sandbox-and-score harness, the cheat-resistant grader, the mutation hardener, the OTel instrumentation, and the multi-seed CI gate are the work.
  3. "Your resolution rate is low vs SOTA." SOTA is ~88–94% with premium models and budgets; a $0 free-model number is modest on purpose. The deliverable is the engineered system; the model-swap comparison (score rises with a better model, harness fixed) is the proof.
  4. "Is it actually autonomous or staged?" Every run recorded an OpenTelemetry/Langfuse trace, and every stored patch re-grades deterministically to its recorded verdict. The replay-first playground demos a real solve without exposing cost/abuse surface.
  5. "Three agent projects — one-trick pony?" One eval methodology — golden set + judge + traces + CI gate — across three domains at rising autonomy (Lumen → Thoth → ForgeJudge).
  6. Determinism. temperature=0 does not guarantee determinism (pass@1 varies 2–6pp). The scorer is fully deterministic; the gate is multi-seed (fail only when the candidate's CI upper bound is below the baseline's CI lower bound), so flaky single runs don't break the build.

Repository layout

PathWhat
forgejudge/golden/golden-set loader, fixture contract, dataset builder, mutation hardener
forgejudge/harness/deterministic grade(), cheat-resistant runner, swebench-equivalence check, sandbox executor
forgejudge/agent/localize → repair → validate solve loop, critic
forgejudge/llm/role-based LiteLLM router with fallback + cost accounting
forgejudge/obs/OpenTelemetry GenAI tracing → Langfuse / Phoenix
forgejudge/eval/leaderboard sweep, quality-gated publish, multi-seed regression gate, LLM-as-judge + Cohen's κ
forgejudge/store/Neon (Postgres + pgvector) run store + leaderboard query
golden/dataset.jsonlcanonical golden set (one Task per line)
.github/workflows/ci, gate (gold integrity), eval (sandbox), regression-gate, release (on a v* tag push or on demand), and the manual-only sweep, pages-deploy, publish-mcp
docs/DESIGN.md (technical deep-dive), ARCHIVE.md (final results + rerun guide)

License

MIT © 2026 Ahmed Hobeishy. Imports and attributes the MIT-licensed swebench grading harness.

來源:README.md,提交 f46967e

工具

0
SourceWeft 尚未在沙箱中啟動過該軟體包,因此其工具未知。

版本歷史

1
  1. v0.1.1最新Sep 16, 2026

評分

已滿足適用檢查項的 50%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分