VerifyLoop:面向 Agent 的雙向持續驗證與糾錯協議
從生成式回答到可追蹤、可回溯、可修正的 Agent 工作流
作者:Neo.K 機構:EveMissLab / 一言諾科技有限公司 版本:Open Protocol Draft v0.1 類型:Agent 方法論 / 開源協議白皮書 / Reliability Layer / Trace-based Verification 日期:2026 7月
摘要
大型語言模型與 Agent 系統正在從「單次回答器」轉向「多步工作流執行器」。在這個轉換中,可靠性問題不再只是最後答案是否正確,而是整個 Agent 軌跡是否可追蹤、可回溯、可驗證、可修正。一次錯誤的計畫、一個不存在的檢索結果、一個被誤讀的工具回傳、一個未被標記的不確定推論,都可能沿著多步流程擴散,最終形成看似流暢但不可被信任的輸出。
本文提出 VerifyLoop:一套面向 Agent 工作流的雙向持續驗證與糾錯協議。VerifyLoop 不假設模型一次生成即可靠,而要求 Agent 對每次輸出保留任務鏈、推理鏈、證據鏈、工具鏈與版本鏈;並在輸出完成後,從結論反向檢查其必要前提、證據來源、工具記錄與任務目標是否一致。若正向生成鏈與反向驗證鏈不一致,系統不應直接輸出結論,而應標記 gap,分類錯誤來源,進入下一輪修正,或輸出「目前不可判定」。
VerifyLoop 的核心循環是:
Generate → Trace → Forward Check → Backward Check → Gap Diagnose → Correct → Version
本文將原始「雙向持續驗證糾錯系統」改寫為公開開源協議:不主張消除所有幻覺,不主張得到終極真理,而是提供一個可被不同 Agent 框架接入的可靠性層。它的目標是降低不可追蹤錯誤,提高輸出可審計性,讓 Agent 不只是會生成答案,也能留下自己如何抵達答案、哪些地方被驗證、哪些地方仍有缺口。
近期研究已顯示,Agent 幻覺與一般單輪回答幻覺不同,因為多步流程中的錯誤可能出現在 Planning、Retrieval、Reasoning、Human-Interaction、Tool-Use 等不同階段,且步驟級定位仍具挑戰;AgentHallu benchmark 報告的最佳模型步驟定位準確率仍有限,工具使用幻覺尤其難定位。這正好說明 Agent 可靠性需要工作流級 trace、gap attribution 與可審計驗證層。
關鍵詞
Agent、VerifyLoop、雙向驗證、持續糾錯、AI 幻覺、Agent 幻覺、RAG、Claim Verification、Tool Receipt、Trace-based Verification、Gap Diagnosis、Human-in-the-loop、Agent Reliability、開源協議
0. 開源定位聲明
0.1 本文是協議,不是封閉產品
VerifyLoop 不是單一產品,也不是特定模型、特定框架或特定供應商的功能。它是一個可以被不同 Agent 系統實作的工作流可靠性協議。
它可以被接入:
RAG 系統;
研究助理 Agent;
程式碼 Agent;
法律與政策分析 Agent;
資料分析 Agent;
瀏覽器操作 Agent;
知識庫維護 Agent;
多 Agent 協作系統。
VerifyLoop 的核心不是「讓模型變聰明」,而是讓 Agent 的輸出過程變得:
可追蹤;
可回溯;
可驗證;
可修正;
可版本化;
可審計。
0.2 本文不主張
本文不主張:
VerifyLoop 可以消除所有幻覺;
雙向驗證等於絕對真理;
Agent 可以完全不需要人類審查;
反向驗證一定正確;
多 Agent 檢查一定比單 Agent 可靠;
所有任務都值得高深度驗證;
所有知識都可以被完全形式化。
0.3 本文主張
本文主張:
Agent 的輸出應被視為一條可檢查的工作流,而不是孤立文字;
可靠性不只來自更大的模型,也來自更好的驗證結構;
正向生成與反向驗證可以互相暴露盲點;
工具調用、檢索結果與推理聲稱應被分離記錄;
當鏈條不能補完時,系統應輸出 gap,而不是假裝確定;
知識庫與 Agent 輸出應支援版本化更新。
1. 問題:Agent 不是一次回答器,而是多步工作流
傳統聊天機器人多半被理解為:
Prompt → Answer
但 Agent 系統更接近:
Task → Plan → Retrieve → Tool Use → Reason → Act → Observe → Revise → Answer
在這種多步流程中,錯誤可能出現在任何一個階段:
計畫錯誤:Agent 設定了錯誤任務分解;
檢索錯誤:Agent 找到不相關或過期資料;
推理錯誤:Agent 從正確資料推出錯誤結論;
工具錯誤:Agent 聲稱使用工具,但工具未回傳該結果;
互動錯誤:Agent 誤解使用者意圖;
合成錯誤:Agent 把局部成立的資訊寫成全局結論。
AgentHallu 的分類也指出,Agent 幻覺需要按照工作流中的不同階段定位,而不是只看最終答案。其 benchmark 將幻覺分為 Planning、Retrieval、Reasoning、Human-Interaction、Tool-Use 等類型,並要求找出 responsible step 與 causal explanation。
因此,Agent reliability 的關鍵問題不再是:
答案對不對?
而是:
這個答案是怎麼來的?
每一步是否有紀錄?
每個 claim 是否有 evidence?
工具聲稱是否有 receipt?
結論是否超出證據?
錯誤若發生,能否定位在哪一步?
這就是 VerifyLoop 的問題起點。
2. 從 Output-based AI 到 Trace-based Agent
2.1 Output-based AI 的限制
Output-based AI 只檢查最後輸出:
最後答案是否看起來合理;
語氣是否流暢;
格式是否符合需求;
引用是否存在;
結論是否有說服力。
但這種檢查很容易被流暢性欺騙。
一個答案可以語氣穩定、格式完整、推理看似自然,卻在中間某一步引用了錯誤資料、漏掉時間限定、虛構工具結果,或把推測寫成事實。
2.2 Trace-based Agent 的核心
Trace-based Agent 不只看最後答案,而是要求 Agent 留下工作軌跡:
Task Trace:任務如何被理解;
Plan Trace:任務如何被拆解;
Evidence Trace:使用了哪些資料;
Tool Trace:調用了哪些工具,工具實際回傳什麼;
Claim Trace:最後輸出包含哪些可驗證聲稱;
Reasoning Trace:哪些推論是由哪些資料支持;
Correction Trace:哪些地方被修正;
Version Trace:不同版本之間差異在哪裡。
這些 trace 不一定要暴露模型私有思維鏈。VerifyLoop 不要求公開模型內部 chain-of-thought。它要求的是可審計工作紀錄,包括任務分解、引用、工具回傳、claim/evidence 對應、gap 報告與版本差異。
2.3 Trace 不是裝飾,而是可靠性基礎
沒有 trace,就無法知道錯在哪裡。
有 trace,才能做到:
錯誤定位;
局部修正;
責任分配;
版本比較;
自動回歸測試;
人類審查;
知識庫更新。
因此,VerifyLoop 的第一原則是:
Agent 的輸出必須從「答案」升級為「答案 + 可審計軌跡」。
3. VerifyLoop 協議總覽
VerifyLoop 的基本循環如下:
1. Generate:生成初始答案或行動計畫
2. Trace:記錄任務、計畫、資料、工具、推理與輸出
3. Forward Check:檢查正向生成鏈是否連貫
4. Backward Check:從結論反推必要證據與前提
5. Gap Diagnose:定位不一致、跳步、缺證據或工具錯誤
6. Correct:自動修正、請求補資料、降級結論或交給人類
7. Version:保存修正後版本與差異
它可以被簡化為:
Answer is not final until it survives its own reverse check.
中文可表述為:
答案不能只被生成,還必須能從結論回扣到任務、證據與工具紀錄。
4. 正向鏈:Agent 如何產生答案
正向鏈描述 Agent 如何從任務走向輸出。
基本結構:
User Task
→ Task Interpretation
→ Plan
→ Retrieval / Tool Use
→ Intermediate Notes
→ Reasoning / Synthesis
→ Final Answer
每一步都應產生可紀錄節點。
4.1 正向鏈節點
forward_chain:
- node_id: S0
type: user_task
content: "使用者原始需求"
- node_id: S1
type: task_interpretation
content: "Agent 對任務的理解"
- node_id: S2
type: plan
content: "要查什麼、要算什麼、要調用什麼工具"
- node_id: S3
type: retrieval
content: "檢索到的資料與來源"
- node_id: S4
type: tool_call
content: "工具調用與回傳"
- node_id: S5
type: synthesis
content: "由資料到結論的合成"
- node_id: S6
type: final_answer
content: "最後輸出"
4.2 正向檢查項目
正向檢查不是判斷答案最終真假,而是檢查流程是否基本連貫:
任務理解是否偏離使用者需求;
計畫是否覆蓋任務;
檢索是否真的支撐計畫;
工具回傳是否被正確讀取;
推理是否跳過必要中間步;
最後答案是否超出前面資料。
5. 反向鏈:答案需要什麼才能成立
反向鏈從最後答案出發,追問:
如果這個答案成立,它需要哪些前提?
如果這個 claim 成立,它需要哪些 evidence?
如果 Agent 聲稱用了工具,工具 receipt 是否存在?
如果結論包含比較,是否有完整比較集合?
如果結論包含時間判斷,時間限定是否明確?
反向鏈基本結構:
Final Answer
→ Claim Decomposition
→ Required Evidence
→ Evidence Availability
→ Tool Receipt Check
→ Task Alignment Check
→ Confidence / Gap Report
5.1 Claim Decomposition
最終答案必須拆成可驗證 claim。
例如:
「埃菲爾鐵塔建於 1889 年,高 324 米,曾是世界最高建築。」
可拆成:
claims:
- claim_id: C1
text: "埃菲爾鐵塔建於 1889 年"
type: factual
- claim_id: C2
text: "埃菲爾鐵塔高度為 324 米"
type: factual
- claim_id: C3
text: "埃菲爾鐵塔曾是世界最高建築"
type: historical_comparison
若答案寫成:
「埃菲爾鐵塔是世界最高建築」
反向鏈會追問:
現在最高?
歷史上曾經最高?
比較集合是所有建築,還是當時建築?
資料時間點是何時?
這就是反向驗證的價值。
5.2 Evidence Requirement
每個 claim 都應標明需要哪種 evidence:
evidence_requirements:
C1:
required: ["historical_source"]
C2:
required: ["official_measurement_or_reliable_reference"]
C3:
required: ["historical_height_ranking", "time_range"]
5.3 Tool Receipt Check
如果 Agent 聲稱「我查詢了資料庫」「我讀取了檔案」「我執行了程式」,系統應檢查工具紀錄是否存在。
近年的 tool receipt 研究提出,Agent 可對工具執行產生不可由 LLM 偽造的簽名收據,再把 LLM 的聲稱與工具收據交叉檢查,以即時偵測虛構工具調用、錯報數量或把推論寫成事實等問題。
VerifyLoop 可將這個方向吸收為:
No tool claim without tool receipt.
中文:
沒有工具收據,就不能聲稱工具已經支持該結論。
6. 雙向一致性:Forward Chain 與 Backward Chain 的對接
VerifyLoop 不要求正向鏈與反向鏈字面相同,而要求它們在關鍵結構上相容。
6.1 一致性檢查項目
Claim 是否能在正向鏈中找到來源;
Evidence 是否真的支持 claim;
Tool receipt 是否支持 Agent 的工具聲稱;
反向鏈要求的前提是否在正向鏈中出現;
最後答案是否引入了正向鏈沒有的外部假設;
是否存在循環論證;
是否存在結論強度超出證據強度。
6.2 一致性分數
VerifyLoop 可輸出一個非絕對的 verification score:
verification_score:
overall: 0.82
task_alignment: 0.95
claim_support: 0.80
evidence_quality: 0.76
tool_receipt_integrity: 1.00
contradiction_check: 0.70
uncertainty_handling: 0.85
這個分數不是「真理分數」,而是「目前 trace 下的可支持程度」。
7. Gap 三分法
當正向鏈與反向鏈不一致時,VerifyLoop 不應只說「錯了」,而應輸出 gap 類型。
7.1 Technical Gap
技術性斷鏈:
資料存在;
規則存在;
工具可用;
但 Agent 沒有查到、沒展開、沒引用、沒算完,或推理跳太快。
處理方式:
加深檢索;
展開中間步;
重新調用工具;
補充引理;
增加 claim-level verification;
生成更詳細版本。
7.2 Systemic Gap
系統性斷鏈:
目前知識庫、工具、規則或任務設定不足以支持結論。
例子:
缺少即時資料;
缺少專業資料庫;
任務需要法律判斷但無司法管轄區;
任務需要實驗結果但目前沒有實驗;
Agent 缺少可執行工具。
處理方式:
請求新工具;
請求人類提供資料;
降低結論強度;
改成假設性回答;
輸出需要外部驗證。
7.3 Undecidable Gap
不可判定斷鏈:
在目前資料、工具與規則下,不能可靠回答。
處理方式:
明確輸出不確定;
列出需要哪些資料才能回答;
避免假裝知道;
避免用流暢語氣掩蓋不可判定。
這是 VerifyLoop 的重要倫理點:
不可判定不是失敗。把不可判定說成確定,才是失敗。
8. 驗證深度 D
VerifyLoop 使用「驗證深度」表示不同任務需要不同程度的檢查。
8.1 深度分級
D0:直接回答,不做額外驗證。
D1:基本自我一致性檢查。
D2:檢索佐證,補來源。
D3:拆成原子 claim,逐條驗證。
D4:多 Agent 或多路徑交叉驗證。
D5:工具 receipt + 版本紀錄 + 人類審查。
8.2 深度選擇原則
低風險、日常任務:D0-D1;
一般資訊查詢:D2;
研究、政策、法律、金融、醫療、工程:D3-D5;
高風險自動化執行:至少 D4,最好 D5;
不可逆行動:必須人類審查。
8.3 驗證深度不是越高越好
高驗證深度需要成本:
更多 token;
更多工具調用;
更多延遲;
更多工程複雜度;
更高假陽性可能;
更多人類審查成本。
因此 VerifyLoop 不追求所有任務都最大驗證,而是追求:
任務風險 × 證據需求 × 成本限制
之間的動態平衡。
9. 系統模組設計
VerifyLoop 可拆成以下模組。
9.1 Trace Logger
紀錄整個 Agent 工作流。
trace:
trace_id: "vl_2026_0001"
task_id: "task_001"
agent_id: "agent_research_assistant"
timestamp: "2026-07-01T00:00:00+08:00"
steps:
- step_id: S0
type: user_task
content: "..."
- step_id: S1
type: plan
content: "..."
- step_id: S2
type: retrieval
source_refs: ["src_001", "src_002"]
- step_id: S3
type: tool_call
tool_receipt_id: "receipt_001"
- step_id: S4
type: synthesis
content: "..."
9.2 Claim Decomposer
把輸出拆成可驗證聲稱。
claim:
claim_id: C001
text: "..."
type: factual | comparative | causal | predictive | normative | speculative
required_evidence:
- source
- tool_receipt
- calculation
risk_level: low | medium | high
9.3 Evidence Retriever
為每個 claim 尋找 evidence。
evidence:
evidence_id: E001
claim_id: C001
source_type: document | web | database | tool_output | user_provided
content_summary: "..."
freshness: "current | stale | unknown"
supports_claim: true
confidence: 0.78
9.4 Tool Receipt Verifier
檢查工具聲稱是否被真實工具紀錄支持。
tool_receipt:
receipt_id: R001
tool_name: "calculator"
input_hash: "..."
output_hash: "..."
timestamp: "..."
signed: true
verified: true
9.5 Backward Verifier
從 claim 反推其必要支持條件。
backward_check:
claim_id: C001
required_conditions:
- "需要來源 A"
- "需要時間限定"
- "需要比較集合"
matched_conditions:
- "來源 A 已存在"
missing_conditions:
- "缺少比較集合"
status: partial
9.6 Gap Classifier
分類 gap。
gap:
gap_id: G001
claim_id: C001
location: "final_answer.paragraph_2"
type: technical | systemic | undecidable
severity: low | medium | high
explanation: "缺少支持該比較結論的完整排名資料"
recommended_action: "retrieve_additional_evidence"
9.7 Correction Engine
根據 gap 類型採取修正。
Technical Gap → 補資料、補步驟、重跑工具。
Systemic Gap → 請求人類、要求新工具、降低結論。
Undecidable Gap → 明確輸出不確定。
9.8 Version Manager
保存版本差異。
version:
version_id: V002
parent_version: V001
changes:
- "將『是世界最高建築』改為『1889-1930 年曾為世界最高建築』"
- "新增哈里發塔比較資料"
verification_score_before: 0.42
verification_score_after: 0.91
10. VerifyLoop JSON 規格草案
10.1 最小輸出格式
{
"answer": "...",
"verifyloop": {
"trace_id": "vl_001",
"verification_depth": "D3",
"claims": [],
"evidence": [],
"tool_receipts": [],
"gaps": [],
"verification_score": {
"overall": 0.0
},
"status": "verified | partial | corrected | uncertain | failed"
}
}
10.2 Gap Report 格式
{
"gap_id": "G001",
"type": "technical",
"severity": "medium",
"location": {
"claim_id": "C003",
"answer_span": "paragraph_2_sentence_1"
},
"description": "The claim requires a time-bounded comparison but no comparison set was retrieved.",
"required_action": "retrieve_comparison_data",
"auto_correctable": true
}
10.3 Verification Report 格式
{
"trace_id": "vl_001",
"status": "corrected",
"depth": "D3",
"summary": "3 claims verified, 1 corrected, 0 unresolved.",
"claim_results": [
{
"claim_id": "C001",
"status": "supported",
"confidence": 0.92
},
{
"claim_id": "C002",
"status": "corrected",
"confidence": 0.88,
"correction": "Added historical time range."
}
],
"remaining_gaps": []
}
11. 典型工作流
11.1 RAG 回答驗證
1. 使用者提問;
2. Agent 檢索資料;
3. Agent 生成答案;
4. VerifyLoop 拆解 claim;
5. 每個 claim 對應 retrieval evidence;
6. 若 claim 無 evidence,標記 gap;
7. 若 evidence 矛盾,要求重新生成;
8. 輸出答案 + verification report。
MARCH 這類多 Agent 自檢框架已開始採用 claim-level decomposition 與資訊隔離檢查:Solver 先生成答案,Proposer 將回答拆成可驗證原子命題,Checker 在不看原始答案的情況下對 retrieved evidence 驗證,以降低 self-confirmation bias。VerifyLoop 可吸收這個精神,但把它一般化為開源 Agent 協議。
11.2 工具型 Agent 驗證
1. Agent 宣稱已查詢資料庫;
2. VerifyLoop 檢查 tool receipt;
3. 若沒有 receipt,禁止把結果寫成工具支持事實;
4. 若 receipt 存在,檢查輸出數值是否被正確引用;
5. 若 Agent 把推論寫成工具結果,標記 tool-use hallucination。
11.3 研究助理 Agent
1. 輸入研究問題;
2. Agent 建立初步文獻地圖;
3. VerifyLoop 將每個研究主張拆成 claim;
4. 對每個 claim 檢查引用、年份、研究限制;
5. 對過時或未驗證 claim 加上 uncertainty label;
6. 生成可審計研究摘要。
11.4 知識庫批量更新
1. 將既有文件拆成段落與 claim;
2. 為每個 claim 建立 evidence requirement;
3. 批量檢索或讀取來源;
4. 標記 supported / contradicted / stale / uncertain;
5. 自動提出修正草稿;
6. 保存版本差異;
7. 人類審查高風險修改。
12. 與既有研究的關係
12.1 Agent 幻覺歸因
AgentHallu 的研究方向說明,Agent 幻覺不應只在最終輸出層面處理,而應定位到多步軌跡中的 responsible step。VerifyLoop 的 Trace Logger、Gap Classifier 與 Backward Verifier 正是面向這類 step-level attribution 的協議化實作。
12.2 多 Agent 自檢
MARCH 顯示,多 Agent 分工、自我檢查與資訊隔離可以降低 verifier 的 confirmation bias。VerifyLoop 不限定一定要多 Agent,但在 D4 以上的驗證深度中,建議使用多 Agent 或多路徑檢查。
12.3 Tool Receipt
NabaOS / tool receipt 方向指出,互動式 Agent 不一定適合用高成本密碼學證明;較輕量的 tool execution receipt 加 claim cross-check 可能更實用。VerifyLoop 將 tool receipt 視為 Tool Trace 的關鍵證據層。
12.4 Agent 幻覺 Survey
LLM-based agents 的幻覺 survey 已整理出 agent workflow 中不同階段可能出現的幻覺與對應緩解方法,並指出多步代理系統的幻覺偵測與緩解是重要研究方向。VerifyLoop 可被視為一種 workflow-level mitigation protocol。
12.5 Embodied Agent 與不可行任務
具身 Agent 的幻覺研究也顯示,當任務與環境不一致時,Agent 可能仍嘗試執行不可能任務,而不是明確指出不可行。VerifyLoop 的 Undecidable / Systemic Gap 分類可用來要求 Agent 在任務不可行時輸出邊界,而不是繼續行動。
13. 開源實作路線
13.1 Repository 建議結構
verifyloop-agent/
README.md
LICENSE
docs/
protocol.md
schemas.md
examples.md
schemas/
trace.schema.json
claim.schema.json
evidence.schema.json
tool_receipt.schema.json
gap_report.schema.json
verification_report.schema.json
verifyloop/
trace_logger.py
claim_decomposer.py
evidence_checker.py
backward_verifier.py
gap_classifier.py
correction_engine.py
version_manager.py
examples/
rag_verification/
tool_receipt_check/
knowledge_base_update/
research_assistant/
tests/
test_gap_classifier.py
test_claim_decomposer.py
test_receipt_verifier.py
13.2 MVP 模組
第一版不需要做太大。MVP 只需要:
輸入:Agent final answer + retrieval sources + optional tool logs
輸出:
1. claim list
2. evidence mapping
3. unsupported claims
4. contradiction warnings
5. gap report
6. corrected draft
13.3 Minimal API
from verifyloop import VerifyLoop
vl = VerifyLoop(depth="D3")
report = vl.verify(
task=user_task,
answer=agent_answer,
sources=retrieved_sources,
tool_logs=tool_logs
)
print(report.status)
print(report.gaps)
print(report.corrected_answer)
13.4 Integration Target
LangChain / LangGraph;
LlamaIndex;
AutoGen;
CrewAI;
OpenAI-compatible tool-calling agents;
自製本地 Agent;
知識庫批量處理 pipeline。
14. 限制
14.1 VerifyLoop 不能保證終極正確
VerifyLoop 只能提高可追蹤性與可驗證性,不能保證所有結論絕對正確。
原因包括:
知識庫可能錯;
資料可能過時;
檢索可能漏掉關鍵來源;
反向驗證器也可能推理錯;
多 Agent 可能共享同一偏差;
工具 receipt 只能證明工具回傳,不等於工具回傳本身正確;
高風險領域仍需專家審查。
14.2 Trace 不是私有思維鏈
VerifyLoop 不要求暴露模型私有 chain-of-thought。
它要求的是:
任務紀錄;
工具紀錄;
資料紀錄;
claim/evidence 對應;
gap 報告;
版本差異。
這些是可審計工作產物,不是模型內部思考逐字稿。
14.3 高驗證深度有成本
VerifyLoop 必須允許不同模式:
Fast Mode:快速、不完全驗證;
Standard Mode:基本檢索與 claim check;
Strict Mode:逐 claim 驗證與 tool receipt;
Audit Mode:多 Agent + 人類審查 + 版本化。
15. 結論:Agent 的下一步不是更會生成,而是更會驗證
生成能力已經足夠強。問題是:生成之後,誰來檢查?如何檢查?錯在哪裡?怎麼修正?如何避免同一錯誤在下一輪再次出現?
VerifyLoop 的答案是:
不要只看答案。
看 trace。
不要只做正向生成。
做反向驗證。
不要只說錯了。
定位 gap。
不要只修一次。
保留版本,持續修正。
不要假裝確定。
在不可判定時輸出不可判定。
VerifyLoop 的核心並不是讓 Agent 永不犯錯,而是讓錯誤變得可見、可定位、可修正、可累積學習。
Agent 的下一階段,不只是更強的生成,而是更可靠的工作流。
一句話總結:
VerifyLoop 是一套開源 Agent 驗證協議:它要求 Agent 不只生成答案,還要留下正向生成鏈、反向驗證鏈、證據紀錄、工具紀錄與 gap 診斷,並在不一致時進入持續修正循環。
附錄 A:術語表
| 術語 | 定義 | | ------------------ | ------------------- | | Forward Chain | Agent 從任務到答案的生成軌跡 | | Backward Chain | 從答案反推必要證據與前提的驗證軌跡 | | Trace | 任務、計畫、工具、資料、推理與版本紀錄 | | Claim | 最終答案中的可驗證聲稱 | | Evidence | 支持或反駁 claim 的資料 | | Tool Receipt | 工具執行紀錄或簽名收據 | | Gap | 正向鏈與反向鏈不一致或缺失之處 | | Technical Gap | 資料或規則存在,但未展開或未查到 | | Systemic Gap | 目前工具、資料或規則不足 | | Undecidable Gap | 在目前條件下不可判定 | | Verification Depth | 驗證深度,從 D0 到 D5 | | Version Trace | 修正前後版本差異紀錄 |
附錄 B:狀態碼
VERIFIED:所有主要 claim 已被支持。
PARTIAL:部分 claim 被支持,部分仍有 gap。
CORRECTED:原答案已被修正。
UNCERTAIN:目前資料不足,無法可靠回答。
FAILED:驗證失敗,答案不應輸出。
HUMAN_REVIEW_REQUIRED:需要人類審查。
附錄 C:最小 Gap 分類器邏輯
def classify_gap(claim, evidence, tool_receipts, task_context):
if claim.requires_tool and not tool_receipts.exists_for(claim):
return "technical", "Missing tool receipt"
if claim.requires_current_data and not evidence.has_current_source():
return "systemic", "Current data unavailable"
if evidence.contradicts(claim):
return "technical", "Contradicted by retrieved evidence"
if claim.is_high_risk and evidence.is_insufficient():
return "undecidable", "Insufficient evidence for high-risk claim"
if claim.exceeds_task_scope(task_context):
return "technical", "Conclusion exceeds task scope"
return "supported", "No obvious gap"
附錄 D:README 短版
# VerifyLoop Agent Protocol
VerifyLoop is an open protocol for trace-based verification of LLM agents.
It turns an agent answer into:
- forward chain
- backward verification chain
- claim list
- evidence map
- tool receipt check
- gap report
- corrected version
Core loop:
Generate → Trace → Forward Check → Backward Check → Gap Diagnose → Correct → Version
VerifyLoop does not guarantee absolute truth.
It improves auditability, error localization, and iterative correction.
附錄 E:公開版邊界聲明
本文由內部理論「萬物雙向持續驗證糾錯系統」降維改寫而來。原始版本包含更強的知識演化、本體論與算力深度敘述;公開版刻意將其改寫為 Agent 協議與開源方法論。本文不主張真理可被完全驗證,而主張 Agent 的輸出應具有可審計軌跡、雙向檢查與持續修正能力。
全文完。