Skip to content

Repository files navigation

Timing 学习计划 Agent Demo

这是一个独立业务工程。用户提交全部学习任务及其总工作量,Timing 通过 Hypha DomainPack、FSM 和 Event-first Runtime 将任务自动拆分到多个日期,并在人工确认后形成可执行计划。业务代码不属于 Hypha,也未修改 CodeSoul-Hypha

功能

  • 读取完整任务池、总工作量、优先级、截止日期、每日容量和固定事项;
  • 使用 MiniMax 将一段自然语言转换成可编辑任务草案,人工确认后才进入任务池;
  • 将大任务拆成学习块,并在规划周期内自动跨日分配;
  • 将学习量分散到早晨、下午和晚间,不默认堆积在单一时段;
  • 自动保护睡眠、早餐、午餐午休、晚餐以及学习块间休息;
  • 支持使用普通表单补充课程、会议、通勤等必须事项;
  • 显式报告周期容量、已排工作量和未排剩余量;
  • 生成无冲突候选总计划,不直接覆盖当前版本;
  • 两次显式人工确认后才写入初始计划和重排计划;
  • 记录专注完成/中断,展示重排差异和未排原因;
  • 生成非惩罚性的日报与明日建议;
  • 输出完整 Run、FSM 状态路径和 Event Trace。

Hypha 版本

版本锁定见 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,二者都不代替正式人工操作流程。

网页使用顺序:

  1. 在“待规划任务”用一段话提交全部任务和必须事项,生成 MiniMax 草案;也可继续使用表单或 CSV;
  2. 在草案中逐项核对并补充总分钟、优先级和截止时间,点击“应用到任务池”;
  3. 设置规划天数、平日/周末每天可投入分钟、单次学习块、休息、起床和睡觉时间;
  4. 在“必须事项”中检查课程、会议、通勤等不可移动时间;
  5. 点击“生成候选计划”,系统自动跳转到“确认计划日程”;也可点击顶部流程第 2 步或左侧“计划日程”进入;
  6. 在“全周期计划日程”按日期、类型筛选,核对每个事件的时间、时长和安排依据;
  7. 点击“批准并创建正式 Run”写入计划,或点击“拒绝候选”退回修改;
  8. 在“智能规划”中按日期查看日程明细,在“按日执行”中更新状态、实际分钟或启动计时;
  9. 当日执行记录变化后,日报自动重算。

CSV 列为 title,totalMinutes,priority,deadline。用户不为任务填写开始时间,具体日期和时间由系统分配。示例见 fixtures/tasks-import-example.csv

最新验证截图包括 artifacts/screenshots/timing-ai-intake-desktop.pngtiming-ai-intake-mobile.pngtiming-review-desktop.pngtiming-review-mobile.pngtiming-agenda-clear.pngtiming-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。

DomainPack

  • 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:delivery

Package Test 验证完整 Pack 和 Slice 均走 DomainPack -> Workflow -> FSM 编译路径;业务测试验证 MiniMax 草案治理、跨日拆分、早中晚分配、生活作息、学习间休息、必须事项优先、容量不足明示、截止日期、审批和 FSM 状态路径。

配置和数据

MiniMax 配置见 .env.examplefixtures/web-input.json 是网页初始待规划任务,fixtures/example-input.json 额外包含执行反馈和重排。AI 草案固定返回 writesCommitted=false;所有正式计划写入必须使用 approved,拒绝不会改变当前计划版本。

Tool 与 Memory

MiniMax 调用经过 @hypha/inferenceOpenAIAPIInferenceBackend,业务代码不直接绕过 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

About

No description or website provided.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages