Version: 0.5.5.dev.260314

🚀 更新了 README 中的 Mermaid 图,确保与当前随口记的业务链路一致。
📚 新增了功能决策记录(docs/功能决策记录),并且记录了此次 AI 随口记功能的工程决策。
This commit is contained in:
Losita
2026-03-14 18:19:11 +08:00
parent 0b7d1b999c
commit 21d6fe5b5f
3 changed files with 202 additions and 28 deletions

View File

@@ -358,44 +358,51 @@ $$Gap = \frac{TotalAvailableSlots - (TaskCount \times 2)}{TaskCount + 1}$$
flowchart TD
A[用户消息进入 /agent/chat] --> B[规范会话ID + 选模型]
B --> C[确保会话存在<br/>Redis会话状态检查<br/>必要时回源DB创建]
C --> D[quick_note.request.accepted<br/>推送reasoning状态块]
D --> E[意图识别节点<br/>quick_note.intent.analyzing]
E --> F{是否随口记意图}
F -- --> X[回落普通聊天链路]
F -- 是 --> G[时间抽取与校验<br/>quick_note.deadline.validating]
G --> H{时间是否有效}
H -- 否 --> I[返回纠错文案<br/>不写库<br/>quick_note.failed]
H -- 是 --> J[优先级评估<br/>quick_note.priority.evaluating]
J --> K[调用写库工具<br/>quick_note.persisting]
K --> L{写入是否成功}
L -- --> M[按重试策略处理<br/>最终失败则返回错误文案]
L -- --> N[quick_note.persisted]
N --> O[quick_note.reply.polishing<br/>AI生成贴题轻松跟进句]
O --> P[拼接最终正文<br/>一次性content输出]
P --> Q[后置持久化<br/>user+assistant写Redis<br/>并写outbox/DB]
C --> D[模型控制码路由<br/>action=quick_note/chat]
D --> E{route是否命中quick_note}
E -- 否 --> X[普通聊天链路<br/>StreamChat流式输出]
E -- --> F[quick_note.request.accepted<br/>推送reasoning状态块]
F --> G[跳过二次意图判定<br/>直接进入聚合规划]
G --> H[单请求聚合规划<br/>生成title/deadline/priority/banter]
H --> I[时间校验<br/>quick_note.deadline.validating]
I --> J{时间是否有效}
J -- 否 --> K[返回纠错文案<br/>不写库<br/>quick_note.failed]
J -- 是 --> L{优先级是否有效}
L -- --> M[复用聚合优先级]
L -- --> N[本地优先级兜底<br/>不再二次调用模型]
M --> O[调用写库工具<br/>quick_note.persisting]
N --> O
O --> P{task_id是否有效}
P -- 否 --> Q[按重试策略处理<br/>最终返回失败文案]
P -- 是 --> R[quick_note.persisted]
R --> S[拼接最终正文<br/>优先复用聚合banter<br/>一次性content输出]
S --> T[后置持久化<br/>user+assistant写Redis<br/>并写outbox/DB]
X --> T
```
### 2) 总分流图(消息识别后的去向)
```mermaid
flowchart TD
A[用户消息进入 AgentChat] --> B{是否命中任务/提醒关键词}
A[用户消息进入 AgentChat] --> B[模型控制码路由<br/>action=quick_note/chat]
B --> C{路由是否成功解析}
B -- --> C[尝试随口记graph静默]
C --> D{是随口记意图?}
D -- 是 --> E[执行随口记写库链路<br/>返回一次性正文]
D -- 否 --> F[普通聊天链路<br/>StreamChat token流式输出]
C -- --> D{action=quick_note?}
D -- 否 --> E[普通聊天链路<br/>StreamChat token流式输出]
D -- 是 --> F[随口记快路径<br/>跳过二次意图判定]
F --> G[单请求聚合规划<br/>+本地时间校验/优先级兜底]
G --> H[写库工具落库<br/>task_id有效校验]
H --> I[返回一次性正文]
B -- --> G[开启reasoning状态推送]
G --> H[执行随口记graph带阶段状态]
H --> I{是随口记意图?}
I -- 是 --> J[执行随口记写库链路<br/>返回一次性正文]
I -- 否 --> K[推送fallback状态<br/>回落普通聊天StreamChat]
C -- --> J[随口记兜底路径<br/>恢复二次意图判定]
J --> K{是否随口记意图}
K -- 否 --> L[普通聊天链路<br/>StreamChat token流式输出]
K -- 是 --> M[执行随口记写库链路<br/>返回一次性正文]
E --> Z[后置持久化<br/>Redis + outbox/DB]
F --> Z
J --> Z
K --> Z
I --> Z
L --> Z
M --> Z
```
# 6 前端实现