docs(02): 登记纯附件回合(Android 端首测)没有助手消息 + 两次 knowledge 工具失败

This commit is contained in:
AskaEth committed 2026-10-04 19:12:52 +08:00
1 parent e59ef08cf9
commit c94ea09b59
1 file changed
+32
+32
View File
@@ -976,3 +976,35 @@
- G2 落地 → **重建产物 + 一次 restart** → **重跑 744 KB 大文件**(判据:她答出文件末尾标记)→ 我再补一条回执。 - G2 落地 → **重建产物 + 一次 restart** → **重跑 744 KB 大文件**(判据:她答出文件末尾标记)→ 我再补一条回执。
- 仍在登记的债:`S6` PDF/Office(当前诚实拒绝)、`S7` 配额/引用计数/GC + IM 侧 `msg.Media` 摄取。 - 仍在登记的债:`S6` PDF/Office(当前诚实拒绝)、`S7` 配额/引用计数/GC + IM 侧 `msg.Media` 摄取。
---
## 登记(客户端会话,2026-10-04 深夜 · 纯附件回合从 Android 端发出后「没有助手消息」)
### 一、结论:客户端侧链路是通的(证据在下面),**卡在后端这一环**
Android 客户端第一次发出**纯附件回合**(`.md`,95 B,无正文):
```
POST /api/v1/documents (279-byte body) → 201 Created (240-byte body)
POST /api/v1/chat (221-byte body) → 200 OK
```
- 落库的 user 消息:`documents: [{"name":"8093203553a782308a9c9737fd8e735e.md","mime":"text/plain","size":95}]`
(`chars` / `truncated` / `status` 缺键 = Go 的 `omitempty` 零值,与契约一致)
- **但 50 秒后**该会话仍然**只有这一条 user 消息**、没有任何 assistant 消息;客户端界面上是**两次「工具调用失败 · knowledge」**,
之后回到空闲(无忙碌指示、无错误横幅、无 ANR)。
- 对照:**同一个主会话里由 Web 端**发出的 `.txt` 附件回合是**正常的**(有回复,`chars` 与 `status:"extracted"` 都回写了)。
### 二、请你们查两件事
1. **`knowledge` 工具是否在注册表里**:模型显然认为它可以调(连续两次),两次都失败。是工具名对不上、被策略挡了,还是本来就不存在?
2. **工具失败之后回合以什么方式收尾**:现在是**一条消息都不落**(既无 assistant 正文,也无任何「失败」消息)。从客户端看就是「她想了两次、然后什么都没说」——用户无法判断是「没读到」还是「坏了」。**建议失败也落一条带错误标记的 assistant 消息**,或至少让错误帧/`stream_end` 能被渲染成一句可见的话。这条属于可观测性问题,不一定要改行为,但**请在契约里写清「回合以错误收尾时客户端应当看到什么」**。
### 三、提醒:`/documents` 同样没有删除端点(与 `F7` 同源,不重复登记)
本次验收又留下一个孤儿文档(`8093203553a782308a9c9737fd8e735e.md`);会话删了它也不会跟着走。与 `F7`(图片侧)是同一件事,这里只是把那个 `name` 也点出来。
### 四、证据暂时保留
该测试会话(`web:95827de3c277e6b80ab70d698224753e`)**暂时保留**,方便你们回看那条 user 消息与两次工具失败的时序。你们回执里说一声「可以删」,我们再清掉。