第一幕 · 拆成多引擎(规则 + LLM 混合)
最初把能力拆成独立引擎:T02 拆解 / T03 排程 / T04 反馈解析 / T05 重排 + Orchestrator 路由。优点是职责清楚、易单测、易定位。
代价开始显现:跨模块数据结构必须严格一致,中间任一层格式偏一点,用户看到的就是「整个计划都不对」,但根因藏在任意一层的缝隙里。
SYSTEM · CASE STUDY
从实际行为而不只是计划中学习的个人工作流优化系统。
它观察我真正做了什么,理解执行与计划的偏差,并用这些证据改进之后的排期与自动化;完整优化闭环仍在开发中。
界面正在补充「上次汇总 / 下次汇总」的可见性,以及日、周、月时间使用视图。当前重点是证据驱动的自我优化,而不是通用日历助手。
展示输入一个大任务、生成七天计划,并在周视图中反馈任务进度的当前原型。
一个面向学生 / 个人效率场景的对话式规划原型。系统已分别实现自然语言任务拆解、排期、周视图与反馈重排模块;目前仍在联调这些模块在同一真实交互中的状态传递和冲突处理。
普通日历只能存「事件」,不理解「任务」。真实痛点不是「记个时间」,而是:有个目标(写论文 / 学课程),却不知道怎么拆、每天做什么、做不完怎么调整。
所以目标不是「做个日历」,而是做一个能理解任务、安排时间、并在进度变化后自动重排的系统。
整个项目最关键的一条分界:让 LLM 只做它擅长的语义理解,把排期的正确性交给确定性引擎。
最初把能力拆成独立引擎:T02 拆解 / T03 排程 / T04 反馈解析 / T05 重排 + Orchestrator 路由。优点是职责清楚、易单测、易定位。
代价开始显现:跨模块数据结构必须严格一致,中间任一层格式偏一点,用户看到的就是「整个计划都不对」,但根因藏在任意一层的缝隙里。
复杂度上来后我开始问:「是不是直接全交给 AI 更简单?」我没停在想法,而是真做了两条实验链路(langgraph-practice 分支):LangGraph 编排 / 单次 LLM JSON。
结论很关键——三条路单独都不行:
真正的顿悟是:卡点根本不在「用规则还是 LLM 还是 graph」,而在 ① 领域建模和确定性排程算法本身;② 没有可信的评测。于是两个决定:
这一幕是整个项目最有价值的部分:我从「加功能 / 修 bug」进入到「系统设计 + 评测文化」。
| 难点 | 现象 | 解决 |
|---|---|---|
| 拆解「像对了」但抽象 | LLM 输出「学习监督学习基础」这类占位 / 大块 | 加入 few-shot、抽象↔具体对照与调用重试,并继续用真实任务校准拆解粒度 |
| 排期堆在同一天 | 贪心塞满,「7 天计划」3 天排完 | 从「正向贪心」改为按 deadline 反推均摊;排不下溢出而非丢弃 |
| 新旧任务重叠 | 每个入口各写避让 → 失控 | 时间槽后处理统一收口:共享 find_available_slot + validate_no_overlap |
| 模糊反馈难 | 「做了一半」要定位任务、算剩余、重排 | 统一 task_id / slot 结构,反馈与重排复用同一套时间表管线;补范围序数 / 取消 / 模糊澄清 |
| 跨模块隐藏问题 | 单个模块测试通过,接到真实交互后仍出现异常 | 针对时长塌缩、分数小时冲突、意图误判与状态不同步逐项定位 |
该项目尚未形成稳定上线版本,但通过实际开发暴露了 Agent 系统中「局部模块通过不等于端到端可用」的问题,也促使我重新设计评测、验收与变更管理流程。
这个项目最有价值的不是把页面做出来,而是让我从「功能开发」进入「系统设计」:
我没停在「怀疑架构」,而是真做了 LangGraph 和单次 LLM 两种实验去比较稳定性 / 灵活性 / 维护成本;最后想明白答案不是二选一,而是分层,并用评测持续暴露端到端问题。这让项目从一个产品原型,变成了一个「AI 应用编排方式」的实验场。
当前状态:原有的任务拆解、排期与反馈重排模块继续保留;新的行为观察与分类链路已在本地运行,但「观察 → 学习 → 重排」还不是完成态。
下一步:先改善跨项目切换的分类边界,补齐汇总时效与时间使用视图,再把行为证据稳定接回重排决策。
React / Vite 前端 · Python HTTP API 后端 · LLM + 本地规则兜底 · 确定性排期与重排模块 · 单元测试 / 场景评测脚本。