一、前言
OpenCode 和 Kiro 是当下两款热门的 AI 编程代理工具,分别代表了开源社区(Anomaly)和云厂商(AWS)两个方向。本文从功能深度、架构理念、团队适用性到迁移路径进行全面对比。
二、核心哲学差异
| 维度 | OpenCode | Kiro |
|---|---|---|
| 定位 | 终端 AI 编程代理 | 代理型 IDE |
| 商业模式 | 开源免费(MIT)+ Zen 可选 | 免费基础版 + AWS 订阅 |
| 模型策略 | 75+ 提供商,完全自由 | AWS 生态模型 |
| 设计理念 | 终端优先,追求极简高效 | IDE 优先,追求开箱即用 |
| 目标用户 | CLI/TUI 重度开发者 | IDE 图形化偏好者 |
| 社区规模 | 156K Stars,850+ 贡献者 | 3.6K Stars |
| 月活 | 650 万+ | 较小 |
三、功能深度对比
3.1 Kiro Powers ↔ OpenCode Skills
两者是最直接对应的功能,都提供按需加载的领域知识包。
| 特性 | Kiro Powers | OpenCode Skills |
|---|---|---|
| 定义方式 | MCP + Steering + Hooks 打包 | SKILL.md Markdown 文件 |
| 加载方式 | 按对话上下文自动激活 | 按需通过 skill 工具加载 |
| 安装来源 | 官方市场 / GitHub | GitHub / 本地目录 |
| 安装方式 | IDE 内一键安装 | 文件放到 skills 目录 |
| 生态 | 40+ 官方/合作伙伴 Power | 社区丰富 |
| 粒度 | 可包含 MCP + 规则 + 自动化 | 纯指令 + 文本描述 |
| 权限控制 | 无细粒度 | 支持 per-skill 权限 |
| 一键分享 | ✅ "Add to Kiro" 按钮 | ❌ 无统一市场 |
对比总结:
- Powers 更"重",捆绑了 MCP、Steering、Hooks 全套能力,适合集成复杂工具链
- Skills 更"轻",本质是 Markdown 描述文件,编写和分享极简
- Powers 目前在 Kiro IDE 可用,Skills 在 OpenCode 所有界面可用
3.2 Kiro Steering ↔ OpenCode Rules / AGENTS.md
两者都用于指导 AI 行为,但实现方式不同。
| 特性 | Kiro Steering | OpenCode Rules |
|---|---|---|
| 文件格式 | Markdown(.kiro/steering/) | Markdown(AGENTS.md) |
| 作用域 | 全局 + 工作区 + 团队 | 全局 + 项目 |
| 包含模式 | always / fileMatch / manual / auto | 始终包含 |
| 条件触发 | 按文件类型自动包含 | ❌ 不支持 |
| 基础模板 | 自动生成 Product/ Tech/ Structure | /init 自动生成 |
| 外部引用 | #[[file:path]] | @file / instructions 字段 |
| 启动命令 | 无 | /init |
对比总结:
- Steering 支持条件加载(fileMatch),更精细化
- Rules 支持远程 URL 加载指令文件,更适合分布式团队共享
- Steering 的 inclusion 模式(4 种)比 Rules 精细
- AGENTS.md 可通过 git 分享给整个团队,是团队级规范
3.3 Kiro Specs ↔ OpenCode Plan Agent + Custom Commands
Specs 是 Kiro 的核心差异化功能,OpenCode 没有直接对应物。
| 特性 | Kiro Specs | OpenCode 等价功能 |
|---|---|---|
| 需求分析 | ✅ requirements.md | Plan Agent + 对话 |
| 架构设计 | ✅ design.md | Plan Agent 生成方案 |
| 任务分解 | ✅ tasks.md + 实时跟踪 | / 自定义命令 / |
| Bug 修复流程 | ✅ Bugfix Specs | 对话式修复 |
| 任务执行进度 | ✅ 可视化跟踪面板 | ❌ 无(通过 git 追踪) |
| 三阶段流程 | ✅ 需求→设计→任务 | ❌ 无标准化流程 |
| 复现性 | ✅ 每次按同一流程 | ❌ 依赖 LLM 能力 |
对比总结:
- Specs 是 Kiro 最独特的卖点,适合需要结构化开发流程的团队
- OpenCode 没有标准化 Spec 系统,但可通过 Plan Agent + 自定义命令 + AGENTS.md 组合实现类似效果
3.4 Kiro Hooks ↔ OpenCode Commands
| 特性 | Kiro Hooks | OpenCode Commands |
|---|---|---|
| 触发方式 | 文件变更/开发事件 | 手动输入 /command |
| 自动化程度 | 自动触发 | 手动触发 |
| 自定义程度 | 事件+动作配置 | Markdown 模板 |
| 参数支持 | ✅ | ✅ $ARGUMENTS |
| Shell 集成 | ✅ | ✅ !\`command\` |
| Agent 绑定 | ✅ | ✅ agent 字段 |
| 使用门槛 | 需要配置事件 | 只需写模板 |
对比总结:
- Hooks 是自动化的,Commands 是手动触发的
- Commands 更简单,Hooks 更强大但配置更复杂
3.5 LSP 支持
| 特性 | OpenCode | Kiro |
|---|---|---|
| LSP 内置 | ✅ 原生支持,自动加载 | ❌ 依赖 VS Code 扩展机制 |
| 多 LSP 同时 | ✅ | ✅(通过 VS Code 扩展) |
| 精度 | 高(原生 LSP 协议) | 中(间接) |
OpenCode 在代码理解上使用原生 LSP 协议,而 Kiro 作为 IDE 本身依赖 VS Code 生态的 LSP 扩展。
3.6 多代理架构
| 特性 | OpenCode | Kiro |
|---|---|---|
| 内置代理 | build / plan / explore / general | 单代理 |
| 自定义代理 | ✅ 创建自定义 primary/subagent | ❌ 不可创建 |
| 子代理 | ✅ Task 工具调用子代理 | ❌ |
| 并行多会话 | ✅ 多代理并行运行 | ❌ 单会话 |
| Tab 切换 | ✅ 主代理间切换 | ❌ |
| @ 调用 | ✅ @general、@explore 等 | ❌ |
多代理 + 并行会话是 OpenCode 在开发效率上的核心优势,Kiro 目前是单代理架构。
四、完整功能对比矩阵
| 功能 | OpenCode | Kiro |
|---|---|---|
| 开源(MIT) | ✅ | ✅ |
| 75+ 模型提供商 | ✅ | ❌ |
| 本地模型支持 | ✅ | ❌ |
| MCP 协议 | ✅ | ✅ |
| LSP 原生 | ✅ | ❌(VS Code 依赖) |
| 多代理并行 | ✅ | ❌ |
| 自定义代理 | ✅ | ❌ |
| Agent Skills / Powers | Skills(轻量) | Powers(重量) |
| 项目规则 Rules/Steering | AGENTS.md | Steering |
| 条件规则加载 | ❌ | ✅ fileMatch |
| Spec 开发流程 | ❌ | ✅ 核心功能 |
| Hooks 自动化 | ❌ | ✅ |
| 自定义 Commands | ✅ /command | ❌ |
| 自定义 Tools | ✅ TS/JS + 任意语言 | MCP 方式 |
| Plan 只读模式 | ✅ plan agent | ❌ |
| 会话分享 | ✅ 生成链接 | ❌ |
| 会话 Undo/Redo | ✅ | ❌ |
| Desktop 应用 | ✅(Beta) | ✅ |
| CLI 模式 | ✅ | ✅ |
| VS Code 扩展 | ✅ | ✅ 自有 IDE |
| Zed 扩展 | ✅ | ❌ |
| Git 集成 | ✅ | ✅ |
| 企业版 | ✅ Enterprise 计划 | ✅ AWS Support |
| 多行命令编辑 | ✅ 异步编辑器 | ❌ |
| 团队规范共享 | ✅ AGENTS.md + 远程 URL | ✅ Team Steering |
| Spec 驱动开发 | ❌ | ✅ |
| 任务进度追踪 | ❌ | ✅ |
| 外部 URL 指令 | ✅ instructions 远程 URL | ❌ |
五、迁移指南:从 Kiro 迁移到 OpenCode
5.1 规则迁移(Steering → AGENTS.md)
| Kiro 特性 | OpenCode 等价 | 迁移方式 |
|---|---|---|
| Workspace Steering | 项目 AGENTS.md | 复制 .kiro/steering/*.md 内容到项目根 AGENTS.md |
| Global Steering | 全局 AGENTS.md | 复制 ~/.kiro/steering/ → ~/.config/opencode/AGENTS.md |
| Team Steering | 全局 AGENTS.md + 远程 URL | AGENTS.md 提交到 Git,或通过 instructions 加载远程 URL |
| fileMatch 条件 | ❌ (不支持) | 需手动处理 |
| inclusion 模式 | 始终包含 | AGENTS.md 始终包含 |
| #[[file:path]] 引用 | @file 或 instructions | 用 @引用文件,或 instructions 字段加载 |
步骤:
bash
# 1. 迁移工作区 steering
cp .kiro/steering/*.md AGENTS.md # 合并内容
# 2. 迁移全局 steering
cp ~/.kiro/steering/*.md ~/.config/opencode/AGENTS.md
# 3. 用 /init 初始化 OpenCode 项目规则
cd /path/to/project
opencode
/init
5.2 Powers → Skills 迁移
| Kiro Powers | OpenCode Skills |
|---|---|
| powers// 含 MCP/Steering/Hooks | skills//SKILL.md(纯 Markdown) |
| 一键安装 | 手动创建文件 |
| MCP 工具全部加载 | 仅加载指令描述 |
迁移示例:
bash
# Kiro Power 目录结构
.kiro/powers/figma/mcp.json
.kiro/powers/figma/steering.md
.kiro/powers/figma/hooks.yaml
# 对应 OpenCode Skills
.opencode/skills/figma/SKILL.md
SKILL.md 示例 将 Steering 内容简化为指令描述:
bash
---
name: figma
description: 将 Figma 设计稿实现为生产级代码,包含组件规范、设计系统和代码生成指引
license: MIT
compatibility: opencode
---
## 能力说明
- 从 Figma URL 提取设计信息
- 生成符合设计规范的 React/Vue 组件
- 使用 Tailwind CSS 实现样式
- 遵循设计系统颜色和间距规范
5.3 Specs → OpenCode 工作流
OpenCode 没有直接等价物,推荐组合方案:
bash
# 方案:Plan Agent + 自定义命令
# 1. 创建 spec 命令
.opencode/commands/spec.md:
---
description: 创建开发规范文档,包含需求分析、设计和任务分解
---
请为我分析上述需求,按以下流程执行:
## Phase 1: 需求分析
- 用户故事
- 验收标准
- 边界情况
## Phase 2: 设计方案
- 技术架构
- 组件/模块拆分
- 数据流
- 错误处理
## Phase 3: 任务分解
- 将实现拆分为可执行的任务
- 每个任务有明确的完成标准
先用 Plan Agent 分析,确认方案后再切换到 Build 执行。
使用方式:
bash
/spec "添加用户认证功能"
先切换到 Plan Agent 审视方案 → 确认后切换到 Build Agent 执行。
5.4 Hooks → Commands 迁移
Kiro Hooks(自动触发)→ OpenCode Commands(手动触发):
bash
# Kiro Hook
.opencode/hooks/pre-commit.yaml:
on: [pre-commit]
run: lint-staged
# OpenCode Command
.opencode/commands/lint.md:
---
description: 运行 lint 并修复
---
运行 lint-staged,如果有错误自动修复。
如果修复失败,分析原因并给出修改建议。
5.5 MCP 配置迁移
Kiro 和 OpenCode 都支持 MCP,配置格式类似:
| Kiro | OpenCode |
|---|---|
| .kiro/mcp.json | opencode.jsonc 中 mcp 字段 |
| 内置市场安装 | 手动配置或社区分享 |
Kiro 的 Powers 市场包含预配置 MCP,OpenCode 需要在 opencode.jsonc 中手动配置:
bash
{
"mcp": {
"figma": {
"type": "local",
"command": ["npx", "-y", "@figma/mcp-server"],
"enabled": true
}
}
}
5.6 迁移检查清单
| 检查项 | Kiro | OpenCode |
|---|---|---|
| Steering 文件 | .kiro/steering/ | AGENTS.md + ~/.config/opencode/AGENTS.md |
| 全局规则 | ~/.kiro/steering/ | ~/.config/opencode/AGENTS.md |
| Powers | .kiro/powers/ + IDE 安装 | .opencode/skills/ |
| MCP 配置 | .kiro/mcp.json | opencode.jsonc mcp 字段 |
| Specs | .kiro/specs/ (共 3 文件) | 替代方案:自定义命令 / Plan Agent |
| Hooks | .kiro/hooks/ | 替代方案:自定义命令 |
| 项目配置 | .kiro/config.json | opencode.jsonc |
5.7 需要注意的差异
OpenCode 有但 Kiro 没有的能力:
- 多代理并行(build + plan + 自定义)
- 子代理调用(@general、@explore、@自定义)
- Plan 只读模式(安全审查不修改代码)
- 会话分享链接
- Undo/Redo 历史
- 异步编辑器编辑代码
- 远程 URL 作为指令源
- LSP 原生集成
Kiro 有但 OpenCode 没有的能力:
- Spec 驱动开发(需求→设计→任务→跟踪)
- Hooks 自动触发
- Steering 条件加载(fileMatch)
- 任务进度可视化
- Powers 一键安装市场
- 基础规则自动生成(Product/Tech/Structure)
- AWS 企业技术支持
六、选型决策树
bash
你更看重什么?
│
├─ 模型自由 + 终端效率 → OpenCode
│ └─ 需要结构化Spec流程 → OpenCode + 自定义命令
│
├─ IDE体验 + AWS生态 → Kiro
│ └─ 需要团队规范驱动 → Kiro Steering + Specs
│
├─ 多任务并行 + 自定义代理 → OpenCode
│
├─ 自动规则触发 + 可视化进度 → Kiro
│
├─ 社区生态 + 长期独立性 → OpenCode
│
└─ 企业支持 + 合规背书 → Kiro (AWS)
七、最后建议
从 Kiro 迁移到 OpenCode 的典型场景:
- 团队想要更多模型选择(避免 AWS 锁定)
- 团队需要多代理并行工作
- 团队预算敏感(OpenCode 完全免费)
- 团队以 CLI/TUI 为主要工作方式
- 团队需要私有化部署和数据本地化
不适合迁移的场景:
- 重度依赖 Spec 开发流程的团队
- 需要 AWS 原生生态支持的团队
- 使用 Hooks 自动化工作流的团队
- 偏好 IDE 图形化界面的团队
本文基于 2026 年 5 月公开信息整理,具体功能以各产品官网为准。