feat(v3): T29 token 级流式输出(SSE 流式解析 + delta 事件 + 打字机渲染,D10)

- OpenAICompatChat 默认 stream=True:httpx 流式解析 OpenAI chunk,
  tool_calls 碎片按 index 组装(不在正文展示),include_usage 计量;
  失败自动回退非流式一次(已有部分增量输出则如实抛出);
  补 raise_for_status(修复流式 4xx 误入回退的缺陷)
- ToolLoop 增 on_delta(签名探测兼容 2/3 参 chat_fn);_loads_json_object 宽松解析
- DeltaThrottle >=48 字符节流落 delta 事件;单模型与两级模式(含规划者)接线
- 前端:streamText 打字机渲染 + 光标动画;工具/阶段事件到达时清空归档
- 配套修复:AgentView 闭包持有 push 前原始对象导致响应式丢失、过程事件不渲染
- 测试 +7(SSE 解析/碎片组装/回退/部分失败抛出/on_delta/节流/service delta 事件),
  全量 296 passed
This commit is contained in:
tzt
2026-09-01 23:41:45 +08:00
parent ca8add02e2
commit ddef8bec1c
18 changed files with 786 additions and 62 deletions
@@ -123,3 +123,16 @@
Enter 发送,运行中变红色停止钮);工具过程折叠收纳,历史轮次仅显示步数摘要。
- **工程**ToolLoop 增 history 参数;工具步数统一在事件写入层统计;
会话存储测试隔离(防泄漏进真实 agent_runs/sessions/)。
## 9. 增补:审批流与流式输出(D9/D10T28/T29
- **决策 D9(操作审批,对齐 dsh)**:`agent.approval_policy` = off | dangerous(默认:
写/编辑/命令询问,只读自动放行)| all;工具执行前经 approval_hook 挂起等待,
UI 两按钮(拒绝 / 允许一次),超时 `approval_timeout_s`(默认 120s)自动拒绝
fail-closed);拒绝结果回喂模型可改道;approval_request/decided 事件对入审计。
- **决策 D10token 级流式)**OpenAICompatChat 默认 stream=TrueSSE 逐段解析,
tool_calls 碎片按 index 组装、不在正文展示;include_usage 计量);流式失败自动
回退非流式一次(已有部分增量输出时如实抛出);ToolLoop 经 on_delta 转发,
DeltaThrottle ≥48 字符节流落 delta 事件;前端打字机式实时渲染 + 光标。
- **配套修复**:Vue 响应式丢失 bug——闭包持有 push 前原始对象导致过程事件不渲染,
改取响应式代理对象。