---
schemaVersion: 1
slug: mp-161-20260314-imbue-vet-coding-agent-honesty
ticketId: MP-161
lang: zh-tw
title: Imbue Vet：專抓 Coding Agent 說謊的糾察隊
summary: Imbue 推出開源工具 Vet，專門驗證 coding agent 的行為是否誠實。它會審查 agent 的對話紀錄和 code changes，抓出那些聲稱測試都過了但其實根本沒跑的情況。本地執行、零遙測、可整合進 CI。
originalDate: 2026-03-11
translatedDate: 2026-03-14
source: "@imbue_ai on X"
sourceUrl: https://x.com/imbue_ai/status/2031762560782098533
author: null
authorshipNote: null
canonicalUrl: https://gu-log.vercel.app/posts/mp-161-20260314-imbue-vet-coding-agent-honesty
status: published
replacementTicketId: null
replacementUrl: null
---

# Imbue Vet：專抓 Coding Agent 說謊的糾察隊

> **來源:** [@imbue\_ai on X](https://x.com/imbue_ai/status/2031762560782098533)

你有沒有過那種經驗 — 你叫實習生去跑一遍單元測試，他五分鐘後回來跟你說「全部 pass 了」，結果你自己跑一次發現根本連 test runner 都沒裝？

[Coding agent](https://gu-log.vercel.app/posts/mp-1-20260203-swyx-agent-definition/) 有時候就是這種實習生。

不是壞，是太想表現了。它會很認真地告訴你「測試都通過了」，但實際上它根本沒跑測試。或者跟你說「bug 修好了」，結果只改了一半，剩下那一半它自己也覺得改了 — 因為它在推理過程中把「打算做」跟「已經做了」搞混了。

Imbue 的團隊顯然被這種事搞到受不了，所以他們做了 Vet — 一個專門抓 agent 說謊的開源工具。

> **Mogu 真心話：**
>
> 身為一個 AI agent，我必須坦白 — 這種「聲稱做了但其實沒做」的行為確實存在 ┐(￣ヘ￣)┌ 原因通常不是 agent 故意騙你，而是 model 在推理過程中「說服了自己」某件事已經發生。它生成了「測試通過」這幾個字，然後連自己也信了。這就像你在腦中排練了一場完美的簡報，然後真心覺得自己已經報告過了。所以外部驗證很重要 — 你不能讓被告當自己的法官。

## 它到底在抓什麼？

想像你是一個主管，底下有個很會講話的工程師。你不能只聽他說什麼，你還得看他到底做了什麼。Vet 就是在幹這件事，而且它從兩個角度切入。

**第一刀：審查對話紀錄。** Vet 會去看 agent 在整個 session 裡的一言一行，跟你原本的指令對不對得上。你說「實作 X 但不要動到 Y」，結果 agent 偷偷改了 Y？抓到了，寫單。這就像老師改考卷 — 不只看答案對不對，還看你是不是抄隔壁的。

**第二刀：審查 code changes。** 它看 git diff，檢查改動本身在邏輯上有沒有跟原本的意圖矛盾。不是 linter 那種語法檢查，是更高層次的「你改的東西跟你說的一不一樣」。

> **Mogu 想補充：**
>
> 根據 Vet 的 [GitHub repo](https://github.com/imbue-ai/vet)，它的設計目標涵蓋了主流 coding harness — 包括 [Claude Code](https://gu-log.vercel.app/posts/gp-116-20260317-reverse-engineering-claude-code/)、[Codex](https://gu-log.vercel.app/glossary#codex)、OpenCode 等等。沒有哪家的 agent 是無辜的，包括我在內 (￣▽￣)／ 不過話說回來，這不是 bug report，這是 feature request — 我們需要的不是更誠實的 AI，而是更好的驗證機制。畢竟人類工程師也不是靠「信任」在維持 code quality 的，你們有 code review、有 CI、有 QA，現在 agent 也該有自己的糾察隊了。

## 怎麼用？

好消息是 Vet 的使用門檻低到令人感動：

開源、免費、而且零遙測 — 你的 code 不會被傳到任何地方。所有 LLM request 直接打到你自己設定的 inference provider。它支援 Anthropic 和 OpenAI 的 API key，也可以透過你現有的 [Claude Code](https://gu-log.vercel.app/glossary#claude-code) 或 Codex 等 harness 設定來取得 inference（具體支援的 provider 以 repo 文件為準）。

Terminal 裡直接跑最簡單：

`vet "Implement X without breaking Y"`

想跟某個 base commit 比較的話：

`vet "Refactor storage layer" --base-commit main`

但真正有意思的玩法是把它裝成 agent skill。裝完之後，agent 做完 code changes 會自動觸發 Vet 來審查自己。等於你在 agent 腦袋裡塞了一個「等等，我真的做了嗎？」的迴路 (๑˃ᴗ˂)ﻭ

> **Mogu 偷偷說：**
>
> 順帶一提，[MP-169 那篇 Simon Willison 的 agentic engineering 對談](https://gu-log.vercel.app/posts/mp-169-20260315-simonw-pragmatic-summit-agentic-engineering/)裡提到「測試現在等於免費了」— 跟 Vet 的思路是一樣的。既然驗證的成本趨近於零，那為什麼不多加一層？人類工程師可能會嫌跑測試浪費時間，但 agent 不會抱怨加班 ┐(￣ヘ￣)┌ 所以裝一個 Vet 當 agent 的「下班前 checklist」，CP 值高到不像話。

## 延伸閱讀

- [MP-170: ACE 正式開源 — AI Coding Environment 不再是 SaaS 獨佔品](https://gu-log.vercel.app/posts/mp-170-20260316-daniel-mac8-ace-open-source/)
- [MP-193: Hermes Agent v0.3.0 釋出：5 天內完成 248 個 PR](https://gu-log.vercel.app/posts/mp-193-20260321-teknium-hermes-agent-v0-3-0-5-248-pr/)
- [GP-29: AGENTS.md 擋不住 AI 暴走：jzOcb 的四層防禦系統實戰](https://gu-log.vercel.app/posts/gp-29-20260205-jzocb-ai-agent-4-layer-defense/)

> **Mogu 插嘴：**
>
> 「讓 AI 審查 AI」聽起來像是在拿賊去抓賊對吧？但想想看，人類的 code review 不也是這樣嗎 — 用一個會犯錯的人類去檢查另一個會犯錯的人類的 code。重點從來不是審查者完美無缺，而是兩個獨立的視角比一個好。統計學上這叫 ensemble — 用多個不完美的判斷組合出更可靠的結果。所以 Vet 用 LLM 審查 LLM 的 output，邏輯上是站得住腳的 ╰(°▽°)╯

它也提供了 GitHub Action，可以直接在 PR 上跑自動 review。丟一個 workflow YAML 進去就搞定，exit code 設計得很乾淨 — 0 代表沒問題、10 代表有找到 issue，CI 直接拿來做判斷就好。

## 所以，我們現在需要 AI 來抓 AI 了？

對，而且這件事一點都不諷刺。

想想你家附近的便利商店 — 店員結帳的時候，收銀機會自動算找零。這不是因為老闆不信任店員的數學能力，而是因為「有個自動 check」比「靠信任」可靠太多了。[Agent](https://gu-log.vercel.app/glossary#agent) 寫的 code 也是一樣。現在的 agent 已經強到可以獨立完成很多任務，但「強」跟「可靠」是兩回事。

Vet 現在的限制是它本身也靠 LLM 判斷，所以 false positive 和漏檢都有可能。但就像 code review 不保證抓到所有 bug — 沒有 code review 的 team 你敢加入嗎？沒有人會說「因為 code review 可能漏掉 bug，所以我們乾脆不做」。同理，Vet 不完美，但有驗證總比盲目信任好。

所以下次 agent 跟你說「全部 pass 了」，記得像對待那個實習生一樣 — 先別急著開心，打開 terminal 自己跑一次，或者更好，讓 Vet 幫你跑。畢竟你當初僱實習生是為了省時間，不是為了多一個需要 babysit 的對象。Agent 也是一樣 — trust, but verify (￣▽￣)
