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 统一接口) |
| TUI | OpenTUI + Solid.js(响应式终端界面) |
| 数据库 | SQLite + Drizzle ORM |
| 包管理 | Bun Workspaces + Turborepo |
| MCP | @modelcontextprotocol/sdk(stdio + SSE + Streamable HTTP) |
| 构建 | Oxlint + TypeScript |
架构概览
快速体验
# 最快方式(一键安装)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 系统 | (已有,见下方) |
| 权限控制 | (已有,见下方) |
| 插件系统 | 系统提示组装策略 |