iT邦幫忙

1

從 Prompt 到 Graph Engineering:這些不只是新名詞,而是 AI Agent 踩坑後衍生的工程

  • 分享至 

  • xImage
  •  

AI Agent 可能是近年最容易出現新工程名詞的領域。

我們才剛學會 Prompt Engineering,接著又出現:

  • Context Engineering
  • Harness Engineering
  • Loop Engineering
  • Graph Engineering

乍看之下,它們很像只是把同一件事換成不同名稱。

但這些概念並不是為了創造新名詞。

每一種 Engineering,背後其實都對應到一種新的系統問題。

當 AI 應用從單輪問答,逐漸發展成可以使用工具、修改資料、持續執行任務的 Agent,工程團隊所需要控制的範圍也不斷擴大。

整個演進可以簡化成一條路徑:

Prompt → Context → Harness → Loop → Graph

這不一定是一條嚴格的成熟度階梯,也不是每個系統都需要走到最後。

它更像是五個不同層次的工程視角。


一、Prompt Engineering:怎麼把問題問清楚?

最早期的 LLM 應用,主要問題通常是輸出品質不穩定。

模型可能:

  • 沒有理解任務
  • 回答格式不符合需求
  • 遺漏重要條件
  • 產生過於籠統的結果
  • 沒有按照指定角色或語氣回答

因此,我們開始研究 Prompt Engineering。

Prompt Engineering 關心的是:

我要怎麼描述任務,才能讓模型產生更好的結果?

常見方法包括:

  • 明確定義角色
  • 說明任務目標
  • 提供輸出格式
  • 加入限制條件
  • 提供少量範例
  • 要求模型先分析再回答

例如,與其只對模型說:

幫我分析這份報告。

我們可能會改成:

請以資深資料分析師的角度,整理這份報告的三項主要發現、支持證據、限制,以及下一步建議。

這時候,主要控制點仍然在一段輸入文字裡。

模型收到 Prompt,產生結果,任務就結束了。

但當系統開始加入檔案、搜尋結果、歷史訊息與記憶後,問題就不再只是「怎麼問」。


二、Context Engineering:模型現在應該看到什麼?

隨著 AI 應用變得更複雜,輸入模型的內容也越來越多。

除了使用者的問題,Context 裡可能還包含:

  • System Prompt
  • 對話紀錄
  • 搜尋結果
  • 文件內容
  • 工具執行結果
  • 使用者偏好
  • 長期記憶
  • 任務進度
  • 其他 Agent 的輸出

這時候,真正困難的問題變成:

在目前這一步,模型到底需要看到哪些資訊?

Context 並不是放得越多越好。

過多或不相關的資訊可能造成:

  • Token 成本增加
  • 延遲上升
  • 關鍵指令被淹沒
  • 模型注意到錯誤資訊
  • 舊資料與新資料互相衝突
  • 模型重複執行已完成的工作

因此,Context Engineering 關心的不只是如何取得資料,也包括:

  • 什麼時候載入?
  • 載入哪一段?
  • 哪些資訊應該保留?
  • 哪些資訊應該摘要?
  • 哪些內容應該被淘汰?
  • 不同來源發生衝突時該相信誰?

Prompt Engineering 是設計指令。

Context Engineering 則是在管理模型每一刻所能看見的世界。

即使 Prompt 寫得很好,如果放入了錯誤、過時或互相矛盾的 Context,模型仍然很難做出正確決策。


三、Harness Engineering:Agent 可以做什麼,又該被限制在哪裡?

當模型不再只是回答問題,而是開始呼叫工具後,系統進入了另一個階段。

Agent 可能會:

  • 查詢資料庫
  • 讀取或修改檔案
  • 發送 Email
  • 建立 GitHub Issue
  • 更新 CRM
  • 執行程式
  • 部署服務
  • 付款或退款

這時候,問題已經不只是輸出品質。

而是:

我們如何讓模型安全、可靠地在真實系統中執行操作?

Harness 可以理解成包覆在模型外面的執行控制層。

它通常負責:

  • 工具定義
  • 權限檢查
  • 輸入與輸出驗證
  • Sandbox
  • Token 與成本預算
  • 重試與逾時
  • 日誌與追蹤
  • Human Approval
  • 錯誤處理
  • 執行狀態管理

例如,一個 Agent 具備「寄送 Email」的工具,不代表它可以直接寄出任何信件。

系統還需要判斷:

  • 目前使用者有沒有寄信權限?
  • 收件者是否在允許範圍內?
  • 這封信是否需要人工確認?
  • 內容是否包含敏感資訊?
  • 發送失敗後可以重試幾次?
  • 所有操作是否留下 Audit Log?

Prompt 裡寫一句「請小心使用工具」無法取代這些控制。

模型能力越強,越需要清楚的執行邊界。

Harness Engineering 的核心不是讓 Agent 更聰明,而是讓它的行為變得可控、可觀察,而且可以被中止。


四、Loop Engineering:怎麼讓 Agent 持續前進?

單次 Tool Calling 通常只能完成簡單任務。

真正的 Agent 往往需要反覆執行:

  1. 觀察目前狀態
  2. 判斷下一步
  3. 選擇並呼叫工具
  4. 讀取工具結果
  5. 更新計畫
  6. 繼續執行,直到完成或停止

這就是 Agent Loop。

Loop Engineering 關心的是:

如何讓 Agent 不需要人類每一步修正,也能持續朝目標前進?

一個最簡單的 Agent Loop 可能只是:

思考 → 使用工具 → 讀取結果 → 再思考

