工作流按内容类型分开而不是抽象成一条通用流水线
两条流水线各自要做什么
笔记保存后 → 找相关旧内容 → 检查思考是否全面 → 检查是否已表达过相同观点 → 对比新旧观点变化 → 结果浮到笔记旁
文章到库后 → 生成摘要 → 找相关/相似内容 → 在合适时机浮出
共享的只有「执行引擎」
两条流水线共用的仅是基础设施能力:任务创建、领取、lease 防卡死、失败重试、指数退避、内容版本校验、超时隔离、运行日志。任务记录带 kind(summary / embedding / relation / note_insight)、target(note / clip / feed_entry)、inputVersion、status、attempt。
核心规则:内容版本变了旧任务不能覆盖新内容;同内容同版本同模型不重复生成;单任务失败不中断整批;最多重试三次;调度进程退出后状态仍在数据库里。
边界:工作流不是 Agent
后台工作流是纯工作流 —— 不启动 Agent Harness、不创建会话、不跑 Tool Loop、没有主动对话能力,只按任务记录执行固定步骤。Agent 是另一套主动能力,通过 Skill 去调用工作流提供的查询接口。
反过来,交互式的事不能排进后台工作流:用户问答、润色扩写、确认后的即时反馈必须在请求里实时执行(见 后台任务队列选型)。
相关
- Agent编排层薄自建优先于重型框架 —— 同族的「别过度抽象」判断
- 按实际规模选型而不是按方案先进性 —— 抽象层级的成本正比于覆盖组合数
- 物化结果要按版本失效并增量刷新 —— 这两条流水线产出的结果怎么保鲜
- 后台任务队列选型 —— 共享的调度层怎么实现
- 职责要先分家再谈实现 —— 先分清是两条流水线,再谈共享什么