模型 / 資料集
plastic-labs/honcho avatar
plastic-labs/honcho

Honcho:把「記憶」做成非同步背景服務的代理記憶基礎設施

Memory library for building stateful agents

7,180 個 Star887 個 ForkPythonAGPL-3.0

秒懂

它是什麼?
Honcho 是 Plastic Labs 以 Python 實作的 FastAPI 記憶服務,把訊息儲存、背景推理與查詢拆成三層。它適合需要跨會話追蹤使用者與代理狀態的產品,但不適合只想在單次對話裡塞幾段檢索結果的場景。
適合誰用?
如果你要的是跨會話、跨代理、會隨時間改變的狀態模型,而且能接受把推理放進背景佇列、查詢時可能還沒有結果,Honcho 值得先跑一次 honcho start --setup 在本機驗證資料流;如果你只需要在單輪對話裡檢索文件片段,它的 peer 與 session 抽象只是額外負擔。採用前先確認三件事:AGPL-3.0 對你的部署形態意味什麼、背景推理的延遲是否落在你的互動預算內、以及 chat 端點背後的模型與成本由誰承擔。
可以商用嗎?
可以,但條件嚴格。AGPL-3.0 是網路 copyleft 授權:如果別人透過網路使用你修改過的版本(例如作為託管服務),你必須以同一授權向他們提供原始碼。
還在維護嗎?
有在維護。儲存庫在最近一天內有新的提交。
用什麼語言寫的?
主要是 Python(依據 GitHub 的語言統計)。

以上回答依據專案的 GitHub 資料(最近同步於 2026年9月15日)與我們的分析,不構成法律意見。

開源專案深度解析

Honcho 要解的是「狀態」而不是「檢索」

多數代理框架處理記憶的方式是把歷史訊息切塊、嵌入、在需要時撈回最相似的前 k 段。這套做法在單一任務內夠用,但當使用者橫跨數週、多個會話回來,問題就變成:這個人是誰、他上次卡在哪、他對這件事的態度有沒有改變。相似度檢索答不了這種問題,因為答案不在任何一段原文裡,而是需要從多段對話推論出來。

Honcho 的定位就寫在 README 的第一句:記憶基礎設施,用來建構能理解「會隨時間改變的人、代理、群組、專案與想法」的具狀態代理。它把使用者、代理、群組、專案、想法都當成 peer 來追蹤。這個抽象比單純的對話歷史更重,換來的是可以對同一個 peer 反覆提問,而不是每次重新拼湊上下文。

目標讀者有兩類。一類是產品團隊,想在自家應用裡加入跨會話的使用者模型,走 SDK 路線。另一類是個人開發者,想給 Claude Code、OpenCode、OpenClaw、Hermes 這類工具掛上持久記憶,走 MCP 整合路線。README 的 Start Here 表格把這兩條路分得很清楚。

Store、Reason、Query、Inject:四個步驟的實際資料流

Honcho 的資料模型是三層:workspace 裝 peer,peer 參與 session,message 掛在 session 上。Honcho 針對每個 peer 建立一份 representation,你可以透過 Chat Endpoint 或直接查詢拿到它。

寫入端很直白。README 的 Python 範例先建 honcho.peer("alice") 與 honcho.peer("tutor"),再建 honcho.session("session-1"),然後用 session.add_messages 一次塞入兩則訊息。注意這裡沒有等待推理完成的步驟,範例註解只寫了一句「Reason: happens asynchronously in the background」。這是 Honcho 最重要的設計決定,也是它最大的使用約束:寫入是快的,理解是慢的,兩者之間有一段你無法精確掌握的時間差。

讀取端有兩種形態。一種是直接問,alice.chat("What learning styles does the user respond to best?") 回傳自然語言答案。另一種是拉可直接餵給模型的上下文,session.context(summary=True, tokens=10_000),再用 context.to_openai(assistant=tutor) 轉成 OpenAI 格式的 messages。第二種形態比較容易預測,因為你拿到的是結構化的訊息陣列,不是一段由模型生成的敘述。

README 把這條路徑稱為 The Honcho Loop,並宣稱「Using Honcho as your memory system will earn your agents higher retention, more trust」。這句話是行銷語言,不是可驗證的技術陳述,讀的時候應該跳過。真正有資訊量的是那句「Extracts conclusions from conversations and events, not just matching chunks」,它點出 Honcho 與向量檢索的分野在於產出結論,而結論的品質取決於背景推理用的模型與提示。

從 honcho start 到 HONCHO_URL:三種部署路徑的具體指令

Honcho 提供三種運行方式,成本差異很大。

託管服務最省事。到 app.honcho.dev 註冊取得 API key,註冊時會被要求加入一個 organization,該 organization 會拿到專屬的 Honcho 實例與 100 美元額度。SDK 預設打 api.honcho.dev,所以只要帶 api_key 就行。

本機堆疊用 CLI。README 的指令是 honcho start --setup,跑完之後把 SDK 指向 http://localhost:8000。CLI 還提供 honcho workspace inspect 與 honcho doctor 兩個指令,前者用來檢視部署內容,後者用於診斷。這兩個指令的存在暗示 Honcho 的執行期狀態不少,出問題時不是看一份日誌就能解決。

自架則走 Docker Compose 或本地開發模式,直接跑 FastAPI server。SDK 端要嘛傳 base_url="http://localhost:8000",要嘛設環境變數 HONCHO_URL。Python 套件是 honcho-ai,TypeScript 是 @honcho-ai/sdk,CLI 是獨立的 honcho-cli 套件。

有幾件事在提供的材料裡看不到,值得在動手前先確認:背景推理實際呼叫哪個模型、這條路徑需要哪些額外的 API 金鑰或環境變數、honcho start --setup 會拉起哪些容器。README 指向 docs.honcho.dev 的 Configuration 與 Self-hosting 章節,但那些章節的內容沒有出現在這份材料裡。

背景推理是它的核心,也是它最該被質疑的地方

非同步推理換來的是寫入延遲低,代價是讀取時的不確定性。使用者剛講完一句重要的話,立刻問 Honcho「他喜歡什麼學習方式」,背景佇列可能還沒處理完那則訊息。README 沒有描述任何完成通知、輪詢端點或版本戳記,範例裡也沒有等待的動作。這意味著應用層得自己想辦法處理「剛寫入就查詢」的視窗。

第二個限制是成本結構。如果每次寫入都觸發一輪推理,那麼高頻寫入的應用會把成本推到推理端而不是儲存端。Honcho 的定價與配額在提供的材料裡沒有交代,只有那句 100 美元額度。這一點在容量規劃時必須先問清楚,因為它決定了这个系統能不能撐住你的寫入量。

第三個限制是抽象的重量。peer、session、workspace 三層結構要求你先想清楚誰是誰。如果你的應用只有一個使用者、一段連續對話,這三層只是樣板程式碼。Honcho 的價值隨「實體數量乘以時間跨度」成長,兩者都小的時候,它就是一個比較貴的訊息資料表。

最後,README 提到「Models what one peer knows about another when configured」,但沒有說怎麼配置、預設開不開、開啟後推理成本增加多少。多代理視角聽起來是差異化功能,實際上是一塊需要翻文件才能確認的空白。

與向量檢索的差異:結論對上片段

最直接的替代方案是自建向量檢索層,例如把對話寫進 PostgreSQL 搭配 pgvector,或接一個專門的向量資料庫,在每次呼叫模型前撈出最相似的片段。這條路徑的優點是完全可控:你決定切塊策略、嵌入模型、相似度門檻,也看得見每一次查詢撈回了什麼。除錯時你能指著某一塊文字說「就是它被選中的」。

Honcho 走的是另一條路。它不把原文當成主要產出,而是先在背景把對話壓成 peer representation,查詢時回傳的是結論或摘要過的上下文。好處是上下文更短、更貼近「這個人是誰」,而且跨會話一致。壞處是可解釋性下降:當 Honcho 給出一個錯誤的使用者畫像,你很難回溯是哪一則訊息、哪一次推理造成的。

這個取捨沒有絕對答案,取決於你的失敗模式。如果你的應用怕的是「答錯事實」,向量檢索的原文片段比較安全。如果怕的是「每次都像第一次見面」,那結論式的 representation 才是解藥。Honcho 的 chat 端點還多了一層:它自己生成答案,這讓你能問開放式問題,但也把最終輸出的品質綁在 Honcho 內部的模型選擇上,而那個選擇不在你的手上。

AGPL-3.0 與維護成本要先算清楚

Honcho 採 AGPL-3.0。這個授權的關鍵在於網路服務條款:如果你修改了 Honcho 並以網路服務形式提供給他人使用,通常需要向使用者提供對應的原始碼。對內部工具或純自用部署,影響有限;對想把 Honcho 包進商業產品對外販售的團隊,這是必須先跟法務確認的事。這裡只描述授權條款的一般性質,不構成法律意見。

維護面有幾個具體的觀察點。專案把核心服務、Python 與 TypeScript SDK、以及 honcho-cli 放在同一個 repository 的不同目錄下,這代表升級時要留意版本是否同步。README 的徽章顯示 Server 為 3.1.2,SDK 與 CLI 各自有獨立的 PyPI 與 npm 版本號,三者不一定同進同退。

另外,提供的材料中沒有任何 release 資訊,也沒有版本相容性說明。自架者要自己承擔 FastAPI server、資料庫與佇列元件的升級路徑。honcho doctor 這個指令的存在,說明作者預期部署會需要診斷,這是好事,但也側面說明它不是一個裝完就不管的服務。

最後一點:README 提到 Honcho 專案分散在多個 repository,這一份只放核心服務邏輯。也就是說,讀完這個 repo 不等於讀完整個系統,整合層與 SDK 的行為要另外追。

編輯結論

如果你要的是跨會話、跨代理、會隨時間改變的狀態模型,而且能接受把推理放進背景佇列、查詢時可能還沒有結果,Honcho 值得先跑一次 honcho start --setup 在本機驗證資料流;如果你只需要在單輪對話裡檢索文件片段,它的 peer 與 session 抽象只是額外負擔。採用前先確認三件事:AGPL-3.0 對你的部署形態意味什麼、背景推理的延遲是否落在你的互動預算內、以及 chat 端點背後的模型與成本由誰承擔。

官方來源

  1. Issues
  2. License: AGPL-3.0
  3. plastic-labs/honcho on GitHub
  4. Project website
  5. README
社群筆記

社群筆記