LogoAIRosetta

極簡構建AI Agent:拆解GitHub爆款項目 ai-agents-from-scratch 嘅技術同啟示

GitHub

Summary2025年10月,開源項目 ai-agents-from-scratch 用唔到2000行Python實現完整AI Agent閉環(感知、記憶、規劃、執行),以極簡設計同本地輕量化技術(SQLite+FAISS、ReAct+自省)急速走紅,對教育同工程實踐影響深遠。


2025年10月,一個叫做 “ai‑agents‑from‑scratch” 嘅GitHub開源項目以驚人速度走紅,短短兩個星期內攞到 42k+ Star、18k+ Fork,成為AI開發者社群嘅「新聖經」。項目作者 pguso(化名)用極簡主義手法,唔夠 2000行Python代碼,由零實現咗一個完整可運行嘅AI Agent系統⁠—⁠⁠—⁠毋須LangChain、LlamaIndex等重型框架,徹底打破咗「AI Agent必須依賴複雜生態」嘅行業共識。本文深入拆解該項目嘅核心架構、技術亮點同潛在影響,為開發者提供由零構建智能代理嘅實戰路線圖。

一、項目定位:極簡至上,回歸本質

同市面上動輒數十萬行代碼嘅Agent框架唔同,ai‑agents‑from‑scratch 嘅設計哲學係 “Do One Thing and Do It Well”。項目目標好明確:

用最少代碼,實現一個能感知、思考、行動、反思嘅完整Agent閉環。

佢唔係追求功能堆砌,而係聚焦四大核心模塊:

  1. 感知(Perception):由文本、圖像、API輸入提取結構化資訊
  2. 記憶(Memory):向量數據庫 + 短期/長期記憶分層
  3. 規劃(Planning):ReAct + 自省式Chain‑of‑Thought
  4. 執行(Execution):工具調用(Tool Use)同環境互動

成個系統運行喺 單文件 agent.py 裏面,配合 tools/ 目錄嘅輕量工具,就可以完成由「查天氣」到「自動發郵件」再到「分析PDF並生成報告」嘅完整任務流程。

二、核心技術拆解:極簡中嘅巧思

1. 感知層:多模態輸入嘅“零依賴”解析

項目摒棄咗LangChain嘅Document Loaders,轉而使用原生Python庫:

def load_pdf(path): 
    return PyPDF2.PdfReader(path).pages
def load_image(path): 
    return PIL.Image.open(path)

通過函數式管道(functional pipeline)將原始輸入轉為統一Message對象,格式為:

{"role": "user", "content": "圖中是...", "modality": "image"}

呢種設計令Agent天然支持多模態,而唔使引入額外依賴。

2. 記憶系統:SQLite + FAISS 嘅“輕量混合存儲”

長期記憶用FAISS向量索引(本地文件 <32MB),短期記憶就存喺 SQLite 事務表:

# 自动摘要 + 嵌入
summary = llm.summarize(conversation[-10:])
vector = embedder.encode(summary)
faiss_index.add(vector)

當上下文超窗(default 16k tokens)時,系統會自動:

  1. 壓縮歷史對話做摘要
  2. 檢索相關記憶片段注入提示
  3. 保留關鍵事實(例如用戶偏好)

呢個機制喺 <100ms 內完成檢索,遠超傳統RAG系統嘅延遲。

3. 規劃引擎:ReAct + Self‑Reflection 雙驅動

項目實現咗一個純函數式ReAct循環:

while not task.done:
    thought = llm.think(observation)
    action = llm.act(thought)
    observation = execute(action)
    reflection = llm.reflect(thought, action, observation)

關鍵創新喺於 Self‑Reflection 模塊:Agent會喺每一步後自我評估:

「呢個動作係咪推進咗目標?有冇更好嘅方案?」

呢一步靠提示工程實現,唔使額外訓練,但顯著提升複雜任務嘅成功率(根據項目自測由67%提昇到91%)。

4. 工具系統:JSON Schema + 動態註冊

所有工具以JSON Schema定義:

TOOLS = {
    "send_email": {
        "description": "发送邮件",
        "parameters": {"to": "str", "subject": "str", "body": "str"}
    }
}

LLM輸出結構化JSON → 解析 → 執行 → 返回結果。支持熱插拔:運行時可以通過register_tool()加入新功能。

三、性能實測:輕量但強悍

作者喺 MacBook Air M2 上做基準測試(GPT‑4o‑mini + Qwen2‑7B):

相比LangChain Agent(平均延遲3倍、內存2倍),ai‑agents‑from‑scratch 喺資源受限環境下表現好搶眼。

四、社區反響與生態影響

項目發布後,迅速引發熱議:

  • HuggingFace 官方將佢列為「推薦輕量Agent模板」
  • LangChain核心開發者喺X上評論:「呢個先係Agent應該有嘅樣⁠—⁠⁠—⁠透明、可控、可教學」
  • 教育機構(如CMU、Stanford)已經將佢納入「AI系統設計」課程嘅實驗項目

仲有開發者基於此衍生出:

  • ai‑agents‑web:Flask前端可視化界面
  • ai‑agents‑mcp:Minecraft插件版Agent
  • ai‑agents‑cli:終端命令行工具

五、局限與未來方向

雖然極簡高效,項目仍存在明顯短板:

  1. 缺乏分布式支持:單機運行,無法處理高並發
  2. 工具安全待加強:無沙箱機制,易被惡意提示攻破
  3. 可觀測性弱:無日誌中心、鏈路追蹤

作者喺README入面清楚表示:

「呢個唔係生產就緒系統,而係教學同原型工具。歡迎fork並加強。」

社區已經提出多個改進方向:

  • 整合 LiteLLM 支持多模型統一介面
  • 引入 Docker + FastAPI 實現微服務部署
  • 開發 VS Code插件 實現「拖拽式Agent構建」

六、結語:極簡即極致,Agent開發嘅新範式

ai‑agents‑from‑scratch 嘅爆紅唔係偶然。佢證明咗一個事實:

複雜嘅AI系統,都可以用簡單嘅方式構建、理解同擴展。

喺LangChain、AutoGPT等「黑盒框架」主導嘅市場入面,呢個項目好似一陣清風,提醒開發者:

  • Agent嘅核心唔係框架,而係循環:感知‑思考‑行動‑反思
  • 可解釋性 > 功能完整性
  • 100行可讀代碼 > 10000行依賴地獄

對初學者嚟講,佢係最佳入門項目;對老手嚟講,佢係重構複雜系統嘅參考藍圖。正如pguso喺提交日誌入面寫:

“Build agents like you build Lego ⁠—⁠ one block at a time.”

喺AI Agent百花齊放嘅2025年,呢個極簡項目可能正悄悄掀起一場「回歸本質」嘅技術革命。

項目地址:https://github.com/pguso/ai‑agents‑from‑scratch

CopyrightStatement

Comment

Please login before commenting

NoComments

RelatedNews

LoadingMore

極簡構建AI Agent:拆解GitHub爆款項目 ai-agents-from-scratch 嘅技術同啟示 - Airosetta News