feat(agent): 重构随口记为模型控制码分流 + 单请求聚合规划,关闭非流式thinking并修复假成功,将随口记全流程从10s+缩短到5s左右,显著提升用户体验 路由层改为“模型控制码协议”分流(quick_note|chat),替换关键词/置信度猜测 路由命中 quick_note 时信任路由,graph 跳过二次意图判定(减少一次 LLM 调用) 新增单请求聚合规划:一次返回 title/deadline_at/priority_group/priority_reason/banter 快路径优先复用聚合结果;优先级缺失时本地兜底,避免再次触发优先级模型调用 最终回复优先使用聚合 banter,聚合路径缺失时使用固定文案,不再额外润色调用 非流式 Generate 全面显式关闭 thinking,并收紧 max_tokens/temperature(路由、JSON规划、banter) 保留并强化写库成功门槛:task_id > 0 才允许成功回包,修复“回复成功但未落库”风险 增加/更新测试:控制码解析、nonce 校验、标题提取、banter 复用与无效 task_id 防假成功 保持 OpenAI 兼容 SSE 格式与现有流式聊天链路不变
backend/agent 目录说明
该目录当前按“聊天流式输出能力”和“可编排的随口记能力”拆分:
graph.go
- 仅负责现有流式聊天输出封装(SSE/OpenAI 兼容 chunk 转换)。
- 已有线上链路依赖,当前不改业务逻辑。
prompt.go
- 通用 Agent 提示词。
quick_note_prompt.go
- AI 随口记专用提示词(意图识别、优先级评估)。
state.go
- 随口记链路状态结构(意图标记、抽取结果、重试计数、持久化结果)。
tool.go
- 随口记工具打包入口:
BuildQuickNoteToolBundle- 工具输入输出 schema
- deadline 解析与优先级校验
quick_note_graph.go
- 随口记 graph 编排实现:
- 节点1:意图识别
- 节点2:优先级评估
- 节点3:调用写库工具
- 分支:失败自动重试(最多 3 次)
说明:服务层通过
RunQuickNoteGraph调用该图;若判定为非随口记意图,会自动回落到原有普通流式聊天逻辑。