这是一个独立业务工程。用户提交全部学习任务及其总工作量,Timing 通过 Hypha DomainPack、FSM 和 Event-first Runtime 将任务自动拆分到多个日期,并在人工确认后形成可执行计划。业务代码不属于 Hypha,也未修改 CodeSoul-Hypha。
- 读取完整任务池、总工作量、优先级、截止日期、每日容量和固定事项;
- 使用 MiniMax 将一段自然语言转换成可编辑任务草案,人工确认后才进入任务池;
- 将大任务拆成学习块,并在规划周期内自动跨日分配;
- 将学习量分散到早晨、下午和晚间,不默认堆积在单一时段;
- 自动保护睡眠、早餐、午餐午休、晚餐以及学习块间休息;
- 支持使用普通表单补充课程、会议、通勤等必须事项;
- 显式报告周期容量、已排工作量和未排剩余量;
- 生成无冲突候选总计划,不直接覆盖当前版本;
- 两次显式人工确认后才写入初始计划和重排计划;
- 记录专注完成/中断,展示重排差异和未排原因;
- 生成非惩罚性的日报与明日建议;
- 输出完整 Run、FSM 状态路径和 Event Trace。
版本锁定见 hypha.lock.json:整合基线 dev-domain-merge@1232120,当前兼容验证 Runtime 65afae3,@hypha/domain 包版本 0.0.0。本地通过 file:../CodeSoul-Hypha/packages/* 引用已提交代码;业务兼容层同时支持带预计算编译证据的旧结果和当前 DomainCompilationResult。
环境要求:Node.js 24+,且同级目录存在已构建的 CodeSoul-Hypha。首次获取项目时按以下结构克隆两个独立仓库:
git clone https://github.com/CodeSoul-co/Hypha.git CodeSoul-Hypha
git clone https://github.com/CodeSoul-co/Timing-Agent.git Timing-Agent
cd CodeSoul-Hypha
git switch runtime
npm install
npm run build
cd ..\Timing-Agent复制 .env.example 为 .env,填写 MiniMax Key。国内开放平台使用 https://api.minimaxi.com/v1,国际开放平台使用 https://api.minimax.io/v1。密钥只由本地服务端读取,不进入浏览器或 Git。运行 Web 服务的进程需要允许访问对应 MiniMax HTTPS 域名。
cd E:\Theta\Hypha\Timing-Agent
npm install --ignore-scripts --no-audit --no-fund
npm run demo启动本地网页工作台:
npm run web浏览器打开 http://127.0.0.1:4173 进入 Timing 首页,点击右上角“进入工作台”打开 http://127.0.0.1:4173/workbench。工作台调用同一套 Hypha DomainPack/FSM/Runtime 代码,展示跨日计划、重排差异、按日执行、日报、FSM 路径和 Event Trace。任务池、执行记录和最近一次计划自动保存在当前浏览器,刷新不会丢失;“载入示例”会主动恢复示例数据。
点击“生成候选计划”会进入独立的“确认计划日程”页面。候选阶段由 Timing DomainPack 编译出的 FSM 创建临时 Hypha Run,并停在 AwaitPlanApproval;它留下 Event Trace,但不会写入正式计划。用户可先通过“全周期计划日程”核对每个日期的学习任务、必须事项、生活作息和休息,再批准或拒绝。批准后才执行完整 Hypha Run。http://127.0.0.1:4173/workbench?preview=1#review 用于演示待确认候选,http://127.0.0.1:4173/workbench?demo=1#plan 用于演示已完成 Run,二者都不代替正式人工操作流程。
网页使用顺序:
- 在“待规划任务”用一段话提交全部任务和必须事项,生成 MiniMax 草案;也可继续使用表单或 CSV;
- 在草案中逐项核对并补充总分钟、优先级和截止时间,点击“应用到任务池”;
- 设置规划天数、平日/周末每天可投入分钟、单次学习块、休息、起床和睡觉时间;
- 在“必须事项”中检查课程、会议、通勤等不可移动时间;
- 点击“生成候选计划”,系统自动跳转到“确认计划日程”;也可点击顶部流程第 2 步或左侧“计划日程”进入;
- 在“全周期计划日程”按日期、类型筛选,核对每个事件的时间、时长和安排依据;
- 点击“批准并创建正式 Run”写入计划,或点击“拒绝候选”退回修改;
- 在“智能规划”中按日期查看日程明细,在“按日执行”中更新状态、实际分钟或启动计时;
- 当日执行记录变化后,日报自动重算。
CSV 列为 title,totalMinutes,priority,deadline。用户不为任务填写开始时间,具体日期和时间由系统分配。示例见 fixtures/tasks-import-example.csv。
最新验证截图包括 artifacts/screenshots/timing-ai-intake-desktop.png、timing-ai-intake-mobile.png、timing-review-desktop.png、timing-review-mobile.png、timing-agenda-clear.png 和 timing-agenda-mobile.png。
生成全部验收产物:
npm run run:full输出位置:
examples/example-output.json:示例业务输出;artifacts/runs/full-run.json:完整 Run、FSM、Replay 和输出;artifacts/runs/event-trace.json:按时间排序的 Event Trace。
domain-pack/timing-learning.domain.yaml:完整 Demo DomainPack;domain-pack/slices/workload-plan.slice.yaml:只含总任务量拆分和确认链路的最小可编译 Slice。
两者都通过 Hypha loader、validator 和 compiler,不在 packages/domain 内保存具体 Learning Pack。
app/cli/:可运行 Demo 入口;app/web/:本地 HTTP API 和响应式 Demo 工作台;backend/runtime/:Hypha RunManager + 编译后 FSM 的业务编排;backend/adapters/:通过@hypha/inference调用 MiniMax 的业务 Adapter;backend/prompts/:自然语言任务提取 Prompt;backend/services/:确定性排程和计划版本业务逻辑;domain-pack/:具体 Timing DomainPack 与 Slice;fixtures/、examples/:示例输入输出;tests/:DomainPack Package Test、排程测试、完整 Run 测试;scripts/:交付完整性和运行证据校验;docs/:Framework 第一轮更新和已知问题;artifacts/runs/:可复核完整运行证据。
npm run test:package
npm test
npm run verify:deliveryPackage Test 验证完整 Pack 和 Slice 均走 DomainPack -> Workflow -> FSM 编译路径;业务测试验证 MiniMax 草案治理、跨日拆分、早中晚分配、生活作息、学习间休息、必须事项优先、容量不足明示、截止日期、审批和 FSM 状态路径。
MiniMax 配置见 .env.example。fixtures/web-input.json 是网页初始待规划任务,fixtures/example-input.json 额外包含执行反馈和重排。AI 草案固定返回 writesCommitted=false;所有正式计划写入必须使用 approved,拒绝不会改变当前计划版本。
MiniMax 调用经过 @hypha/inference 的 OpenAIAPIInferenceBackend,业务代码不直接绕过 Hypha 调用第三方 SDK。LLM 只负责生成任务草案;Scheduler、FSM、审批、Run 和 Event 使用 Hypha 及确定性业务服务。持久化 Memory 和业务数据库仍不在本轮范围。
输入见 fixtures/example-input.json,输出见 examples/example-output.json。输入覆盖 1200 分钟总任务量、7 天容量、固定课程、临时课程、专注偏差和两次人工确认。
详见 docs/known-issues.md。
完整交付映射见 docs/deliverables.md,测试实录见 docs/test-report.md。