docs(backend): 记录全面审阅问题与修复方案

按原因、后果、解决思路、落地方案和回归测试复盘 10 类后端问题。

同步更新接口实现状态、Plugin 权限接口、真实 Streaming、Citation 偏移约定、第一阶段 Tool 列表和测试数量。
This commit is contained in:
2026-08-28 09:57:02 +08:00
parent 36bc1022f1
commit 694c1b27c1
5 changed files with 364 additions and 13 deletions
+15 -5
View File
@@ -93,7 +93,7 @@ streaming
}
```
`POST /api/chat` 返回 ModelEvent SSE。
`POST /api/chat` 返回 ModelEvent SSE。OpenAI-Compatible Adapter 直接消费上游 SSEOllama Adapter 直接消费 JSONL`TextDelta` 是真实增量内容,不再等待整段回答完成。
另外已经实现以下可配置 Adapter:
@@ -166,7 +166,7 @@ GET /api/agent/runs/{run_id}/events
POST /api/agent/runs/{run_id}/cancel
```
当前 Run 与 Trace 保存在内存中,AI Core 重启后清空。后续数据库层接入时替换 Repository,不改变 API Contract。
当前 Run 与 Trace 保存在内存中,AI Core 重启后清空。Runtime 最多保留 200 个 Run,每个 Run 最多保留 2000 个事件,并限制单轮 Tool Call 数量,避免长时间运行时无界增长。后续数据库层接入时替换 Repository,不改变 API Contract。
## Tool Calling
@@ -181,6 +181,12 @@ notes.read
notes.create
notes.update
notes.list
notes.move
tasks.create
tasks.update
tasks.list
attachments.read
audio.transcribe
```
Mock Provider 使用下面的开发语法产生 Tool Call:
@@ -229,7 +235,7 @@ POST /api/agent/runs/{run_id}/permissions/{request_id}
{"decision":"deny"}
```
默认需要确认的高影响权限包括 `notes.write``notes.delete``network.request``secrets.use`
默认需要确认的高影响权限包括 `notes.write``notes.delete``tasks.write``network.request``secrets.use`权限命名空间采用白名单,未知权限默认拒绝。
## Knowledge / Retrieval 接入
@@ -296,9 +302,12 @@ POST /api/plugins/install
GET /api/plugins/{plugin_id}
POST /api/plugins/{plugin_id}/enable
POST /api/plugins/{plugin_id}/disable
PUT /api/plugins/{plugin_id}/permissions
DELETE /api/plugins/{plugin_id}
```
Plugin Manifest 中的权限只是声明,不代表已经授权。带权限的 Plugin 安装后进入 `permission_required`,Host 必须通过权限接口记录用户授权,之后才能启用。JSON Schema 在安装阶段校验,Tool 调用时再次校验实际参数。
内置示例 `text-tools` 注册 `text.uppercase`。内置 `knowledge-assistant` Skill 同时声明 `notes.search``text.uppercase`,用于验证完整链路:
```text
@@ -313,9 +322,10 @@ Skill Manifest
## 当前限制与下一步
- 已实现 Mock、OpenAI-Compatible Chat Completions 与 Ollama AdapterOpenAI Responses 和 Anthropic Messages 尚未实现。
- Provider 配置暂存内存,后续通过 Repository 接入 SQLite。
- Provider 配置暂存内存,后续通过 Repository 接入 SQLitePATCH 已支持用显式 `null` 清空 base URL、默认模型和凭据引用
- Run/Trace 暂存内存;下一步抽象 Repository 并接入 SQLite。
- Permission 已有核心等待/恢复机制,前端确认 UI 尚未联调。
- Task、Attachment、Audio Tool 尚未接入
- Task 已持久化到 SQLiteAttachment Tool 读取 Host 管理目录中的 UTF-8 文件
- `audio.transcribe` 当前消费 Host 预生成的 transcriptfaster-whisper 与说话人分离仍按技术基线在第二阶段接入。
- Extension 安装记录暂存内存;后续接入持久化 Registry 与版本升级流程。
- 当前 Plugin Host 只支持内置声明式白名单 handler;MCP Bridge、独立进程健康检查与 UI Contribution 在第二阶段实现。