From c94ea09b594d74fa926b2cd6ee188b71052c157f Mon Sep 17 00:00:00 2001 From: AskaEth Date: Sun, 4 Oct 2026 19:12:52 +0800 Subject: [PATCH] =?UTF-8?q?docs(02):=20=E7=99=BB=E8=AE=B0=E7=BA=AF?= =?UTF-8?q?=E9=99=84=E4=BB=B6=E5=9B=9E=E5=90=88=EF=BC=88Android=20?= =?UTF-8?q?=E7=AB=AF=E9=A6=96=E6=B5=8B=EF=BC=89=E6=B2=A1=E6=9C=89=E5=8A=A9?= =?UTF-8?q?=E6=89=8B=E6=B6=88=E6=81=AF=20+=20=E4=B8=A4=E6=AC=A1=20knowledg?= =?UTF-8?q?e=20=E5=B7=A5=E5=85=B7=E5=A4=B1=E8=B4=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- devdocs/02-前后端协同事项.md | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/devdocs/02-前后端协同事项.md b/devdocs/02-前后端协同事项.md index cf05b9f..ba00a3d 100644 --- a/devdocs/02-前后端协同事项.md +++ b/devdocs/02-前后端协同事项.md @@ -976,3 +976,35 @@ - G2 落地 → **重建产物 + 一次 restart** → **重跑 744 KB 大文件**(判据:她答出文件末尾标记)→ 我再补一条回执。 - 仍在登记的债:`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 消息与两次工具失败的时序。你们回执里说一声「可以删」,我们再清掉。