Opencode

现在的 OpenCode 已经具备 Agents、Subagents、MCP、Skills、Commands、Plugins、CLI、GitHub Agent、Model/Provider 管理等能力,因此它已经明显超出了早期“开源版 AI 编程 CLI”的定位。(开源代码)


一、OpenCode 到底是什么?

一句话:

OpenCode 是一个开源的 Agentic Coding Runtime。

如果把 GitHub Copilot 理解成:

GitHub
  +
Copilot
  +
Agent
  +
GitHub Workflow

那么 OpenCode 更接近:

LLM
 +
Coding Agent Runtime
 +
Tools
 +
MCP
 +
Skills
 +
Custom Agents
 +
Commands
 +
Plugins
 +
Git

它的核心思想是:

让开发者可以自由选择模型,同时自己控制 Agent、Tools、Context、Skills 和工程工作流。

官方文档目前明确支持多种模型 Provider,并且可以通过 /connect 连接模型;也支持自定义 Provider。(开源代码)


二、OpenCode 与 Copilot 最大的区别

这是理解 OpenCode 最关键的一点。

GitHub Copilot

GitHub
   │
   ├── Copilot
   ├── GitHub Repository
   ├── GitHub Actions
   ├── Pull Request
   └── Cloud Agent

它是:

GitHub-centric AI Software Engineering Platform

而 OpenCode:

                 OpenCode
                    │
        ┌───────────┼───────────┐
        ↓           ↓           ↓
      Model       Agent       Tools
        │           │           │
 Claude/GPT     Build/Plan   Bash
 Qwen/Gemini    General      Read
 DeepSeek       Explore      Edit
 ...            Custom       Git
                              MCP

它更像:

Model-agnostic Coding Agent Runtime

这也是为什么 OpenCode 对你这种希望研究:

  • OpenCode

  • OpenClaw

  • Harness

  • Agent

  • MCP

  • AI Software Factory

的人非常有价值。


三、OpenCode 的核心架构

可以把 OpenCode 简化成:

                         User
                          │
                          ▼
                    OpenCode CLI
                          │
                          ▼
                    Agent Runtime
                          │
             ┌────────────┼────────────┐
             ↓            ↓            ↓
          Context       Model         Tools
             │            │            │
          Files        Claude        Read
          Git          GPT           Edit
          Rules        Qwen          Bash
          Skills       Gemini        Git
          History      DeepSeek      MCP
             │            │            │
             └────────────┼────────────┘
                          ↓
                     Agent Loop
                          │
                    ┌─────┴─────┐
                    ↓           ↓
                 Reason       Action
                    │           │
                    └─────┬─────┘
                          ↓
                       Observe
                          ↓
                       Verify
                          ↓
                       Result

这和刚才 Copilot 的架构非常类似。

真正不同的是:

OpenCode 把这个 Agent Runtime 更开放地暴露给开发者。


四、OpenCode 的 Agent Loop

OpenCode 最核心的其实不是 UI。

而是:

Goal
 ↓
Understand
 ↓
Explore
 ↓
Plan
 ↓
Tool Call
 ↓
Execute
 ↓
Observe
 ↓
Reason
 ↓
Modify
 ↓
Test
 ↓
Verify
 ↓
Complete

例如:

用户:

Add Redis caching to UserService

OpenCode Agent 可能执行:

1. search UserService
2. read UserService
3. search Redis configuration
4. inspect pom.xml
5. inspect existing cache usage
6. design implementation
7. edit files
8. run tests
9. observe failure
10. fix
11. rerun tests
12. verify

这就是:

Agentic Coding


五、OpenCode 的 Agent 类型

OpenCode 当前包含多个内置 Agent,例如:

build
plan
general
explore

官方源码/文档显示,build 是主要的开发 Agent,plan 用于只读分析和规划,generalexplore 用于复杂搜索和多步骤任务。(GitHub)

可以理解成:

                    OpenCode
                       │
          ┌────────────┼────────────┐
          ↓            ↓            ↓
        build         plan       subagents
          │            │            │
       Coding       Analysis     Research
       Editing      Planning     Exploration
       Testing

六、Build Agent

这是最常用的。

build

主要负责:

Read
Edit
Bash
Search
Test
Git

例如:

Implement Redis caching for UserService.

它可以真正修改项目。

所以:

build = Developer Agent

七、Plan Agent

Plan Agent 非常重要。

它主要解决:

先理解,再修改。

例如:

plan

Analyze how authentication works in this project.
Do not modify files.

它可以:

Repository
    ↓
