
從 Agent Loop 出發,逐步拆解模型外圍的工具、狀態、權限、Memory 與協作機制
專案名稱: Awesome Agent Architecture
專案類型: 開源技術教學/AI Agent 架構參考
主要技術: Python、AI Agent、Harness Engineering
開發狀態: 已上線,持續更新中
授權方式: MIT License
GitHub: https://github.com/hardness1020/awesome-agent-architecture
Awesome Agent Architecture 是一個從 0 開始拆解 AI Agent 架構的開源專案
專案從最小的 Agent Loop 開始,逐步加入 Tool Runtime、Permission、Hooks、Skills、Context Management、Memory、Subagent、Background Tasks、MCP、Multi-Agent Coordination、Observability 與 Evaluation
每個章節都提供可以執行的 Python 範例,讓讀者不只是閱讀架構圖,也能實際觀察訊息、工具結果和系統狀態如何在 Agent 內部流動
目前專案包含 22 個章節,並已累積超過 300 顆 GitHub Stars
很多人已經開始使用 Claude Code、Cursor、Codex 或其他 AI Agent
但當我想進一步理解這些工具時,發現大部分教學都集中在「怎麼使用」,很少真正解釋它們背後的系統如何運作
例如:
因此,我研究了 Claude Code 與其他 Agent 系統,並把研究結果整理成 Awesome Agent Architecture
我希望這個專案能補上目前 Agent 教學中較少被討論的一塊:不只介紹功能怎麼使用,也解釋功能背後的架構、控制流程與設計取捨
一開始接觸 AI Agent 時,很容易把所有注意力放在模型上
但 LLM 本身只負責根據輸入產生下一個輸出
真正讓模型能夠讀取檔案、執行指令、修改程式碼、保存狀態,甚至持續工作數十分鐘的,是模型外面的系統
這層系統通常被稱為 Agent Harness,而設計與改善這套系統的工作則稱為 Harness Engineering

模型負責判斷下一步,Harness 負責提供工具、狀態、限制與實際執行環境
沒有 Harness,模型只能產生回覆,無法真正對外部世界採取行動
雖然不同 Agent 的功能差異很大,但底層通常都建立在相似的循環上:

一次模型呼叫並不會形成 Agent,Harness 必須持續執行工具、加入結果並再次呼叫模型
基本控制流程可以拆成:
這個 Loop 本身並不複雜
真正困難的部分通常位於 Loop 外圍:
一個 Coding Agent、一個聊天助理,以及一個自動化執行器,底層可能使用相同或相似的模型
它們真正的差異,往往來自 Agent Harness 的設計選擇
這個專案主要研究三套 Agent 系統:
Claude Code 適合用來觀察完整的 Coding Agent Harness
它涵蓋工具呼叫、權限、Hooks、Skills、Context、Subagent、Background Tasks 與 Multi-Agent 等機制
Hermes Agent 適合研究:
mini-swe-agent 是一個相對精簡的 SWE Agent,適合觀察:
我沒有只整理這些系統的功能列表,而是將每個機制拆成獨立章節,再抽象成可以套用到其他 Agent 的通用架構
目前先從這三套系統開始,後續也會陸續加入更多開源與商用 Agent,並使用相同的分析框架比較它們的架構設計、控制流程與取捨
專案從第 0 節開始,一路延伸到第 21 節,共分成八層

專案從模型與 Harness 的責任邊界開始,逐步演進到能夠長時間執行、自我驗證與協作的完整 Agent 系統
先釐清模型與 Harness 的責任邊界,以及 Agent 的行動能力從哪裡產生
從最小 Agent Loop 開始,逐步加入:
當任務開始變得複雜,系統需要加入:
接著處理長時間工作時的知識保存與錯誤問題:
讓 Agent 不必依賴一次對話完成所有工作:
處理多個 Agent 如何:
讓 Agent 能與外部系統連接:
最後將前面的機制組合起來:
這個專案最重要的設計原則,是避免一開始就把所有 Agent 功能放進同一個大型範例
例如:
每一章的程式碼都建立在前一章的基礎上。
讀者可以直接比較相鄰兩章的 src/ 目錄,透過 Git Diff 看到這一章究竟新增了什麼:
這種方式比直接閱讀一個完整 Framework 更容易理解,因為每次只需要關注一個變化
Claude Code 中的許多功能都有特定產品名稱
如果只是照著功能名稱介紹,內容會變成 Claude Code 使用手冊,而不是可以套用到其他 Agent 的架構知識
因此,我將產品功能重新抽象成通用問題:
未來即使出現新的 Agent Framework,也可以使用相同概念分析它
如果範例過度簡化,讀者只能理解概念,卻看不到真實系統中的控制流程
但如果直接放入完整 Production 架構,又會出現大量與目前章節無關的程式碼
我的解法是讓每一章只加入一個主要變化,同時保留真實 Agent 會出現的資料流:
為了讓複雜的 Agent 架構可以被逐步理解,我採用了以下方法
只在真正需要時引入新概念
讀者不需要先理解完整 Production Agent,才能開始學習最小 Agent Loop
相鄰章節保持相似,只修改與當前主題相關的程式碼
Git Diff 本身就是這一章的學習內容
第 1 到第 21 節都附有可以執行的 Python 範例
每一章包含:
src/loop.py
test.py
demo.py
其中 test.py 可以離線執行,不需要 API Key;demo.py 則可以連接模型觀察完整流程
先解釋問題與架構,再討論特定 Agent 如何實作
這樣知識就不會被綁定在單一 Framework 或產品上
除了正常執行流程,每章也整理常見 Failure Modes,例如:
這個 Repo 適合:
我的目標不是提出一套所有人都應該複製的「標準 Agent 架構」
不同產品需要的 Harness 複雜度並不相同
一個只負責回答問題的 Agent,可能不需要 Background Tasks;一個只能讀取資料的 Agent,也不一定需要複雜的 Permission System
真正重要的是理解每個元件解決什麼問題,以及加入後需要承擔哪些成本
理解這些機制後,未來遇到新的 Agent Framework,就可以直接分析:
如果你正在研究 AI Agent、Claude Code、Agent Harness 或 Agent Infrastructure,歡迎查看專案:
https://github.com/hardness1020/awesome-agent-architecture
如果內容對你有幫助,也歡迎幫忙按個 Star
對架構有不同觀察、遇到實作問題,或有其他值得研究的 Agent,也歡迎直接開 Issue 一起討論