跳转到内容

OpenCode 项目介绍

OpenCode

项目定位

OpenCode 是一个开源的 AI 编程助手,提供终端 TUI、Web 应用和桌面端三种界面形态,支持多模型、多 Agent 协作的完整开发工作流。

核心能力

  • 双 Agent 模式:内置 build(全权限开发)和 plan(只读分析)两种 Agent,通过 Tab 键切换
  • 多模型支持:基于 Vercel AI SDK,接入 20+ LLM Provider(OpenAI、Anthropic、Google、Azure、Bedrock 等)
  • 工具调用系统:内置文件读写、代码编辑、Shell 执行、搜索、Git 克隆等工具,支持 MCP 协议扩展
  • Skill 系统:兼容 Claude Code .claude/skills/.agents/skills/ 目录,支持从 URL 拉取技能
  • 上下文压缩:自动检测上下文溢出,使用专用 Agent 生成增量摘要并保留关键对话
  • 插件系统:Hook 驱动的插件架构,支持拦截 Agent 更新、转换消息、注入上下文
  • 权限控制:基于规则(Rule-based)的权限系统,支持通配符匹配和”一次性/永久”授权
  • HTTP API:提供完整的 REST API,支持远程调用和 SDK 集成

技术栈

层次技术
运行时Bun(主要)、Node.js(兼容)
语言TypeScript
函数式编程Effect.ts(依赖注入、错误处理、并发控制)
LLM 抽象Vercel AI SDK(多 Provider 统一接口)
TUIOpenTUI + Solid.js(响应式终端界面)
数据库SQLite + Drizzle ORM
包管理Bun Workspaces + Turborepo
MCP@modelcontextprotocol/sdk(stdio + SSE + Streamable HTTP)
构建Oxlint + TypeScript

架构概览

快速体验

Terminal window
# 最快方式(一键安装)
curl -fsSL https://opencode.ai/install | bash
# 或通过 npm 全局安装
npm i -g opencode-ai@latest
# 进入项目目录后启动
opencode

启动后在终端内输入自然语言指令即可开始与 AI Agent 交互。按 Tab 键切换 build / plan Agent。

教程导读

本教程分为两个部分:

  • AI 应用通用知识ai/ 目录):从 OpenCode 出发,学习 AI Agent 的通用知识,包括 Agent 核心循环、工具调用、多模型路由、上下文压缩等。每章先讲通用原理,再以 OpenCode 为案例。
  • 编程核心技术dev/ 目录):聚焦 OpenCode 自身的工程实践,包括 Effect.ts 函数式架构、插件系统设计、TUI 工程、构建与分发等。

引用的通用知识库

AI 章节引用的 Common 教程
Agent 核心循环Agent 核心循环设计
工具调用系统工具调用协议与执行模型
MCP 协议集成MCP 协议与生态集成
多模型路由多模型适配架构
上下文压缩上下文压缩与 Token 优化
Skill 系统(已有,见下方)
权限控制(已有,见下方)
插件系统系统提示组装策略