Explore
    ↓
Architecture
    ↓
Dependencies
    ↓
Call Graph
    ↓
Plan

然后你再切换:

plan
   ↓
review
   ↓
build

这其实是非常好的 Agentic Coding 实践。


八、Explore Agent

Explore 更适合:

Search
Analyze
Understand

例如:

Find all places where UserRepository is used.

它可以快速:

Repository
   ↓
Search
   ↓
Relevant Files
   ↓
Relationships

而不需要马上修改代码。


九、Sub-Agent

这是 OpenCode 很值得研究的能力。

可以形成:

                  Main Agent
                     │
          ┌──────────┼──────────┐
          ↓          ↓          ↓
       Explore     General    Custom
        Agent       Agent      Agent
          │          │          │
          ↓          ↓          ↓
       Search      Research   Specialized

例如:

Main Agent

"Modernize this Spring Boot project"

可以拆:

Agent A → Analyze dependencies
Agent B → Analyze database
Agent C → Analyze tests
Agent D → Analyze security

然后 Main Agent 汇总。

这就是:

Multi-Agent Coding


十、Tools 是 OpenCode 的核心

OpenCode Agent 不是单纯调用 LLM。

它需要 Tools。

可以抽象成:

Agent
 │
 ├── read
 ├── edit
 ├── glob
 ├── grep
 ├── bash
 ├── webfetch
 ├── websearch
 ├── lsp
 ├── task
 ├── todowrite
 └── skill

因此:

LLM
+
Tools
+
Agent Loop
=
Coding Agent

这是 OpenCode 最重要的原理。


十一、Context Engineering

OpenCode 的效果很大程度取决于 Context。

可以理解为:

                Context
                   │
      ┌────────────┼────────────┐
      ↓            ↓            ↓
    Code          Git        Instructions
      │            │            │
      ↓            ↓            ↓
   Files        History       Rules
      │                         │
      └────────────┬────────────┘
                   ↓
                  LLM

例如:

用户:

Fix authentication bug

真正给模型的东西可能是:

System Prompt
+
User Request
+
Relevant Java Files
+
SecurityConfig
+
JWT Service
+
Tests
+
Git Diff
+
Project Rules
+
Skills
+
Available Tools

所以 Agentic Coding 的一个核心技术实际上是:

Context Engineering


十二、OpenCode Skills

这是 OpenCode 非常值得你重点研究的功能。

官方当前支持:

.opencode/skills/<name>/SKILL.md

以及全局:

~/.config/opencode/skills/<name>/SKILL.md

也兼容一些其他 Agent Skills 目录。(开源代码)

例如:

.opencode/
└── skills/
    └── oracle-migration/
        └── SKILL.md

里面可以写:

# Oracle Migration Skill

Use this skill when migrating Oracle
database schemas to PostgreSQL.

Rules:

1. Analyze Oracle schema first.
2. Preserve business semantics.
3. Convert NUMBER carefully.
4. Convert sequences.
5. Convert procedures.
6. Generate migration SQL.
7. Generate validation SQL.
8. Generate rollback strategy.

这样 Agent 遇到:

Migrate CUSTOMER table

可以根据 Skill 描述决定是否加载它。


十三、Skill 和 Command 的区别

这是一个非常重要的设计区别。

Command

用户主动调用:

/review

适合:

我明确要求执行某个工作流。


Skill

Agent 根据任务自动判断:

"我现在需要 Oracle Migration Skill"

适合:

当某种任务出现时自动加载专业知识。

所以:

Command
=
User-driven workflow

Skill
=
Agent-discovered expertise

OpenCode 当前文档和生态中也明确区分了这两种机制。(GitHub)


十四、Commands

OpenCode 可以定义自己的:

.opencode/command/

例如:

.opencode/
└── command/
    ├── review.md
    ├── test.md
    ├── deploy.md
    └── migrate.md

比如:

/review

实际执行一个预定义 Prompt。

官方当前 Command 文件支持 descriptionagentmodel 等 frontmatter,并支持 $ARGUMENTS 参数。(GitHub)

例如:

---
description: Review current code changes
agent: build
---

Review the current changes.

Check:

- bugs
- security
- performance
- tests
- backward compatibility

$ARGUMENTS

然后:

/review authentication

十五、Custom Agent

OpenCode 可以创建自己的 Agent。

例如:

.opencode/
└── agent/
    ├── architect.md
    ├── developer.md
    ├── tester.md
    ├── security.md
    └── reviewer.md

