工作流
了解 OpenCode 的工作流程,包括系统架构和对话执行流程。
架构分层
OpenCode 采用分层架构设计,从上到下分为:
┌─────────────────────────────────┐
│ 用户交互层 │
│ 对话界面、命令行输入 │
└─────────────┬───────────────────┘
│
┌─────────────▼───────────────────┐
│ Agent 层 │
│ 意图理解、任务规划、决策 │
└─────────────┬───────────────────┘
│
┌─────────────▼───────────────────┐
│ Skill 层 │
│ 任务编排、能力封装、流程控制 │
└─────────────┬───────────────────┘
│
┌─────────────▼───────────────────┐
│ Tool 层 │
│ 工具调用、具体能力执行 │
└─────────────┬───────────────────┘
│
┌─────────────▼───────────────────┐
│ 基础设施层 │
│ LLM、文件系统、命令执行、网络 │
└─────────────────────────────────┘
各层职责
Agent 层:
- 理解用户意图
- 规划任务步骤
- 决策使用哪些能力
- 管理对话上下文
Skill 层:
- 封装复杂任务
- 组织多步骤流程
- 控制工具使用
- 应用最佳实践
Tool 层:
- 提供原子能力
- 执行具体操作
- 返回执行结果
- 处理错误情况
对话执行流程
当用户发起对话时,OpenCode 的执行流程如下:
用户输入
│
▼
┌─────────────────┐
│ 1. 意图理解 │
│ - 分析用户需求 │
│ - 识别任务类型 │
└────────┬────────┘
│
▼
┌─────────────────┐
│ 2. 任务规划 │
│ - 分解任务步骤 │
│ - 确定所需工具 │
└────────┬────────┘
│
▼
┌─────────────────┐
│ 3. 工具调用 │
│ - 生成参数 │
│ - 执行工具 │
└────────┬────────┘
│
▼
┌─────────────────┐
│ 4. 结果处理 │
│ - 解析结果 │
│ - 判断是否完成 │
└────────┬────────┘
│
▼
┌─────────────────┐
│ 5. 生成响应 │
│ - 组织回复 │
│ - 返回用户 │
└─────────────────┘
具体示例
以"创建一个 Express 服务器"为例:
1. 意图理解
用户输入:"帮我创建一个 Express 服务器"
Agent 理解:
- 任务类型:创建项目
- 目标:Express 服务器
- 需要操作:初始化、安装、创建文件
2. 任务规划
Agent 规划步骤:
步骤 1:初始化 Node.js 项目
步骤 2:安装 Express 依赖
步骤 3:创建 server.js 文件
步骤 4:编写服务器代码
步骤 5:启动服务器
3. 工具调用
执行步骤 1:
工具:Bash
命令:npm init -y
执行步骤 2:
工具:Bash
命令:npm install express
执行步骤 3:
工具:Write
文件:server.js
内容:Express 服务器代码
执行步骤 4:
工具:Write
文件:package.json
内容:更新启动脚本
执行步骤 5:
工具:Bash
命令:node server.js
4. 结果处理
每个步骤执行后:
- 检查是否成功
- 处理错误情况
- 决定下一步操作
如果步骤失败:
- 分析错误原因
- 尝试修复
- 或提示用户
5. 生成响应
返回给用户:
"我已经为你创建了 Express 服务器!
完成的步骤:
✓ 初始化项目
✓ 安装 Express
✓ 创建 server.js
✓ 启动服务器
服务器运行在 http://localhost:3000"
多轮对话流程
对于需要多轮交互的任务:
第 1 轮:
用户:创建一个 React 组件
Agent:[创建组件]
第 2 轮:
用户:添加一个按钮
Agent:[读取组件,添加按钮]
第 3 轮:
用户:给按钮添加点击事件
Agent:[读取组件,添加事件处理]
第 4 轮:
用户:优化代码
Agent:[分析代码,优化性能]
工作流特点
1. 自主性
OpenCode 会:
- 自动选择工具
- 自动生成参数
- 自动处理错误
- 自动优化结果
2. 可控性
用户可以:
- 指定使用哪个工具
- 修改执行步骤
- 中断执行过程
- 调整执行参数
3. 透明性
系统提供:
- 执行步骤说明
- 工具调用日志
- 错误原因分析
- 决策依据说明
下一步
了解工作流后,您可以:
🎉 现在你已经了解了 OpenCode 的工作流程!
接下来让我们学习工具系统的使用。🚀