feat(chat): stream and persist local answer UI with final report references

This commit is contained in:
2026-10-12 18:54:18 +08:00
parent a31b76a793
commit f5c3cde2c2
20 changed files with 827 additions and 105 deletions
+18
View File
@@ -341,3 +341,21 @@ volumes:
[CI 工作流](.gitea/workflows/package.yml) 在推送 `v*` 标签或手动触发时调用共享容器流水线。当前镜像名为 `gitea.waternetwork.cn/orgtjwater/next-tjwater-agent`,部署服务名为 `next-agent`;仓库需设置 `REGISTRY_USERNAME`、`REGISTRY_PASSWORD`、`DEV_DEPLOY_SSH_KEY`。具体候选验证和发布步骤由共享模板定义。
代码修改约束见 [AGENTS.md](AGENTS.md),前端协议见 [Agent UI 协议](docs/agent-ui-protocol.md),任务计划规则见 [工况执行计划](docs/execution-plan.md)。
### 本地交互式聊天回答
原生插件通过 `present_answer` 发布 `answer-ui@1` 内容块,现有聊天消息流输出
`data-answer_ui`,允许文字与本地指标、表格、图表、证据、地图定位和补充资料表单交替出现。
相同 block_id 更新本轮内容;消息持久化与历史恢复保留结构化部分。最终答复包含
完整报告文字及 ui_block_ids 引用的已发布组件,其余过程默认折叠。已发布界面的
聊天在最终答复完成且无待完成工具时收尾,不代替后台任务的完成接口。后台调查执行
不发布聊天界面块,继续使用原任务报告和展示通道。
组件参数契约由供水前端 catalog 导出到 `src/chat/answer-ui-catalog.json`,
本服务按该契约校验组件参数及树结构。前端与 Agent 需同步更新,插件变化需要重启
Agent,客户端模式也需更新外部 OpenCode 的可信资产。无需新增 domain key、
UI 托管服务配置或数据库迁移。详见
[前端接入与扩展说明](../next-tjwater-frontend/docs/agent-answer-ui.md)。
原生工具发现验证:`bun run tests/integration/answer-ui-smoke.ts`,使用独立临时数据库,
不调用模型推理,不接管既有服务。