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 栈中三个不同但互补的层级。理解这个三层模型有助于:

  1. 更好地选择适合自己需求的工具
  2. 理解不同工具之间的关系和依赖
  3. 预测这个生态的未来发展方向

随着开源 AI Agent 生态的成熟,我们可能会看到更多专注于特定层级的项目出现,以及层级之间更清晰的接口和集成方式。


来源:
- OpenCode
- Pi
- Goose
- 原文 Gist

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