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 模板,用于处理常见任务。
相关
- 项目
- 项目
- 项目
- 项目
- 项目