mirror of
https://github.com/Wx-2025/ST-Amily2-Chat-Optimisation.git
synced 2026-06-06 01:05:50 +00:00
3.5 KiB
3.5 KiB
51TODO — 劳动节后开工清单
创建于 2026-04-28。计划在 5月1日劳动节假后启动。 本文件聚焦跨方向工作(Bus 升级 + 整体节奏)。 表格模块的解耦与三模式落地详见 TableTODO.md。
一、全景
两条并行主线:
- Bus tool-call 能力升级(本文 Phase A) —— 让任何 Amily2Bus 注册的插件都能定义自己的 tool_calls 工具集,LLM 调用时自动 dispatch 回 handler,跑 agent loop。
- 表格模块重构 + 三模式填表 —— 解耦 manager.js 上帝模块;新增 JSON / toolcall 填表模式;保留 legacy 默认,老用户零感知。详见 TableTODO.md。
两条线可并行,仅在表格的 toolcall 模式(TableTODO Phase C)落地时需要 Bus Phase A 完成。
二、Phase A:Bus tool-call 升级
A.1 ToolRegistry
- 新文件
SL/bus/tool/ToolRegistry.js - 内部
Map<pluginName, Map<toolName, { def, handler }>> - 完全私有,不跨插件查询(每个模块自己用自己的工具集,不共享)
A.2 plugin context 加 tool 能力
register(pluginName)返回的 context 上挂tool:define(name, { description, parameters }, handler)undefine(name)list()
A.3 Options + RequestBody 透传 tools
- Options.js 加
tools/toolChoice字段 - RequestBody.toPayload 在有 tools 时包进 payload
ModelCaller._normalize在响应含tool_calls时返回完整 message 对象(而非只返字符串)—— 注意做后向兼容标记
A.4 callWithTools agent loop
context.model.callWithTools(messages, options, { maxSteps = 8, onToolError = 'feedback' })- 自动拼本插件 define 的工具进 request
- 收 tool_calls → 串行 dispatch 到对应 handler → tool result 回喂 messages
- handler 抛错时 catch,把 error string 作为 tool_result 喂回 LLM 让其自纠
- maxSteps 兜底,防死循环
Phase A 验收:
- 写一个最简 ping tool 跑通 round-trip
- handler 抛错回喂 LLM,LLM 能自纠
- maxSteps 截断行为正确
预估:1.5 天人时,风险中(agent loop 边界条件多)。
三、跨方向决策点
假后开工前先拍:
-
Phase A 与 TableTODO Phase 0 谁先:
- 选项 A:先 Phase A(Bus 升级),再 Table Phase 0
- 选项 B:先 Table Phase 0(解耦),再 Phase A
- 选项 C:并行两条分支
- 倾向:B(Table Phase 0 不依赖 Bus,先把表格上帝模块拆了,后续 Phase A 也好用 ToolRegistry)
-
Phase A 是否必须 ship 才能开 Table Phase B:
- 不必须。Phase B(JSON formatter)独立。Phase C(toolcall)才依赖 Phase A。
-
是否合并发版:
- 选项 A:Phase 0 → 单独 ship → Phase A → ship → Phase B/C → ship(增量发布,回归风险低)
- 选项 B:全部攒一起一次性发(节奏简单但风险高)
- 倾向:A,每完成一段先发,老用户始终能用 legacy。
四、不在范围内
- 不重写 ui/table-bindings.js
- 不改持久化 schema
- 不改 SuperMemory 集成
- 不引入 TypeScript
五、工时汇总
| 主线 | 子项 | 估时 |
|---|---|---|
| Bus | Phase A (tool-call 升级) | 1.5 天 |
| 表格 | TableTODO Phase 0-C | ~5 天(详见 TableTODO §十) |
| 验收 | 整体回归 + UI 验证 | 1 天 |
合计 ~7.5 天人时。 假期 5 天 + 假后两周缓冲,5 月底前可全量上线。