Skip to content

[feat] Orchestrator 支持通用任务直接响应 #252

@hrygo

Description

@hrygo

[feat] Orchestrator 支持通用任务直接响应

问题描述

当前 Orchestrator 的任务分解器(Decomposer)只支持将任务分配给专家代理(Expert Agents),对于一些不需要专家处理的通用任务(如总结、翻译、简单问答),必须强制选择某个专家,导致:

  1. 不必要的路由开销:简单任务被错误地分配给专家
  2. 用户体验差:用户说"总结这些笔记"时,系统强制走 Memo 搜索
  3. 架构不完整:缺少"通用 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, ...)
}

触发场景

场景 示例
总结归纳 "总结这些笔记"、"概括一下"
翻译 "翻译成英文"
简单问答 "今天星期几"
格式转换 "把列表改成表格"

复杂度

  • 工作量:0.5 人天
  • 风险:中
  • 依赖:无

验收标准

  • Decomposer 能正确判断通用任务
  • Executor 支持直接响应分支
  • 用户说"总结这些笔记"时直接返回摘要
  • make check-all 通过

调研时间: 2026-02-17 | 版本: v1.0

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions