今天我們正式推出 OpenWiki,一個用於自動生成與維護程式碼庫文件的開源 Agent 及 CLI。
Agent 在理解所處的儲存庫時,能寫出更好的程式碼。它們需要知道關鍵邏輯在哪裡、檔案之間如何連結,以及程式碼庫預期採用哪些模式。良好的文件能為 Agent 提供這些背景資訊,進而產生更明智的程式碼變更,並減少可避免的錯誤。
問題在於文件很難保持最新。撰寫初始文件需要時間,而每次程式碼變動後更新文件更是困難。在大型且頻繁有 PR 的儲存庫中,文件很快就會過時。
OpenWiki 會自動處理這項工作。它為你的儲存庫建立一個 Wiki,將該 Wiki 連接到你的程式碼 Agent,並在程式碼變更時持續更新。
為什麼 Agent 需要 Wiki
我們從現有的程式碼庫 Wiki 相關工作中獲得啟發,包括 DeepWiki、AutoWiki 以及 Karpathy 的 LLM Wiki 概念。其共同想法很簡單:Wiki 為人類和 Agent 提供一種結構化的方式來理解程式碼庫,而不必將所有上下文強塞進一個巨大的檔案中。
這之所以重要,是因為大多數程式碼 Agent 已經會讀取像 AGENTS.md 或 CLAUDE.md 這類的指令檔案。這些檔案很有用,但它們並非儲存數百頁儲存庫文件的適當位置。它們應該引導 Agent 找到正確的上下文,然後讓 Agent 自行擷取所需資訊。
OpenWiki 遵循這個模式。它會產生一個儲存庫 Wiki,然後更新你的 Agent 指令檔案,加入對該 Wiki 的參考。從那裡開始,你的程式碼 Agent 就能自動發現並使用這些文件。
開始使用
OpenWiki 的設計讓你可以輕鬆地從命令列執行。
透過 NPM 安裝:
1npm install -g openwiki
然後執行:
1openwiki --init

init 命令會要求提供模型供應商和 API 金鑰,然後為你的儲存庫產生文件。
OpenWiki 支援開放與封閉的模型供應商,包括 OpenRouter、Fireworks、Baseten、OpenAI 和 Anthropic。預設使用 OpenRouter 搭配開放模型,但你可以根據你的設定配置最合適的供應商。
由於 OpenWiki 是建構在 DeepAgents 之上,它也支援追蹤到 LangSmith。如果你提供 LangSmith API 金鑰,OpenWiki 會將執行過程追蹤到一個 LangSmith 專案,讓你可以檢查 Agent 在產生或更新文件時到底做了什麼。
OpenWiki 如何連接到你的程式碼 Agent
產生 Wiki 後,OpenWiki 會更新你儲存庫中的 Agent 指令檔案。如果你的儲存庫使用了 AGENTS.md、CLAUDE.md 或兩者都有,OpenWiki 會加入對所產生 Wiki 的參考,並說明 Agent 何時應該使用它。
我們選擇這種方法,是因為將整個 Wiki 放進指令檔案會增加太多上下文。在大型儲存庫中,Wiki 可能包含數百個檔案。將所有內容載入到每次 Agent 執行中既浪費又難以維護。
一個簡短的參考效果更好。你的程式碼 Agent 已經會讀取指令檔案。一旦 OpenWiki 加入參考,Agent 就能在需要儲存庫上下文時找到 Wiki,而無需改變你的工作流程。
保持 Wiki 更新
一次性產生文件很有用,但讓它們保持最新才是 OpenWiki 更具價值的地方。
OpenWiki 包含一個可以排程執行的 GitHub Action,例如每天執行一次。該 Action 會以更新標誌執行 OpenWiki。OpenWiki 會檢查自上次執行以來有哪些提交,利用 git diff 了解變更內容,然後用相關上下文更新 Wiki。
這意味著工作流程可以在背景執行。隨著程式碼庫變更,OpenWiki 會更新文件。你的程式碼 Agent 會透過現有的指令檔案參考,持續取得最新的 Wiki。
專為程式碼庫打造
這次的首個版本專注於程式碼庫的 Wiki。目標是讓 Agent 更容易理解它們工作的儲存庫,而不需要開發者手動編寫和維護詳細文件。
隨著時間推移,我們認為 OpenWiki 的概念可以更廣泛地應用。Agent 在許多類型的工作中都需要持久的上下文,而不僅僅是程式碼。程式碼庫文件是第一個用例,但同樣的模式也可以幫助 Agent 在其他工作流程中維護有用的上下文。
立即試用
OpenWiki 是開源專案,現在就可以使用。
你可以安裝它,執行 openwiki --init,幾分鐘內就能為你的儲存庫產生一個 Wiki。
在這裡查看儲存庫:https://github.com/langchain-ai/openwiki,並觀看操作影片:https://youtu.be/nIVu3zfYprI





