iT邦幫忙

2025 iThome 鐵人賽

DAY 11
1

繼續 implementation 之前,我想先做個整個架構的 overview,藉此幫助自己更好的了解想做什麼/該做什麼(?)

Agent-brain 是什麼?

Agent-brain 是一個可插拔(plug and play)、可觀測(observable)、可對照實驗(ablation-friendly)獨立於 tools 的 Agent 核心。它把「記憶的表示(Memory Structure)」與「思考流程(Thinking Net Structure)」解耦,讓 user 可以像積木一樣交錯搭配,針對不同任務域找到更好的組合。

  • 目標:

    • 以最小語義介面(minimal interfaces)抽象 Memory 與 Thinking Net。
    • 用 Stateless State + Controller 驅動 的方式實作 FSM,保證流程可預期、可測試、容易串流。
    • 讓使用者以組態(config)挑選 Memory × Net 的組合,快速做對照實驗。
  • 非目標:一次直接復刻所有 paper feature,做一個能取代 openai 的東西 (x);我們採 自下而上 MVP 疊代。

agent-brain 的用法,我想會是

  • input:

    1. goal / tasks
    2. usable tools or mcp servers
    3. (optional) selecte memory structure / thinking net structure
  • output:

    1. brain thinking flow (step by step)
    2. final answer

核心架構

agent-brain 由兩大 Component 組成,分別為 (下圖實線的地方)

  1. Memory Strcutre
  2. Thinking Net Structure

https://ithelp.ithome.com.tw/upload/images/20250925/20128319Bxor2DdHwZ.jpg

每次使用時可以從兩大 Component 中各選一種想要用的組合 e.g., 想要用最暴力的 Message list 記錄歷史訊息,搭配上 re-act 的 thinking net 來組成一個 brain ; 或者是想用 to-do list 的方法搭配有 reflection & refinement 的 Reflexion。應該都是可以的

Memory Structure

圖上只畫了 4 種,但其實還能用什麼 vector db (待補) or long/short-term memory。

目標:

  • 能夠準確表達任務進度與提取必要上下文。
  • 以統一介面服務 Net(如:讀取近期對話、當前 TODO、上次 Action 結果…)。

每一種都是一種紀錄目前 task 在每個 state 時候當下的狀態。

  • 例子:
    • MessageListMemory:最暴力,[user/assistant/tool] 直接 append。
    • ToDoBoardMemory:以任務卡(task item)驅動,適合 ReAct/Reflexion 的「下一步」明確場景。 記得 claude code 好像很愛這個。
    • TreeMemory:以樹狀結構記錄推理分支與收斂;便於「回顧/剪枝」。
    • VectorMemory (候選):向量化檢索長期知識;可分 long/short-term + TTL/衰退策略。

我相信 (或許) 存在一種最優組合,像是 Tree memory structure 可以爆打所有其他紀錄 memory 的 data structure,不過沒做過實驗沒人知道,那就設計成可以抽換的 component 方便測試。
甚至 user 想自己實做自己合適的 structure 也行。

Thinking Net Structure

這邊也只隨便畫了 3 種狀態機 (finite-state machine)... 甚至可能有些 state 還畫錯
不過這邊想表達的是,相比於 paper 直接把某一些更新 memory 當成是 state 下去輪。我們更可以把他們核心想法中每個 state 想做什麼的概念抽象畫

  • 例如:
    • ReAct ≈ reasoning → action → answering
    • Reflexion ≈ reasoning → action → reflection → answering

每個 State 不持有內部狀態;所有狀態都落在 Memory。
轉移權在一開始提供 thinking net 時就以定義好,避免隱性轉移與 reentrancy 地雷。

to-do

感覺之後相繼實作完各種不同的 mem 與 net 後,還能做個 ablation study 看看哪個組合在什麼問題上比較有效。
另外感覺還需要做一下 context engineering 相關的 survey...

123

今天先從實作面跳出來,從 top-down 的方式審視了一下整個架構,幫助自己了解目標與目的到底在哪

明天繼續刻 memory ... (圖我畫半天==


上一篇
Day 10: LLM Agent 的 States (二)
下一篇
Day 12: agent-brain 的 Memory
系列文
agent-brain: 從 0 開始打造一個 python package13
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言