Prime Intellect 發布 Verifiers v1:用於代理強化學習訓練與評估的可組合任務集、工具套件及運行環境
重點摘要
Prime Intellect 推出了 verifiers 0.2.0 版本,並預覽了重新編寫的核心,以新的 verifiers.v1 命名空間發布。現代的評估能夠透過工具、壓縮和子代理來運行編碼代理。因此,v1 重建了環境,以規模化處理這些代理工作負載。什麼是 verifiers v1?首先,需瞭解 verifiers:它是 Prime Intellect 用於代理強化學習與評估的環境堆疊。過去,環境將數據、代理邏輯與基礎設施綑綁在一起。相比之下,v1 將這個綑綁拆分為三個可組合的部分:任務集定義工作內容(數據、工具與評分);工具套件解決任務並產生展開(可為 ReAct 迴路、CLI 代理或自訂);展開則在運行環境中執行(可為本地或雲端)。
Prime Intellect launched verifiers 0.2.0. It previews a rewritten core, shipped under the new verifiers.v1 namespace. Modern evaluations now run coding agents with tools, compaction, and subagents. Accordingly, v1 rebuilds environments to run these agentic workloads at scale. What is verifiers v1? First, consider what verifiers is: Prime Intellect’s environment stack for agentic reinforcement learning and evaluations. Previously, an environment bundled its data, agent logic, and infrastructure together. In contrast, v1 breaks that bundle into three composable pieces. A taskset defines the work: the data, tools, and scoring. A harness solves the task and produces a rollout. That harness can be a ReAct loop, a CLI agent, or your own. The rollout then runs inside a runtime, either local or in a sandbox. Because the pieces decouple, any taskset runs under any compatible harness. How the Architecture Works? With those pieces defined, the next question is how they communicate. The central piece is the verifiers-managed interception server. It sits between the agent’s runtime and the inference server. Specifically, it proxies requests to, and responses from, inference. Meanwhile, it records the trace, sets sampling parameters, and can rewrite tool responses. That rewriting helps mitigate reward hacks during training. For scale, each server multiplexes a constant number of rollouts, defaulting to 32. A pool then scales elastically with observed concurrency. The server also owns a client that relays those requests. During evaluation, an EvalClient acts as a blind HTTP proxy. During training, a TrainClient wraps renderers for faithful token-in RL training. Because harnesses speak different dialects, verifiers supports three as of now. These are OpenAI Chat Completions, OpenAI Responses, and Anthropic Messages. A dialect adapter normalizes each wire format into canonical vf.types. Consequently, your scoring logic stays independent of the agent tested. Run rollout</button> <button id="vf-reset" class="vf-ghost">Reset</button> <span class="vf-lab">Harness dialect:</span> <select id="vf-dialect"> <option value="Chat">OpenAI Chat Completions</option> <option value="Resp">OpenAI Responses</option> <option value="Msg">Anthropic Messages</option> </select> </div> <div class="vf-stage"> <div class="vf-row" style="margin-bottom:14px"> <div class="vf-node vf-taskset" id="n-taskset"> <div class="vf-nt">Taskset</div> <div class="vf-nd">what · data · tools · scoring</div> </div> </div> <div class="vf-runtime-wrap"> <span class="vf-runtime-tag">RUNTIME · where (subprocess · Docker · sandbox)</span> <div class="vf-row" id="vf-flow"> <div class="vf-node vf-harness" id="n-harness"> <div class="vf-nt">Harness</div> <div class="vf-nd">how · Codex · Terminus 2 · ReAct</div> </div> <div class="vf-arrow">→</div> <div class="vf-node vf-intercept" id="n-intercept"> <div class="vf-nt">Interception Server</div> <div class="vf-nd">proxy · records trace</div> </div> <div class="vf-arrow">→</div> <div class="vf-node vf-infer" id="n-infer"> <div class="vf-nt">Inference Server</div> <div class="vf-nd">vLLM · model</div> </div> <div class="vf-packet" id="vf-packet">req</div> </div> </div> <div class="vf-status" id="vf-status">Press “Run rollout” to send a request through the interception server.</div> </div> <div class="vf-grid"> <div class="vf-panel"> <h3>Trace · message graph (v1)</h3> <div class="vf-hint">Each message is a unique node. Size grows linearly in turns.</div> <div class="vf-graph" id="vf-graph"> <div class="vf-empty">No messages recorded yet.</div> </div> </div> <div class="vf-panel"> <h3>Trace size: v0 vs v1</h3> <div class="vf-hint">Drag to change turns. v0 repeats prompt-completion pairs; v1 stores unique nodes.</div> <div class="vf-chart"> <svg viewBox="0 0 260 150" id="vf-svg"> <line x1="30" y1="130" x2="255" y2="130" stroke="#dfe6ef" stroke-width="1.5"/> <line x1="30" y1="10" x2="30" y2="130" stroke="#dfe6ef" stroke-width="1.5"/> <path id="vf-v0" fill="none" stroke="#d1477a" stroke-width="2.5"/> <path id="vf-v1" fill="none" stroke="#0b8f8f" stroke-width="2.5"/> <text x="140" y="147" font-size="9" fill="#94a3b8" text-anchor="middle">turns →</text> </svg> </div> <div class="vf-legend"> <span><i style="background:#d1477a"></i> v0 · quadratic</span> <span><i style="background:#0b8f8f"></i> v1 · linear</span> </div> <div class="vf-slider-row"> <span>Turns</span> <input type="range" id="vf-turns" min="4" max="60" value="24"> <span id="vf-turns-val" style="width:26px;text-align:right">24</span> </div> </div> </div> <div class="vf-foot"> Illustrative demo of the verifiers v1 architecture · Built by <b>Marktechpost</b> </div> </div> <script> (function(){ var root=document.getElementById("vfv1-demo"); var packet=document.getElementById("vf-packet"); var status=document.getElementById("vf-status"); var graph=document.getElementById("vf-graph"); var runBtn=document.getElementById("vf-run"); var resetBtn=document.getElementById("vf-reset"); var dialectSel=document.getElementById("vf-dialect"); var nHarness=document.getElementById("n-harness"); var nIntercept=document.getElementById("n-intercept"); var nInfer=document.getElementById("n-infer"); var flow=document.getElementById("vf-flow"); var turn=0, running=false; var msgs=[]; // recorded nodes var dialectLabel={Chat:"Chat",Resp:"Resp",Msg:"Msg"}; function pos(el){ // center x relative to flow var f=flow.getBoundingClientRect(); var r=el.getBoundingClientRect(); return (r.left - f.left) + r.width/2 - 32; } function clearActive(){ [nHarness,nIntercept,nInfer].forEach(function(n){n.classList.remove("vf-active");}); } function movePacket(fromEl,toEl,ms,label,isResp){ return new Promise(function(res){ packet.textContent=label; packet.classList.toggle("vf-resp",!!isResp); packet.style.transition="none"; packet.style.left=pos(fromEl)+"px"; packet.style.opacity="1"; void packet.offsetWidth; packet.style.transition="left "+ms+"ms cubic-bezier(.45,.05,.35,1)"; packet.style.left=pos(toEl)+"px"; setTimeout(res,ms); }); } function addNode(role,label,color){ if(msgs.length===0){ graph.innerHTML=""; } var d=document.createElement("div"); d.className="vf-msg"; d.innerHTML='<span class="vf-dot" style="background:'+color+'">&
Related
相關文章

從前沿創新到產業落地:西門子將亮相2026世界人工智能大會
2026年世界人工智能大会(WAIC 2026)将于7月17日至20日在上海举行,西门子今年将再度亮相这一盛会,集中展示其在工业AI领域的前沿创新与多行业落地成果。面对工业AI从技术验证走向规模化应用的关键阶段,西门子将面向中国市场首发Eigen工程智能体(Eigen Engineering Agent),并首展工业AI编排软件Intelligence Center X,推动AI智能体真正融入工业生产的核心流程。

百度和騰訊,開始搶打工人的開機畫面
百度與騰訊正競逐AI辦公入口,百度推出通用智能體「百度搭子」,強調直接交付任務結果,減少中間步驟;騰訊則將AI整合進群聊,從溝通環節切入。這場卡位戰反映了兩家公司不同的生態策略,誰能將用戶一句話無縫轉化為成品,就有望掌握下個辦公時代的入場券。