于是可以建立:

                    AI Team
                       │
       ┌───────────────┼───────────────┐
       ↓               ↓               ↓
 Architect          Developer        Tester
       │               │               │
       └───────────────┼───────────────┘
                       ↓
                    Reviewer

这就是你之前研究的:

AI Software Development Team


十六、MCP

OpenCode 对 MCP 支持非常重要。

官方当前支持:

opencode mcp add
opencode mcp list
opencode mcp auth
opencode mcp debug

也支持 Remote MCP 和 Local MCP。(开源代码)

例如:

opencode mcp add context7 \
  --url https://mcp.context7.com/mcp

然后:

opencode mcp list

你可以得到:

context7    connected

十七、OpenCode + MCP 的真正价值

例如你做企业 Java 项目:

                    OpenCode
                       │
      ┌────────────────┼────────────────┐
      ↓                ↓                ↓
   GitHub             Jira            GCP
     MCP               MCP             MCP
      │                │                │
      ↓                ↓                ↓
 Repository          Issues         Cloud

然后:

Jira Issue
    ↓
OpenCode
    ↓
读取需求
    ↓
GitHub MCP
    ↓
读取代码
    ↓
GCP MCP
    ↓
查询部署信息
    ↓
修改代码
    ↓
测试
    ↓
PR

这已经不是简单的 AI Coding。

而是:

AI Software Engineer


十八、Model-Agnostic 是 OpenCode 的重要优势

OpenCode 最大的一个设计思想:

Agent 和 Model 解耦。

例如:

OpenCode
    │
    ├── OpenAI
    ├── Anthropic
    ├── Google
    ├── Alibaba
    ├── DeepSeek
    ├── OpenRouter
    └── Custom Provider

你可以:

Agent
 ↓
Model Provider
 ↓
Model

例如:

opencode
   ↓
anthropic/claude...

或者:

opencode
   ↓
openai/...

或者:

opencode
   ↓
modelstudio/qwen...

对于你之前研究的 阿里百炼 + Qwen + OpenCode,这点尤其重要。

官方目前支持:

opencode models

查看模型,也可以:

opencode models --refresh

刷新模型列表。(GitHub)


十九、OpenCode 的 CLI

最基本:

opencode

启动 TUI。官方 CLI 目前也支持直接运行 Prompt:(GitHub)

opencode run "Explain this project"

所以:

Interactive Mode

和:

Automation Mode

都可以。


二十、OpenCode 常用命令

建议你重点记下面这些。

启动

opencode

指定项目

opencode /path/to/project

直接执行

opencode run "Explain this project"

指定 Model

opencode -m provider/model

查看模型

opencode models

刷新模型

opencode models --refresh

MCP

opencode mcp list
opencode mcp add
opencode mcp auth
opencode mcp debug <name>

Agent

opencode agent

创建:

opencode agent create

当前 CLI 可以在创建 Agent 时指定:

description
mode
permissions
model

以及 bash/read/edit/glob/grep/webfetch/task/todowrite/websearch/lsp/skill 等权限。(GitHub)


二十一、OpenCode Session

OpenCode 的一个重要概念是:

Session

可以理解为:

Session
 │
 ├── User Messages
 ├── Agent Messages
 ├── Tool Calls
 ├── Tool Results
 ├── Context
 ├── Files
 └── Changes

所以:

Task
 ↓
Session
 ↓
Agent Loop
 ↓
Result

这也是 Agent Runtime 非常重要的一层。


二十二、OpenCode 与 Git

OpenCode 很适合直接工作在 Git Repository。

典型流程:

git checkout -b feature/xxx

        ↓

opencode

        ↓

Explore

        ↓

Plan

        ↓

Implement

        ↓

Test

        ↓

git diff

        ↓

Code Review

        ↓

git commit

        ↓

git push

        ↓

Pull Request

因此我建议:

永远让 Agent 工作在 Git Branch 中。

不要直接让 Agent 在生产代码上大规模修改。


二十三、OpenCode 的一个典型项目架构

如果你真正准备长期使用 OpenCode,我建议:

my-project/
│
├── .opencode/
│   │
│   ├── agent/
│   │   ├── architect.md
│   │   ├── developer.md
│   │   ├── tester.md
│   │   └── reviewer.md
│   │
│   ├── skills/
│   │   ├── java-development/
│   │   │   └── SKILL.md
│   │   │
│   │   ├── oracle-migration/
│   │   │   └── SKILL.md
│   │   │
│   │   ├── spring-boot/
│   │   │   └── SKILL.md
│   │   │
│   │   └── security/
│   │       └── SKILL.md
│   │
│   ├── command/
│   │   ├── review.md
│   │   ├── test.md
│   │   ├── migrate.md
│   │   └── release.md
│   │
│   └── plugins/
│
├── src/
├── tests/
├── AGENTS.md
├── README.md
└── opencode.json

