docs: 更新 README 以匹配当前代码结构和 API
This commit is contained in:
@@ -30,41 +30,30 @@ TJWaterAgent/
|
|||||||
1. 启动 HTTP 服务。
|
1. 启动 HTTP 服务。
|
||||||
2. 通过 `@opencode-ai/sdk` 启动内嵌 opencode server,或连接外部 opencode server。
|
2. 通过 `@opencode-ai/sdk` 启动内嵌 opencode server,或连接外部 opencode server。
|
||||||
3. 管理前端 `session_id -> opencode sessionId` 的映射。
|
3. 管理前端 `session_id -> opencode sessionId` 的映射。
|
||||||
4. 保存并传递用户 `Authorization`、`x-user-id`、`x-project-id`、`x-trace-id`。
|
4. 保存并传递用户的鉴权信息(accessToken, actorKey)、项目上下文(projectId, projectKey)以及 traceId。
|
||||||
5. 把 opencode 输出适配成前端需要的 SSE 事件。
|
5. 把 opencode 输出适配成前端需要的 SSE 事件。
|
||||||
6. 为 `.opencode/tools/dynamic_http_call.ts` 提供内部回调接口。
|
6. 为 `.opencode/tools/dynamic_http_call.ts` 等工具提供内部回调接口。
|
||||||
7. 代理调用真实 TJWater 后端 API。
|
7. 代理调用真实 TJWater 后端 API。
|
||||||
|
|
||||||
当前 Agent API 的主入口:
|
主要目录结构说明:
|
||||||
|
|
||||||
```text
|
| 目录 | 职责 |
|
||||||
POST /api/v1/agent/chat/stream
|
|
||||||
```
|
|
||||||
|
|
||||||
该接口返回 SSE,事件包括:
|
|
||||||
|
|
||||||
| event | 用途 |
|
|
||||||
| --- | --- |
|
| --- | --- |
|
||||||
| `progress` | 前端过程可视化,展示规划、工具调用和完成状态 |
|
| `src/routes/` | 路由定义,如 `chat.ts` 处理聊天请求 |
|
||||||
| `token` | 最终回答文本流 |
|
| `src/chat/` | 会话桥接逻辑,负责 Express 与 opencode 会话的同步 |
|
||||||
| `tool_call` | 前端地图/面板/图表动作 |
|
| `src/runtime/` | opencode 运行时管理,控制 SDK 的启动与状态检查 |
|
||||||
| `done` | 当前轮完成 |
|
| `src/session/` | 会话注册中心和工具执行时的上下文关联存储 |
|
||||||
| `error` | 当前轮失败 |
|
| `src/tools/` | 内部工具执行器,如 `dynamicHttpExecutor` 负责构造真实的业务请求 |
|
||||||
|
| `src/learning/` | Agent 学习状态协调器,负责处理记忆累积和知识更新 |
|
||||||
|
| `src/audit/` | 审计记录,包含学习过程和 LLM 请求审计 |
|
||||||
|
|
||||||
主要目录和文件:
|
当前 Agent API 的主接口:
|
||||||
|
|
||||||
```text
|
```text
|
||||||
src/
|
POST /api/v1/chat/message
|
||||||
server.ts
|
|
||||||
config.ts
|
|
||||||
runtime/
|
|
||||||
session/
|
|
||||||
chat/
|
|
||||||
routes/
|
|
||||||
tools/
|
|
||||||
```
|
```
|
||||||
|
|
||||||
其中 `src/` 是业务服务层,不直接放 opencode skill 或 agent prompt。
|
该接口返回 SSE 格式数据。
|
||||||
|
|
||||||
## `.opencode/` 的职责
|
## `.opencode/` 的职责
|
||||||
|
|
||||||
@@ -73,40 +62,52 @@ src/
|
|||||||
### agents
|
### agents
|
||||||
|
|
||||||
```text
|
```text
|
||||||
.opencode/agents/agent.md
|
.opencode/agents/instruction.md
|
||||||
```
|
```
|
||||||
|
|
||||||
这里定义默认 agent 的角色、行为规则、模型配置和工具使用策略。
|
这里定义默认 agent 的角色、行为规则、模型配置和工具使用策略。目前的 `default_agent` 配置为 `instruction`。
|
||||||
|
|
||||||
当前项目已将 always-loaded instructions 收敛到 `agent.md`,`opencode.json` 不再额外配置 `instructions` 数组。
|
|
||||||
|
|
||||||
### tools
|
### tools
|
||||||
|
|
||||||
```text
|
```text
|
||||||
.opencode/tools/
|
.opencode/tools/
|
||||||
dynamic_http_call.ts
|
dynamic_http_call.ts # 动态 HTTP 调用,通过回调 host 服务获取鉴权
|
||||||
locate_features.ts
|
fetch_result_ref.ts # 获取结果引用
|
||||||
view_history.ts
|
locate_features.ts # 地图定位
|
||||||
view_scada.ts
|
memory_manager.ts # 记忆管理
|
||||||
show_chart.ts
|
skill_manager.ts # 技能管理
|
||||||
|
show_chart.ts # 图表展示
|
||||||
|
...
|
||||||
```
|
```
|
||||||
|
|
||||||
这些是 opencode 可以调用的自定义工具。
|
这些是 opencode 可以调用的自定义工具。
|
||||||
|
|
||||||
`dynamic_http_call.ts` 不直接保存用户 token,也不直接访问后端。它会回调 `TJWaterAgent` 的内部接口,由上级服务层根据当前 session 补上用户 token、项目 ID 和 trace ID,再调用 TJWater 后端。
|
|
||||||
|
|
||||||
前端类工具如 `locate_features`、`view_history`、`view_scada`、`show_chart` 主要用于触发 UI 动作或可视化,不应被当作数据查询工具。
|
|
||||||
|
|
||||||
### skills
|
### skills
|
||||||
|
|
||||||
```text
|
```text
|
||||||
.opencode/skills/tjwater-skills-root-index/
|
.opencode/skills/
|
||||||
SKILL.md
|
SKILL.md # 根索引
|
||||||
ai/
|
analytics/ # 分析类技能(SCADA、水力模拟、爆管分析等)
|
||||||
analytics/
|
business/ # 业务类技能(模型配置、资产管理、项目环境等)
|
||||||
business/
|
data/ # 数据类技能(时序数据访问)
|
||||||
data/
|
platform/ # 平台类技能(审计、缓存、元数据等)
|
||||||
platform/
|
```
|
||||||
|
|
||||||
|
这里保存 TJWater 技能树,保持树结构以符合渐进式披露设计。
|
||||||
|
|
||||||
|
## 启动与开发
|
||||||
|
|
||||||
|
项目使用 `bun` 作为包管理器和运行环境。
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 安装依赖
|
||||||
|
bun install
|
||||||
|
|
||||||
|
# 启动开发环境(带 watch 模式)
|
||||||
|
bun run dev
|
||||||
|
|
||||||
|
# 类型检查
|
||||||
|
bun run check
|
||||||
```
|
```
|
||||||
|
|
||||||
这里保存 TJWater 技能树,并保持树结构,符合渐进式披露设计。
|
这里保存 TJWater 技能树,并保持树结构,符合渐进式披露设计。
|
||||||
|
|||||||
Reference in New Issue
Block a user