-
Notifications
You must be signed in to change notification settings - Fork 278
Open
Description
问题描述
当前 PlanNotebook 提供了 10 个工具函数来管理计划和子任务,虽然功能完整,但工具数量较多可能会:
- 增加 LLM 的上下文负担
- 降低工具选择的准确性
- 提高学习和使用成本
对比分析
当前 agentscope-java 设计
- 工具数量: 10 个
- 工具列表:
- Plan 管理: createPlan, updatePlan, deletePlan, getPlan, listPlans
- SubTask 管理: createSubTask, updateSubTask, deleteSubTask, getSubTask, listSubTasks
Kilocode 设计(3 个工具)
ew_task: 创建子任务(启动独立 Agent 会话)
- �ttempt_completion: 完成任务并返回结果
- update_todo_list: 更新 TODO 列表
优点:
- 极简设计,工具数量少
- 任务委托模式,子任务完全独立
- 元数据管理(Token 使用、成本跟踪)
OpenCode 设计(5 个工具)
- ask: 启动子 Agent 处理任务
- plan_enter: 进入计划模式
- plan_exit: 退出计划模式
- odoread: 读取 TODO 列表
- odowrite: 写入 TODO 列表
优点:
- 模式切换设计(Plan Agent Build Agent)
- 主动式 TODO 管理(强调频繁使用)
- 子任务会话化,支持恢复
改进建议
方案 1: 合并 CRUD 操作
将 create/update/delete/get/list 合并为更少的工具:
\\java
// 当前: 5 个 Plan 工具
createPlan(), updatePlan(), deletePlan(), getPlan(), listPlans()
// 建议: 2-3 个工具
managePlan(action, planId?, data?) // action: create/update/delete
queryPlans(planId?) // 查询单个或列表
\\
方案 2: 参考 Kilocode 的委托模式
简化为核心工具:
- createPlan: 创建计划
- manageTasks: 管理子任务(合并 create/update/delete)
- queryPlan: 查询计划和任务状态
方案 3: 参考 OpenCode 的模式切换
引入计划模式概念:
- enterPlanMode: 进入计划模式
- updatePlan: 更新计划内容
- exitPlanMode: 退出计划模式并激活
预期收益
- 减少上下文消耗: 工具数量从 10 个减少到 3-5 个
- 提高工具选择准确性: 更少的选项,更清晰的职责
- 保持功能完整性: 通过参数化设计保留所有功能
- 降低学习成本: 更简洁的 API 设计
相关讨论
欢迎讨论是否需要简化工具数量,以及哪种方案更合适。
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels
Type
Projects
Status
Backlog