smallnest/pigo
pi agent in Golang
解決的問題
pigo 是一個命令列 AI 編程代理,旨在自動化理解需求與修改程式碼的循環。透過允許 LLM 在本地開發環境中直接讀取、寫入並執行命令,它彌合了高層提示詞與具體檔案變更之間的鴻溝。
工作原理
該專案實現了一個分層執行階段架構,其中中央代理迴圈管理使用者、LLM 提供商與一系列本地工具之間的互動。它使用雙層迴圈系統:一個用於處理回應串流與工具執行直到助手停止呼叫工具的內迴圈,以及一個用於管理後續訊息的外迴圈。
關鍵操作組件包括:
- 多提供商支援:相容 OpenRouter、Ollama、Anthropic 以及與 OpenAI 相容的端點。
- 工具整合:內建檔案操作 (
read,write,edit)、搜尋 (grep,find)、Shell 執行 (bash) 與網路存取 (webfetch,websearch) 工具。 - 安全閘門:專案信任系統,在不受信任的目錄中對「副作用」工具(如
bash或write)要求使用者確認。 - 上下文管理:在接近 LLM 視窗限制時進行自動上下文壓縮(摘要)。
適用對象
- 希望在終端機中執行實際編碼任務,而不僅僅是生成程式碼片段的開發人員。
- 可以將「無頭」模式 (
-p) 用於自動化腳本的 CI/CD 工程師。 - 希望透過提供的 SDK 將編程代理功能嵌入到自己應用程式中的 Go 開發人員。
亮點
- 雙執行模式:支援互動式 REPL 與用於 CI/CD 整合的無頭腳本模式。
- 可擴展架構:具有「技能」(可重用的基於提示詞的能力)、外掛程式以及一個強大的 Hooks 系統,可透過 Shell 命令攔截或修改代理行為。
- 靈活的工具控制:透過白名單 (
--allowed-tools) 與黑名單 (--disallowed-tools) 進行細粒度的工具存取。 - 工作階段持久化:能夠列出、恢復並繼續之前的工作階段。
- 提示詞範本:支援具有複雜參數語法的可重用 Markdown 範本,用於處理常見任務。
相關
- 專案
- 專案
- 專案
- 專案
- 專案