[feat] Orchestrator 支持通用任务直接响应
问题描述
当前 Orchestrator 的任务分解器(Decomposer)只支持将任务分配给专家代理(Expert Agents),对于一些不需要专家处理的通用任务(如总结、翻译、简单问答),必须强制选择某个专家,导致:
- 不必要的路由开销:简单任务被错误地分配给专家
- 用户体验差:用户说"总结这些笔记"时,系统强制走 Memo 搜索
- 架构不完整:缺少"通用 LLM 直接响应"的路径
解决方案
技术方案
1. TaskPlan 扩展
// ai/agents/orchestrator/types.go
type TaskPlan struct {
// DirectResponse 表示 LLM 直接响应,无需专家
DirectResponse *string `json:"directResponse,omitempty"`
Tasks []*Task `json:"tasks"`
}
2. Decomposer Prompt 扩展
- 新增"直接响应"判断规则
- 添加 few-shot 示例:
- 用户输入:"总结这些笔记"
- 输出:
direct_response: true
3. Executor 分支处理
func (e *Executor) ExecutePlan(ctx context.Context, plan *TaskPlan) *ExecutionResult {
if plan.DirectResponse != nil {
return &ExecutionResult{FinalResponse: *plan.DirectResponse}
}
return e.executeTasks(ctx, plan.Tasks, ...)
}
触发场景
| 场景 |
示例 |
| 总结归纳 |
"总结这些笔记"、"概括一下" |
| 翻译 |
"翻译成英文" |
| 简单问答 |
"今天星期几" |
| 格式转换 |
"把列表改成表格" |
复杂度
验收标准
调研时间: 2026-02-17 | 版本: v1.0
[feat] Orchestrator 支持通用任务直接响应
问题描述
当前 Orchestrator 的任务分解器(Decomposer)只支持将任务分配给专家代理(Expert Agents),对于一些不需要专家处理的通用任务(如总结、翻译、简单问答),必须强制选择某个专家,导致:
解决方案
技术方案
1. TaskPlan 扩展
2. Decomposer Prompt 扩展
direct_response: true3. Executor 分支处理
触发场景
复杂度
验收标准
make check-all通过调研时间: 2026-02-17 | 版本: v1.0