这个结构已经非常接近:

AI Software Factory Repository


二十四、OpenCode + AGENTS.md

我特别建议你建立:

AGENTS.md

里面描述:

# Project Engineering Rules

## Architecture

Spring Boot 3
Java 21
PostgreSQL
Redis

## Coding

Use constructor injection.

Do not use field injection.

## Testing

JUnit 5
Mockito

Every service requires unit tests.

## Database

Never modify schema manually.

All schema changes must have migration scripts.

## Git

Use feature branches.

Never commit directly to main.

这样:

User
 ↓
OpenCode
 ↓
AGENTS.md
 ↓
Agent

Agent 才会真正知道:

这个项目应该怎么开发。


二十五、OpenCode 的完整 Agent Architecture

把前面所有东西组合起来:

                         User
                          │
                          ▼
                     OpenCode CLI
                          │
                          ▼
                    Agent Runtime
                          │
        ┌─────────────────┼─────────────────┐
        ↓                 ↓                 ↓
      Context            Model             Tools
        │                 │                 │
   AGENTS.md           Claude             Read
   Source Code          GPT                Edit
   Git                  Qwen               Bash
   Skills               Gemini             Git
   Session              DeepSeek           LSP
        │                 │                 MCP
        └─────────────────┼─────────────────┘
                          ↓
                     Agent Loop
                          │
              ┌───────────┴───────────┐
              ↓                       ↓
           Planning                Acting
              │                       │
              └───────────┬───────────┘
                          ↓
                       Observe
                          ↓
                        Test
                          ↓
                       Verify
                          ↓
                     Git / PR

二十六、OpenCode 与 Copilot 的架构对比

能力GitHub CopilotOpenCode
Code Completion核心不是这个
Chat
Agent
CLI
Plan
Sub-Agent
MCP
Skills
Custom Agent
Git深度集成深度集成
GitHub极强支持
Cloud Agent有 GitHub Agent 能力
Model Choice相对受平台约束非常开放
Open Source
Agent Runtime 可研究性
企业内部定制非常适合自行定制

这里最值得你注意的是:

Copilot 更像完整的商业软件工程平台;OpenCode 更像可以自己改造的 Agent Runtime。


二十七、OpenCode 和你之前的 OpenClaw 有什么区别?

这个问题其实非常关键。

我会这样划分:

             AI Agent Ecosystem

                   Agent
                     │
        ┌────────────┴────────────┐
        ↓                         ↓
   Coding Agent              General Agent
        │                         │
    OpenCode                   OpenClaw
        │                         │
   ┌────┼────┐              ┌────┼────┐
   ↓    ↓    ↓              ↓    ↓    ↓
 Code  Git  Test          Feishu Email Web

所以:

OpenCode

主要目标:

Software Engineering Agent

重点:

Code
Git
Terminal
LSP
MCP
Test
Build
PR

OpenClaw

更接近:

General Purpose Personal / Business Agent

重点:

Messaging
Browser
Tools
Skills
Memory
Scheduling
External Systems

二十八、OpenCode + OpenClaw

真正有意思的是把两个组合起来:

                    OpenClaw
                       │
                 Business Agent
                       │
             ┌─────────┴─────────┐
             ↓                   ↓
          Jira                Feishu
             │                   │
             └─────────┬─────────┘
                       ↓
                  Coding Task
                       ↓
                    OpenCode
                       │
              ┌────────┼────────┐
              ↓        ↓        ↓
            Plan     Code      Test
              │        │        │
              └────────┼────────┘
                       ↓
                      PR
                       ↓
                  Human Review

这就非常接近你之前想做的:

AI Software Factory


二十九、OpenCode + Harness

如果进一步加入 Harness:

                    Harness
                       │
                       ▼
                 Engineering Loop
                       │
        ┌──────────────┼──────────────┐
        ↓              ↓              ↓
      Context        Rules          Tools
        │              │              │
        └──────────────┼──────────────┘
                       ↓
                    OpenCode
                       │
              ┌────────┼────────┐
              ↓        ↓        ↓
            Agent    Skills    MCP
              │        │        │
              └────────┼────────┘
                       ↓
                   Repository
                       ↓
                     Test
                       ↓
                      PR

所以:

OpenCode 是 Coding Agent Runtime;Harness 是让 Agent 在工程规则下可靠工作的控制框架。