但實際上,Loop 很容易出現問題:

  • 一直重複相同操作
  • 忘記原始目標
  • 太早宣告完成
  • 工具失敗後無限重試
  • 花費大量 Token 卻沒有進展
  • 在錯誤方向上持續執行
  • 明明缺少資訊,卻不向使用者提問

因此,Loop Engineering 通常需要設計:

  • 結束條件
  • 最大執行步數
  • Retry Budget
  • Progress Check
  • Verification Gate
  • Stagnation Detection
  • Human Handoff
  • 中間狀態保存
  • 失敗後的恢復策略

Loop Engineering 的目的,不是讓 Agent 永遠執行下去。

而是讓它知道什麼時候應該繼續、什麼時候應該重新規劃,以及什麼時候應該停止。


五、Graph Engineering:哪些決策不需要再交給模型?

當 Agent Loop 變得更複雜,團隊常會遇到另一個問題。

如果每一個步驟都讓模型決定:

  • 下一個節點是什麼?
  • 應該呼叫哪個子 Agent?
  • 任務是否完成?
  • 失敗後走哪一條路?
  • 哪些步驟可以平行執行?
  • 什麼情況需要人工審核?

整個系統可能變得:

  • 昂貴
  • 緩慢
  • 難以重現
  • 難以測試
  • 難以除錯
  • 對模型波動非常敏感

很多決策其實是穩定、可預期,而且已經被業務規則定義好的。

這些決策未必需要每次都交給模型重新推理。

Graph Engineering 關心的是:

哪些流程應該固定在程式中,哪些節點才真的需要模型判斷?

例如一個退款流程可能是:

  1. 驗證使用者身分
  2. 取得訂單資訊
  3. 檢查退款資格
  4. 超過指定金額時要求人工審核
  5. 執行退款
  6. 發送通知
  7. 驗證最終狀態

這些主要步驟可以直接寫成 Graph。

模型只需要處理其中不確定的部分,例如:

  • 理解使用者描述
  • 判斷缺少哪些資訊
  • 將非結構化需求轉成工具參數
  • 產生適合使用者的說明

固定流程由程式控制,模糊判斷交給模型。

這可以降低模型的決策負擔,也讓整個系統更容易:

  • 測試
  • 追蹤
  • 重跑
  • 控制權限
  • 分析成本
  • 找出失敗節點

Graph Engineering 並不是要消除模型。

它是把模型留在真正需要語意理解與不確定性判斷的地方。


六、這五種 Engineering 不能互相取代

這些概念之間有關聯,但它們解決的是不同問題。

Prompt Engineering

解決:

任務應該怎麼描述?

Context Engineering

解決:

模型目前應該看到哪些資訊?

Harness Engineering

解決:

模型可以執行哪些操作,系統如何限制與觀察它?

Loop Engineering

解決:

Agent 如何反覆執行,直到任務完成或安全停止?

Graph Engineering

解決:

哪些決策應該固定在程式裡,而不是每次都讓模型決定?

好的 Prompt 無法取代權限系統。

完整的 Context 無法阻止 Agent 無限重試。

強大的 Harness 無法保證 Agent 會選擇正確的任務路徑。

Agent Loop 也不代表每個流程都應該由模型動態決策。

它們不是互相競爭的技術,而是不同層次的工程控制。


七、AI Agent 工程真正的演進

早期的 LLM 工程主要在問:

我們應該怎麼問模型?

當系統逐漸進入正式環境後,問題開始改變:

模型現在需要知道什麼?

接著是:

模型被允許做什麼?

它要怎麼持續執行?

最後則是:

哪些事情根本不應該再讓模型決定?

這可能是 AI Agent 工程最重要的演進。

我們不再只是想辦法讓模型做更多決策。

我們開始辨認哪些決策具有高不確定性,值得交給模型;哪些決策其實穩定、重複而且可以被程式化。

Agent 系統的品質,不只取決於模型有多強。

也取決於我們是否知道:

什麼時候應該使用模型,以及什麼時候不應該使用模型。


結語

Prompt、Context、Harness、Loop 與 Graph Engineering,並不是為了把 AI Agent 說得更複雜。

它們反映的是 Agent 從文字生成工具,逐漸變成真實執行系統後,工程團隊必須解決的不同問題。

整個過程可以整理成:

  1. 輸出不好,因此需要 Prompt Engineering
  2. 輸入內容不斷增加,因此需要 Context Engineering
  3. Agent 開始操作真實系統,因此需要 Harness Engineering
  4. Agent 需要自主完成多步驟任務,因此需要 Loop Engineering
  5. 動態決策變得昂貴而不穩定,因此需要 Graph Engineering

AI Agent Engineering 的核心問題,也從:

How should we ask the model?

逐漸變成:

What should we stop asking the model to decide?

真正成熟的 Agent 架構,不是把所有事情都交給模型。

而是清楚區分哪些工作需要模型的彈性,哪些工作需要程式的確定性。


延伸閱讀:30 天 AI Agent 架構鐵人賽

如果你想更有系統地理解 AI Agent 架構,我最近也把 Awesome Agent Architecture 整理成 30 天 iT 邦幫忙鐵人賽系列。

這個系列會依照 repo 的內容,從最小可運作的 Agent Loop 開始,逐章拆解工具使用、Context、Memory、Planning、Multi-Agent、Harness 與 Graph Engineering,並搭配 Python 範例。

系列入口:《30 天從零拆解 AI Agent:從 Tool Calling 到多 Agent 協作》


本文整理自我建立的開源專案 Awesome Agent Architecture。專案從最小 Agent Loop 開始,逐步拆解工具、Context、Memory、Planning、Harness、Multi-Agent 與 Graph Engineering,並提供可執行的 Python 範例。

GitHub:https://github.com/hardness1020/awesome-agent-architecture


圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言