OpenCode、Pi 与 Goose:开源 AI Agent 栈的三个层级
·
OpenCode、Pi 与 Goose:开源 AI Agent 栈的三个层级
最近开源 AI Agent 生态蓬勃发展,涌现出许多新项目。其中 OpenCode、Pi 和 Goose 三个项目经常被放在一起讨论,但它们实际上代表了 AI Agent 栈中三个不同但互补的层级。理解这个三层模型有助于我们更好地选择和使用这些工具。
Pi:Agent 内核(Agent Kernel)
Pi 是一个 Agent 工具包(agent harness/toolkit),它提供了构建和运行 AI Agent 所需的基础设施:
- 交互式 CLI:提供命令行界面与 Agent 交互
- Agent 运行时:管理 Agent 的生命周期和执行
- 多提供商 LLM API:支持接入不同的语言模型提供商
- 终端 UI 库:提供终端用户界面组件
Pi 的核心定位是底层基础设施——它没有内置的权限系统,也不规定 Agent 应该做什么。它更像是一个"引擎",为上层应用提供运行能力。
Goose:本地 Agent 工作台(Orchestration Surface)
Goose 是一个本地 AI Agent 工作台,提供了更高层的抽象:
- 桌面应用和 CLI:提供图形界面和命令行两种使用方式
- API 接口:支持程序化调用
- Linux 基金会 Agentic AI Foundation 成员:属于更广泛的开源 AI 生态
- MCP 风格扩展:通过类似 Model Context Protocol 的方式扩展能力
Goose 的定位是"编排层"——它负责协调不同的工具和 Agent,为用户提供统一的工作界面。
OpenCode:编码 Agent(Software Development Agent)
OpenCode 是一个专注于编码的开源 AI Agent:
- 终端 UI 和桌面应用:提供多种交互方式
- 全访问构建 Agent 模式:可以完全访问文件系统和执行命令
- 只读规划 Agent 模式:仅读取代码进行规划,不修改文件
OpenCode 是三层模型中最上层的应用——它专注于软件开发场景,利用下层的运行时和编排能力来完成具体的编码任务。
三层模型
这三个项目构成了一个清晰的三层架构:
┌─────────────────────────────────┐
│ OpenCode(编码 Agent) │ ← 应用层:面向具体任务
├─────────────────────────────────┤
│ Goose(编排层) │ ← 编排层:协调工具和 Agent
├─────────────────────────────────┤
│ Pi(Agent 内核) │ ← 基础设施层:运行时和 API
└─────────────────────────────────┘
- Pi 提供底层运行时能力
- Goose 在 Pi 之上提供编排和工作台功能
- OpenCode 利用这些能力专注于软件开发任务
配置与提供商问题
在使用这些工具时,配置和 LLM 提供商的选择是一个重要考虑因素:
- 不同的提供商(OpenAI、Anthropic、本地模型等)可能有不同的能力和限制
- 配置方式因工具而异,需要针对具体工具进行设置
- 提供商的选择会影响 Agent 的能力和成本
使用场景
根据不同需求,可以选择不同层级的工具:
- 只需要 Agent 运行时:直接使用 Pi
- 需要统一的工作台和工具编排:使用 Goose
- 专注于编码任务:使用 OpenCode
- 需要完整栈:可以组合使用三层工具
核心区分
| 维度 | Pi | Goose | OpenCode |
|---|---|---|---|
| 定位 | Agent 内核/运行时 | 编排层/工作台 | 编码 Agent |
| 抽象层级 | 底层基础设施 | 中间编排 | 上层应用 |
| 主要功能 | CLI、运行时、LLM API | 桌面应用、API、MCP 扩展 | 终端 UI、编码任务 |
| 权限系统 | 无内置 | 有 | 有(全访问/只读模式) |
尚未回答的问题
这个生态仍在快速发展中,一些问题尚待解答:
- 三层之间的集成边界会如何演变?
- 是否会出现更多专注于特定领域的 Agent(如 OpenCode 专注于编码)?
- 配置和提供商的标准化会如何发展?
结论
OpenCode、Pi 和 Goose 不是竞争关系,而是代表了 AI Agent 栈中三个不同但互补的层级。理解这个三层模型有助于:
- 更好地选择适合自己需求的工具
- 理解不同工具之间的关系和依赖
- 预测这个生态的未来发展方向
随着开源 AI Agent 生态的成熟,我们可能会看到更多专注于特定层级的项目出现,以及层级之间更清晰的接口和集成方式。
更多推荐
所有评论(0)