agentscope-ai / agentscope-ai/agentscope-java
建议:简化 PlanNotebook 工具数量,参考 Kilocode 和 OpenCode 的设计
- 主要言語
- Java
- スター
- 5.6k
- フォーク
- 1.3k
- 平均マージ
- 4日 12時間
- マージ済み PR(30日)
- 77
説明
## 问题描述
当前 PlanNotebook 提供了 **10 个工具函数**来管理计划和子任务,虽然功能完整,但工具数量较多可能会:
1. 增加 LLM 的上下文负担
2. 降低工具选择的准确性
3. 提高学习和使用成本
## 对比分析
### 当前 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: 退出计划模式并激活
## 预期收益
1. **减少上下文消耗**: 工具数量从 10 个减少到 3-5 个
2. **提高工具选择准确性**: 更少的选项,更清晰的职责
3. **保持功能完整性**: 通过参数化设计保留所有功能
4. **降低学习成本**: 更简洁的 API 设计
## 相关讨论
欢迎讨论是否需要简化工具数量,以及哪种方案更合适。
コントリビューションガイド
評価
この issue はまだ評価されていません。