三十、如果做你的 AI Software Factory,我会这样设计

结合你之前提到的:

  • Spring / Spring Boot / Spring Cloud

  • 150+ 微服务

  • Oracle → PostgreSQL

  • GCP

  • Redis

  • Jira

  • Jenkins

  • GitHub

  • OpenCode

  • OpenClaw

可以设计:

                         OpenClaw
                       Business Agent
                            │
                            ↓
                         Jira
                            │
                            ↓
                    Requirement Agent
                            │
                            ↓
                    Architecture Agent
                            │
                            ↓
                       OpenCode
                            │
            ┌───────────────┼───────────────┐
            ↓               ↓               ↓
       Developer         Database         Test
         Agent            Agent           Agent
            │               │               │
            └───────────────┼───────────────┘
                            ↓
                      Security Agent
                            ↓
                       Review Agent
                            ↓
                          GitHub
                            ↓
                           PR
                            ↓
                         Jenkins
                            ↓
                         Deploy
                            ↓
                           GCP

而:

Skills
MCP
AGENTS.md
Commands
Rules
Plugins

构成整个 Factory 的:

Engineering Knowledge Layer


三十一、我建议你这样学习 OpenCode

不要从:

怎么安装 OpenCode

开始学。

应该按照:

Level 1
OpenCode CLI
       ↓
Level 2
Agent
       ↓
Level 3
Tool Calling
       ↓
Level 4
Context Engineering
       ↓
Level 5
AGENTS.md
       ↓
Level 6
Commands
       ↓
Level 7
Skills
       ↓
Level 8
Sub-Agent
       ↓
Level 9
MCP
       ↓
Level 10
Plugins
       ↓
Level 11
Git / PR / CI
       ↓
Level 12
AI Software Factory

其中最重要的三个阶段:

第一阶段

Agent + Tools

理解:

Agent 为什么能写代码。

第二阶段

Context + Skills + MCP

理解:

Agent 为什么能做专业的软件工程。

第三阶段

Multi-Agent + Git + CI/CD + Human

理解:

Agent 如何从“编程助手”变成“软件工程团队”。


三十二、最终理解模型

如果让我用一句公式总结 OpenCode:

                    OpenCode

        LLM
         +
     Context
         +
      Tools
         +
      Agent
         +
      Skills
         +
       MCP
         +
     Commands
         +
     Plugins
         +
       Git
         +
     Verification
         ↓
  ┌───────────────────┐
  │ Coding Agent      │
  └─────────┬─────────┘
            ↓
  Software Engineering
            ↓
  AI Software Factory

所以,OpenCode 真正值得研究的不是“如何让 AI 帮我写一段 Java”,而是:

如何把一个 LLM 变成一个可以理解大型代码库、使用工具、遵守工程规范、调用外部系统、拆分子任务、执行测试并通过 Git/PR 完成软件交付的软件工程 Agent。

这也是为什么我认为你之前研究的 OpenCode + OpenClaw + Harness + MCP + Skills + AGENTS.md + Jenkins + Jira,实际上可以统一到一张架构图里:

                         AI SOFTWARE FACTORY
                                  │
             ┌────────────────────┼────────────────────┐
             ↓                    ↓                    ↓
        Business Agent       Engineering Agent      Knowledge
          OpenClaw              OpenCode             Skills
             │                    │                    │
          Jira/Feishu          Code/Git/Test       Rules/Docs
             │                    │                    │
             └────────────────────┼────────────────────┘
                                  ↓
                             Agent Runtime
                                  │
                     ┌────────────┼────────────┐
                     ↓            ↓            ↓
                    MCP         Tools       Subagents
                     │            │            │
                     └────────────┼────────────┘
                                  ↓
                              Verification
                                  │
                            Git / PR / CI
                                  │
                              Jenkins/GCP

这张图其实就是你后面研究 “OpenCode 源码 + Agent Harness + AI Software Factory” 时最重要的总纲。OpenCode 官方目前已经把 Agents、MCP、Skills、Commands、Plugins 和 GitHub Agent 等能力逐渐组合成了一个相对完整的 Agent 开发平台。(开源代码)

官方资料

如果把 Copilot 和 OpenCode 放在一起学习,我下一步最建议直接做一篇《Copilot vs OpenCode:源码级 Agent 架构对比》,把 Agent Loop → Context → Tool Calling → MCP → Skills → SubAgent → Memory → Git → CI/CD 一层层对应起来;这样会非常适合你后面继续研究 AI Software Factory。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值