評(píng):我用它造了一個(gè) AI 出題工具)
你好我是 Grant Liu獨(dú)立開發(fā)者關(guān)注 AI 應(yīng)用與效率工具。這篇文章是我用 Seed Evolving 做 AI 出題工具的真實(shí)測(cè)評(píng)所有數(shù)據(jù)都來自實(shí)際運(yùn)行結(jié)果。先認(rèn)識(shí)一下這個(gè)模型有人可能還不知道它。Seed-Evolving豆包的一張「模型卡片」永遠(yuǎn)在更新。它面向 Coding 與 Agent 場(chǎng)景多模態(tài)輸入文本/圖片/視頻、深度思考、GUI Agent、視覺理解能做復(fù)雜任務(wù)編排、長(zhǎng)程規(guī)劃、代碼生成和工具調(diào)用。一個(gè) Model IDdoubao-seed-evolving到底升級(jí)自動(dòng)生效不用管版本。8 月 3 日它做了第二次升級(jí)方向很明確Coding復(fù)雜倉(cāng)庫(kù)修復(fù)、跨文件修改、真實(shí)功能開發(fā)、長(zhǎng)程任務(wù)執(zhí)行更穩(wěn)定Agent信息檢索、缺失信息召回、搜索結(jié)果整合更好多工具并行調(diào)用更穩(wěn)幻覺搜索幻覺、工具調(diào)用幻覺、抗誤導(dǎo)、狀態(tài)幻覺都明顯改善接入也不麻煩。我直接買了火山的Agent Plan訂閱來測(cè)一個(gè)訂閱包覆蓋了 Seed 系列加 GLM、MiniMax、DeepSeek、Kimi 這些國(guó)內(nèi)主流模型可按需自由切換也可以開 Auto 模式讓系統(tǒng)自動(dòng)調(diào)度。文章里的所有實(shí)測(cè)都是在這個(gè)訂閱下跑的。官方介紹寫得很滿。但深度測(cè)評(píng)不能只信官方于是我給自己出了道題怎么才能真的測(cè)出這三條到底行不行。從怎么測(cè)想到教育場(chǎng)景一開始沒什么好辦法。跑分榜單是別人測(cè)的參數(shù)對(duì)比是紙面的我要的是真實(shí)場(chǎng)景里的真實(shí)表現(xiàn)。后來想明白一個(gè)邏輯讀取文檔然后根據(jù)文檔找資料。這是 Agent 最常見的干活方式也是最容易露餡的方式。順著這個(gè)思路我想到一個(gè)項(xiàng)目EXAM-FORGE本地優(yōu)先的 AI 出題工具。完整流程長(zhǎng)這樣導(dǎo)入教材 PDF → 四級(jí)目錄提取 Chroma 向量索引Agent 檢索 → 按題型/難度配比生成數(shù)學(xué)試卷Coding 工程 → 三層驗(yàn)證 失敗自動(dòng)修復(fù)幻覺控制 → 輸出學(xué)生版/教師版/驗(yàn)證報(bào)告選教育場(chǎng)景不是隨手挑的。做之前我在 GitHub 上翻了一圈AI 出題器不算少隔三差五就有人發(fā)一個(gè)新的Hacker News 上也時(shí)不時(shí)能看到同類項(xiàng)目。大家都在做說明這個(gè)需求是真的。但翻下來有個(gè)發(fā)現(xiàn)都在做生成沒有一家做驗(yàn)證。AI 出題最大的問題從來不是出不出得來而是出的題答案敢不敢信。網(wǎng)上甚至有人專門發(fā)帖問如何保障 AI 生成試卷的內(nèi)容準(zhǔn)確性。所以我想做點(diǎn)不一樣的讓 AI 出題然后讓代碼驗(yàn)證它。AI 出題是幻覺控制最難的一類考場(chǎng)。為什么難具體來說數(shù)學(xué)沒有差不多答案對(duì)就是對(duì)、錯(cuò)就是錯(cuò)幻覺零容忍編錯(cuò)題是模型的舒適區(qū)編一道看起來對(duì)的錯(cuò)題恰恰是它最擅長(zhǎng)的幻覺能量化對(duì)錯(cuò)能用代碼驗(yàn)證SymPy 符號(hào)等價(jià)幻覺第一次有了能測(cè)量的數(shù)字跑分測(cè)不出幻覺。把模型扔進(jìn)教育場(chǎng)景錯(cuò)一題就是誤人子弟。這里是幻覺最容易現(xiàn)形的地方。認(rèn)識(shí)一下 EXAM-FORGE講測(cè)評(píng)之前先讓你知道我在測(cè)什么。EXAM-FORGE 是一個(gè)本地優(yōu)先的 AI 出題鍛造器。導(dǎo)入本地教材 PDF它自己學(xué)習(xí)目錄和內(nèi)容按需生成數(shù)學(xué)試卷并且用沙箱執(zhí)行驗(yàn)證代碼加 SymPy 符號(hào)校驗(yàn)給每道題一個(gè)可信的答案驗(yàn)證。三種使用方式方式命令適用場(chǎng)景Web UI默認(rèn)exam-forge教材管理、可視化出題、試卷預(yù)覽與歷史終端 TUIexam-forge tui純命令行環(huán)境的圖形化操作命令行 CLIexam-forge generate ...腳本化、批量出題核心流程添加教材(PDF) → 學(xué)習(xí)教材(解析/分塊/索引/目錄) → 選擇范圍與配比 → 生成并驗(yàn)證 → 預(yù)覽/下載/歷史它主要做這幾件事教材可以來自本地路徑、HTTP 鏈接、GitHub 倉(cāng)庫(kù)簡(jiǎn)寫或網(wǎng)頁(yè)上傳。進(jìn)來之后 PyMuPDF 抽文本按章/節(jié)/段落切塊并帶頁(yè)碼建 Chroma 本地向量索引再做四級(jí)目錄提取。出題時(shí)支持計(jì)算/填空/選擇/開放四種題型open 應(yīng)用題基礎(chǔ)/中等/提高三檔難度easy/medium/hard配比自動(dòng)歸一化。生成后走三層驗(yàn)證錯(cuò)題帶精確錯(cuò)誤信息回傳模型自動(dòng)修復(fù)最多修 3 次。每次生成留一個(gè)唯一 ID 入庫(kù)隨時(shí)切換、預(yù)覽、刪除。教材、解析、索引、歷史全在本機(jī)不上傳任何第三方服務(wù)。這個(gè)工具把模型出題這個(gè)高幻覺動(dòng)作和代碼驗(yàn)證這個(gè)零容忍動(dòng)作綁在一起天生就是幻覺控制的壓力測(cè)試場(chǎng)。怎么測(cè)先定四條規(guī)矩深度測(cè)評(píng)最怕憑感覺。我先給自己定了四條規(guī)矩選場(chǎng)景、設(shè)驗(yàn)證、定指標(biāo)、建工程一條都不能少。選場(chǎng)景AI 出題幻覺高發(fā)又能量化設(shè)驗(yàn)證三層驗(yàn)證沙箱執(zhí)行、SymPy 符號(hào)等價(jià)、LLM-as-judge、RAG 溯源定指標(biāo)一次通過率、修復(fù)輪次、狀態(tài)標(biāo)簽分布、置信度吻合率建工程71 項(xiàng)自動(dòng)化測(cè)試兜底跑分看上限這個(gè)看底線。實(shí)測(cè)一幻覺控制看試卷的真實(shí)記錄先看三層驗(yàn)證是怎么搭的① 沙箱執(zhí)行AST 攔截危險(xiǎn)調(diào)用 CPU/內(nèi)存限制 SymPy 符號(hào)等價(jià) → 答案對(duì)不對(duì)代碼跑一遍就知道 ② LLM-as-judge開放題/證明題邏輯評(píng)審 → 標(biāo)注置信度不假裝已驗(yàn)證 ③ RAG 教材溯源章節(jié)/印刷頁(yè)碼 → 每個(gè)知識(shí)點(diǎn)都能回到教材第幾頁(yè)實(shí)際生成的試卷驗(yàn)證報(bào)告長(zhǎng)這樣真實(shí)產(chǎn)物我最想說的是第 1 題那個(gè)嘗試 2 次。第一次生成的驗(yàn)證代碼跑出來和答案對(duì)不上它帶著精確的錯(cuò)誤信息回傳模型自動(dòng)修復(fù)后第二次通過。這就是失敗自動(dòng)修復(fù)循環(huán)最多重試 3 次每次把stderr原樣回傳。開放題它也守規(guī)矩。邏輯評(píng)審?fù)ㄟ^就標(biāo)已檢查待復(fù)核“不承諾 100% 正確驗(yàn)證沒通過就標(biāo)?”不刪題、不掩蓋?;糜X控制的真相不是模型自覺是工程強(qiáng)制驗(yàn)證。實(shí)測(cè)二Coding 工程看生成過程的全記錄從零搭這個(gè)工具的過程就是 Coding 工程能力最誠(chéng)實(shí)的展示。我挑了生成過程里幾段最典型的片段。先說開發(fā)工具。這次 Vibe Coding 用的是Trae Work先切到 Work 模式讓它輸出方案分析報(bào)告對(duì)本地優(yōu)先的 AI 出題鍛造器從產(chǎn)品定位、技術(shù)架構(gòu)、驗(yàn)證閉環(huán)、資源依賴、市場(chǎng)格局與落地路徑六個(gè)維度做獨(dú)立評(píng)審識(shí)別關(guān)鍵風(fēng)險(xiǎn)并給出可執(zhí)行的修訂建議。方案定了再切到 Code 模式開始開發(fā)。有意思的是這個(gè)工具不是一次成型是被用出來的。最開始只是個(gè)命令行 CLI用了幾次發(fā)現(xiàn)不方便。我就在對(duì)話里提了一句能不能做成類似 opencode 那種終端界面的工具Trae Work 直接給了方案于是有了 TUI 版本。到這里工具已經(jīng)有 CLI 和 TUI 兩種用法了。但 TUI 用著用著問題又來了界面不夠美觀數(shù)學(xué)公式渲染也不對(duì)。那就繼續(xù)提需求最終迭代成了現(xiàn)在的 Web UI教材庫(kù)、出題參數(shù)、試卷預(yù)覽一個(gè)頁(yè)面全搞定。從 CLI 到 TUI 再到 Web UI三輪演進(jìn)沒有一次是我把代碼寫好了讓它改全是它根據(jù)我的使用反饋?zhàn)约旱_@大概就是 Coding 工程能力在真實(shí)項(xiàng)目里的樣子。還有一件讓我印象深的事。開發(fā)到后期我讓它整體復(fù)查一遍自己的代碼它真的找出了問題章節(jié)目錄提取在某些教材上會(huì)失敗數(shù)學(xué)公式在特定寫法下渲染錯(cuò)亂。它先是定位根因然后給出修復(fù)方案改完再回歸驗(yàn)證。全程不需要我告訴它哪里有問題它自己把代碼從頭到尾過了一遍把坑填了。項(xiàng)目落地的時(shí)候71 項(xiàng) pytest 測(cè)試全部通過是這個(gè)過程最后的質(zhì)量證明。實(shí)測(cè)三Agent 檢索教材變成知識(shí)庫(kù)出題不能瞎出得從教材里來。這部分考驗(yàn) Agent 檢索四級(jí)目錄提取Markdown 標(biāo)題、PDF 書簽、LLM 解析目錄頁(yè)、文本啟發(fā)式層層兜底Chroma 本地向量索引教材內(nèi)容切塊建索引按章節(jié)或關(guān)鍵詞范圍檢索RAG 溯源每個(gè)知識(shí)點(diǎn)都能回到教材的章節(jié)和印刷頁(yè)碼PDF 頁(yè)碼和印刷頁(yè)碼的偏移還能自動(dòng)估算換算它記得每個(gè)知識(shí)點(diǎn)來自教材哪一章哪一頁(yè)頁(yè)碼還能自動(dòng)換算。Agent 檢索的實(shí)戰(zhàn)形態(tài)大概就是這樣。量化匯總能力指標(biāo)結(jié)果幻覺控制出題一次通過率2 份試卷全部 ?10 題卷全過修復(fù)循環(huán)錯(cuò)誤回傳自動(dòng)修復(fù)最多 3 次誠(chéng)實(shí)標(biāo)注○/△/? 不掩蓋Coding 工程測(cè)試通過率71/71100%產(chǎn)品規(guī)模20 個(gè)模塊 / 三端界面自我審計(jì)復(fù)查自己代碼修復(fù)目錄提取與公式渲染 BugAgent 檢索目錄提取四級(jí)策略兜底R(shí)AG 溯源知識(shí)點(diǎn) → 章節(jié)/印刷頁(yè)碼結(jié)論幻覺控制的終極形態(tài)不是模型自覺是工程強(qiáng)制驗(yàn)證。我不信 AI 說的話我信代碼跑出來的結(jié)果。這套思路可以復(fù)制到任何AI 輸出必須可信的場(chǎng)景合同審核、醫(yī)療建議、財(cái)務(wù)數(shù)據(jù)。給 AI 的每個(gè)結(jié)論配一個(gè)驗(yàn)證器比相信它這次不會(huì)錯(cuò)可靠得多。8 月 3 日的升級(jí)不是虛的幻覺控制確實(shí)改善了。但真正讓我放心的是驗(yàn)證閉環(huán)本身。而且這個(gè)思路越來越重要。最近 Agent 相關(guān)的工具迭代明顯變快Claude Code 開始默認(rèn)自動(dòng)模式各種 Agent 瀏覽器、自動(dòng)化 Agent 陸續(xù)出來。當(dāng) AI 從聊天變成干活輸出的可信度就不再是加分項(xiàng)而是底線。誰(shuí)先把驗(yàn)證做進(jìn)流程里誰(shuí)就先拿到這張入場(chǎng)券。結(jié)尾項(xiàng)目已開源github.com/chnjames/exam-forge本地安裝即可用pipinstall-e.exportARK_API_KEY*** exam-forge# 啟動(dòng) Web UI也可在界面里操作# 命令行批量出題先添加教材再學(xué)習(xí)再生成exam-forge libraryadd./教材.pdf--title七年級(jí)數(shù)學(xué)exam-forge learn1exam-forge generate1-n10--scope第一章 有理數(shù)家長(zhǎng)、老師本地教材定制化試卷答案可驗(yàn)證開發(fā)者三層驗(yàn)證加沙箱安全是AI 輸出必須可信的參考實(shí)現(xiàn)Agent 玩家檢索、生成、驗(yàn)證、修復(fù)是一條可復(fù)用的流水線這套測(cè)評(píng)方法本身也可復(fù)用任何AI 生成但必須可信的場(chǎng)景都能用場(chǎng)景選擇 驗(yàn)證設(shè)計(jì) 指標(biāo)量化這個(gè)框架。