feat(agent): ✨ 在 Agent 聊天接口中新增 AI 随口记功能 * 无相关意图时保持正常聊天,若识别到相关意图则自动切换为随口记模式 * 支持阶段状态反馈与话题化回复,提升交互体验 - 引入请求级当前时间基准,支持相对时间解析(如“明天”、“下周一”等) - 增加非法日期拦截机制,防止用户输入格式错误的时间并返回修正提示 - 优化随口记图谱,补充阶段打点与详细中文注释,失败/重试分支处理更清晰 - 推送 `reasoning_content` 阶段状态,涵盖 `request.accepted`、`intent`、`deadline`、`priority`、`persisting`、`persisted`、`reply.polishing` 等状态 - 最终文案改为“事实句 + AI 生成的贴题轻松跟进句”,避免硬编码调侃内容 - 完善时间解析相关测试,确保功能正确性,测试通过 `go test ./...` --- improvements: 🛠️ 开发心路历程与优化 * 修复随口记链路中 `assistant` 消息未写入 Redis 的问题,确保消息持久化 * 去除“分段正文伪流式”处理,改为最终正文一次性输出,简化内容流转
32 lines
1.0 KiB
Markdown
32 lines
1.0 KiB
Markdown
# backend/agent 目录说明
|
||
|
||
该目录当前按“聊天流式输出能力”和“可编排的随口记能力”拆分:
|
||
|
||
1. `graph.go`
|
||
- 仅负责现有流式聊天输出封装(SSE/OpenAI 兼容 chunk 转换)。
|
||
- 已有线上链路依赖,当前不改业务逻辑。
|
||
|
||
2. `prompt.go`
|
||
- 通用 Agent 提示词。
|
||
|
||
3. `quick_note_prompt.go`
|
||
- AI 随口记专用提示词(意图识别、优先级评估)。
|
||
|
||
4. `state.go`
|
||
- 随口记链路状态结构(意图标记、抽取结果、重试计数、持久化结果)。
|
||
|
||
5. `tool.go`
|
||
- 随口记工具打包入口:
|
||
- `BuildQuickNoteToolBundle`
|
||
- 工具输入输出 schema
|
||
- deadline 解析与优先级校验
|
||
|
||
6. `quick_note_graph.go`
|
||
- 随口记 graph 编排实现:
|
||
- 节点1:意图识别
|
||
- 节点2:优先级评估
|
||
- 节点3:调用写库工具
|
||
- 分支:失败自动重试(最多 3 次)
|
||
|
||
> 说明:服务层通过 `RunQuickNoteGraph` 调用该图;若判定为非随口记意图,会自动回落到原有普通流式聊天逻辑。
|