AI News HubLIVE
站內改寫2 分鐘閱讀

OpenWiki:為程式設計代理提供開源倉庫文件

OpenWiki 是一個開源代理和命令列工具,用於自動生成和維護程式碼庫文件。它建立倉庫維基,連線程式設計代理,並透過 GitHub Action 持續更新文件,幫助代理更好地理解程式碼庫上下文,從而提高編碼效率。

今天,我們釋出了 OpenWiki——一個用於生成和維護程式碼庫文件的開源代理和命令列工具。

程式設計代理在理解其工作的倉庫時能寫出更好的程式碼。它們需要知道關鍵邏輯位於何處、檔案如何連線以及程式碼庫期望遵循哪些模式。良好的文件能讓代理獲得這些上下文,從而做出更明智的程式碼變更並減少可避免的錯誤。

問題在於文件難以保持最新。編寫初始文件需要時間,而每次程式碼變更時更新文件則更為困難。在頻繁提交 PR 的大型倉庫中,文件可能迅速過時。

OpenWiki 自動處理了這項工作。它為你的倉庫建立一個維基,將該維基連線到你的程式設計代理,並在程式碼變更時保持更新。

為何使用維基為代理服務

我們受現有程式碼庫維基專案的啟發,包括 DeepWiki、AutoWiki 和 Karpathy 的 LLM 維基概念。共同的想法很簡單:維基讓人和代理能夠以結構化方式理解程式碼庫,而無需將所有上下文強制塞入一個巨大的檔案中。

這很重要,因為大多數程式設計代理已經讀取 AGENTS.md 或 CLAUDE.md 等檔案獲取指令。這些檔案很有用,但並非儲存數百頁倉庫文件的合適位置。它們應該將代理指向正確的上下文,然後讓代理自行檢索所需內容。

OpenWiki 遵循這一模型。它生成倉庫維基,然後在代理指令檔案中更新對該維基的引用。此後,你的程式設計代理可以自動發現並使用文件。

快速開始

OpenWiki 旨在易於從命令列執行。

透過 npm 安裝:

npm install -g openwiki

然後執行:

openwiki --init

init 命令會詢問模型提供商和 API 金鑰,然後為你的倉庫生成文件。

OpenWiki 支援開放和封閉模型提供商,包括 OpenRouter、Fireworks、Baseten、OpenAI 和 Anthropic。預設情況下,它使用 OpenRouter 的開放模型,但你可以配置最適合你設定的提供商。

由於 OpenWiki 基於 DeepAgents 構建,它還支援向 LangSmith 追蹤。如果你提供 LangSmith API 金鑰,OpenWiki 會將執行追蹤到 LangSmith 專案,以便你檢查代理在生成或更新文件時所做的具體操作。

OpenWiki 如何連線到你的程式設計代理

生成維基後,OpenWiki 會更新倉庫的代理指令檔案。如果你的倉庫使用 AGENTS.md、CLAUDE.md 或兩者兼用,OpenWiki 會新增一個對生成維基的引用,並說明代理何時應使用它。

我們選擇這種方法是因為將整個維基放在指令檔案中會新增太多上下文。在大型倉庫中,維基可能包含數百個檔案。將所有這些內容載入到每次代理執行中既浪費又難以維護。

簡短的引用效果更好。你的程式設計代理已經讀取指令檔案。一旦 OpenWiki 新增引用,代理就能在需要倉庫上下文時找到維基,無需你改變工作流程。

保持維基最新

一次性生成文件很有用,但保持它們最新才是 OpenWiki 更具價值之處。

OpenWiki 包含一個 GitHub Action,可以按計劃執行(例如每天一次)。該 Action 使用更新標誌執行 OpenWiki。OpenWiki 檢查自上次執行以來有哪些提交落地,利用 git diff 瞭解變更內容,然後使用相關上下文更新維基。

這意味著工作流程可以在後臺執行。隨著程式碼庫的變更,OpenWiki 更新文件。你的程式設計代理透過現有的指令檔案引用持續獲取最新維基。

首先為程式碼庫構建

此首次釋出專注於程式碼庫維基。目標是讓代理更容易理解它們工作的倉庫,而無需開發者手動編寫和維護詳細文件。

隨著時間的推移,我們認為 OpenWiki 的概念可以更廣泛地應用。代理不僅需要編寫程式碼,還需要為多種工作提供持久上下文。程式碼庫文件是第一個用例,但同樣的模式可以幫助代理在其他工作流程中維護有用的上下文。

試試看

OpenWiki 現已開源。

你可以安裝它,執行 openwiki --init,並在幾分鐘內為你的倉庫生成維基。

在此檢視倉庫:https://github.com/langchain-ai/openwiki