從 Prompt Engineering 到 Context Engineering,再到確定性 Harness 控制系統——整合 GPT、Claude、Gemini 三方觀點的完整演進路線圖,附核心設計模式與程式碼範例。
三層架構是嵌套關係,不是替代關係:Prompt ⊆ Context ⊆ Harness。每一層解決下一層無法獨立解決的問題,工程嚴格性隨層次升高持續遷移(Relocating Rigor)。
設計 LLM 輸入指令的技藝。核心問題:「我該怎麼問?」——透過角色、格式、範例、限制引導模型輸出。
精準管理模型每次推理所見資訊。核心問題:「模型需要知道什麼?」——RAG、記憶、工具結果的動態組裝。
包圍 Agent 的確定性約束環境。核心問題:「系統如何防止 Agent 出軌?」——CI gate、linter、PEV Loop 機械執行。
CLEAR 框架:Context(背景)、Limit(限制)、Examples(範例)、Action(明確動詞)、Review(自我查核標準)。每個任務都應包含這五個元素,是最快提升 Prompt 品質的入門框架。
明確指定模型的專業視角、經驗背景、目標受眾。避免使用過於寬泛的角色,確保與任務領域相符。
提供 2–5 個輸入→輸出範例,固定格式與風格。範例品質直接決定輸出一致性,差的範例比沒有範例更糟。
要求模型「先一步步推理再給答案」,顯著提升複雜邏輯與數學任務的正確率。
指定 XML tags 或 JSON schema,搭配 Pydantic 等工具做 schema 驗證,降低格式不穩定風險。
明確說明「不確定時請標示」、「不得加入原文沒有的資訊」、「必須引用來源」,降低幻覺率。
Context Rot 警告:當 token 使用率超過 75%,或工具輸出佔比超過 60%,模型注意力品質顯著下降——指令遵循率降低、重複相同回答、忽略工具結果。這時應觸發 /compact(Anthropic Claude)或重新開啟乾淨 session 並注入狀態摘要。
區分:Working Context(本次必需)/ Session(對話歷史)/ Memory(跨 session 知識)/ Artifacts(大型檔案),只注入當前層次需要的內容。
向量化查詢 → 相似度過濾(threshold ≥ 0.75)→ 片段排序 → 注入 context。RAG 只是 Context Engineering 的一部分,還需處理來源、時效、權限。
建議比例:System 20% / History 30% / RAG 30% / Task 20%。工具定義本身消耗 tokens,只載入當前步驟需要的工具。
LLM 對 context 首尾注意力最高(Stanford「Lost in the Middle」研究)。關鍵約束與指令放首段或末段;用 XML tags 標記重要區域。
每 N 輪對話,用 LLM 壓縮成摘要替換原始歷史,保留決策點、錯誤記錄、用戶偏好。防止 context 爆炸。
Hashimoto 原則:「每次 Agent 犯一個錯誤,你就要工程化一個解決方案,確保 Agent 永遠不會再犯同樣的錯誤。」——這就是 Harness 思維的核心:不調整 prompt,而是設計讓這個錯誤結構上不可能再發生的系統。
用高能力模型(如 claude-opus)將複雜任務分解為子任務,輸出 plan.md。這一步不執行,只規劃,確保方向正確再動手。
用快速模型(如 claude-sonnet)批量執行子任務——讀寫檔案、工具調用。僅操作在工具白名單與 scope 內授權的路徑。
高能力模型對照 plan 驗證執行結果;CI gate 機械執行測試。未通過 → 帶錯誤 feedback 返回 Execute。通過 → 提交結果。
Reasoning Sandwich:LangChain Terminal Bench 2.0 實驗——僅修改 harness(不改模型權重),任務完成率從 52.8% 提升至 66.5%。成本優化:只在 Plan 和 Verify 階段使用昂貴模型,執行階段用快速模型。
read_file, grep, edit_file, run_tests 等必要工具rm -rf、deploy 需批准pytest, pnpm test, mypy)三層架構各有專屬問題域,不互相取代。合規性質的差異(概率性 vs. 確定性)是最關鍵的分水嶺。
| 比較項目 | Prompt Engineering | Context Engineering | Harness Engineering |
|---|---|---|---|
| 核心問題 | 我該怎麼問? | 模型需要知道什麼? | 系統如何防止 Agent 出軌? |
| 設計對象 | 指令文字與格式 | Context Window 內容結構 | Agent 外部的約束環境 |
| 時間邊界 | 單次對話 | 單個 context window | 跨 session 與任務生命週期 |
| 控制類型 | 語言引導 | 資訊架構 | 系統性約束 + 反饋迴路 |
| 合規性質 | 概率性(模型不保證遵守) | 概率性(資訊更準但仍有機率失效) | 確定性(CI gate 機械執行) |
| 典型失效 | 格式錯亂、指令遺忘、幻覺 | Context Rot、位置偏差、多 Agent 衝突 | 架構漂移、越權行動、無法回滾 |
| 主要工作產品 | System Prompt / Few-shot 範例 | RAG 管線 / 記憶架構 / 壓縮策略 | AGENTS.md / CI Gate / PEV Loop / Trace Log |
| 工程職能類比 | 文案 / 創意寫作 | 系統設計 / 資料工程 | 平台工程 / DevOps |
| 代表工具 | Prompt Playground、Prompt 管理工具 | LangChain、RAG 框架、MCP、向量 DB | CI/CD、Linter、Observability 平台 |
| 直觀類比 | 給騎師任務說明書 | 給騎師地圖與即時情報 | 設計賽道、欄杆與計時系統 |
根據你的角色選擇起點。三條路徑不互斥——工程師仍需精通 Prompt,進階者的基礎是前兩層。
allowed_tools)與 deny rules(禁止路徑、禁止命令)本指南整合三份 AI 生成源文件,已交叉比對衝突,優先採用學術文獻與官方文件。