fix(opencode): restore stable v1 runtime
This commit is contained in:
@@ -5,10 +5,10 @@
|
||||
## 主要能力
|
||||
|
||||
- 提供 `POST /api/v1/agent/sessions/{session_id}/runs` SSE 聊天接口。
|
||||
- 使用 OpenCode 2.0 beta client;支持 embedded `opencode2` service,也可连接外部 V2 service。
|
||||
- 支持 embedded OpenCode 运行时,也可连接外部 OpenCode server。
|
||||
- 管理前端 `session_id` 与 OpenCode session 的映射。
|
||||
- 在服务端保存当前会话的用户 token、项目、network 和 trace 上下文。
|
||||
- 通过 `.opencode/plugins` 注册 `.opencode/tools` 中的工具实现,驱动地图定位、图表、SCADA、历史数据和业务 API 调用。
|
||||
- 通过 `.opencode/tools` 和 MCP 工具驱动地图定位、图表、SCADA、历史数据和业务 API 调用。
|
||||
- 通过 `data/` 保存运行时会话元数据、结果引用和本地状态。
|
||||
|
||||
## 目录结构
|
||||
@@ -21,8 +21,7 @@ src/runtime/ OpenCode 运行时管理
|
||||
src/session/ 会话映射和运行上下文
|
||||
src/mcp/ MCP 服务与工具桥接
|
||||
.opencode/agents/ Agent prompt 和模型行为配置
|
||||
.opencode/plugins/ OpenCode V2 插件入口
|
||||
.opencode/tools/ 插件注册的工具实现
|
||||
.opencode/tools/ OpenCode 自定义工具
|
||||
.opencode/skills/ 可复用分析工作流
|
||||
node-tests/ Node CLI 测试
|
||||
data/ 本地运行时数据,禁止提交
|
||||
@@ -61,14 +60,14 @@ docker build -t tjwater-agent:local .
|
||||
|
||||
## 运行模式
|
||||
|
||||
Embedded 模式由服务进程拉起本机 `opencode2 serve --service`。本地需要安装与 `@opencode-ai/client`、`@opencode-ai/plugin` 对齐的 V2 beta CLI;Docker 镜像会安装仓库固定版本:
|
||||
当前运行时使用 OpenCode 稳定版 1.x CLI,并通过稳定版 SDK 的 `@opencode-ai/sdk/v2` HTTP 客户端访问运行时;这与 `opencode2` 及 `@opencode-ai/client` 的 2.0 beta 运行时不同。Embedded 模式由服务进程拉起本机 OpenCode:
|
||||
|
||||
```bash
|
||||
OPENCODE_MODE=embedded
|
||||
TJWATER_API_BASE_URL=http://127.0.0.1:8000
|
||||
```
|
||||
|
||||
Client 模式连接外部 OpenCode V2 service:
|
||||
Client 模式连接外部 OpenCode server:
|
||||
|
||||
```bash
|
||||
OPENCODE_MODE=client
|
||||
@@ -78,6 +77,10 @@ TJWATER_API_BASE_URL=http://127.0.0.1:8000
|
||||
|
||||
本地可使用 `.local.env` 保存开发配置;系统环境变量优先级更高。
|
||||
|
||||
服务会在 HTTP 端口开始监听前完成 OpenCode 健康检查、临时会话创建和工具目录加载。`GET /health` 返回 `ready: true` 与 `warmed_up: true` 时,表示冷启动预热已经完成。开发环境会输出各预热阶段的耗时。
|
||||
|
||||
`opencode.json` 已启用 `experimental.continue_loop_on_deny`。用户拒绝权限请求后,OpenCode V1 会把拒绝结果交还给 Agent,让其尝试无需该权限的替代方案,而不是直接结束本轮执行。
|
||||
|
||||
## 配置与安全
|
||||
|
||||
不要提交 `.env`、`.local.env`、`data/`、`logs/`、会话记录、模型输出、访问令牌或 `node_modules/`。部署凭据、镜像仓库账号和 webhook 地址应放在 Gitea secrets 或部署环境变量中。
|
||||
|
||||
Reference in New Issue
Block a user