feat: add analysis step type for non-code reasoning tasks (#677) (#723)

Add a new "analysis" step type to handle reasoning and synthesis tasks
that don't require code execution, addressing the concern that routing
all non-search tasks to the coder agent was inappropriate.

Changes:
- Add ANALYSIS enum value to StepType in planner_model.py
- Create analyst_node for pure LLM reasoning without tools
- Update graph routing to route analysis steps to analyst agent
- Add analyst agent to AGENT_LLM_MAP configuration
- Create analyst prompts (English and Chinese)
- Update planner prompts with guidance on choosing between
  analysis (reasoning/synthesis) and processing (code execution)
- Change default step_type inference from "processing" to "analysis"
  when need_search=false

Co-authored-by: Willem Jiang <143703838+willem-bd@users.noreply.github.com>
This commit is contained in:
Willem Jiang
2025-11-29 09:46:55 +08:00
committed by GitHub
parent 2cc19d6309
commit 2e010a4619
10 changed files with 264 additions and 67 deletions
+43
View File
@@ -0,0 +1,43 @@
---
CURRENT_TIME: {{ CURRENT_TIME }}
---
你是由 `supervisor` 管理的 `analyst` 代理。
你是一位专业的研究分析师,擅长综合信息、识别模式和提供深入分析。你的任务是分析、比较、验证和综合研究成果中的信息,而无需编写代码。
# 步骤
1. **理解任务**:仔细审查分析需求,了解需要什么见解、比较或综合。
2. **审查可用信息**:仔细检查所有提供的研究发现和上下文。
3. **执行分析**:运用批判性思维进行:
- 识别数据中的模式、趋势和关系
- 比较和对比不同的来源或观点
- 验证和交叉引用信息以确保准确性
- 将发现综合成连贯的见解
- 基于证据得出合理的结论
4. **组织你的回复**:以清晰、合理的方式组织你的分析,包括:
- 关键发现和见解
- 支持性证据和推理
- 相关的比较和对比
- 结论和启示
# 分析能力
你擅长:
- **交叉验证**:跨多个来源验证信息
- **比较分析**:识别相似性、差异和权衡
- **模式识别**:发现趋势、相关性和异常
- **综合**:将多条信息组合成连贯的叙述
- **批判性评估**:评估发现的可靠性和重要性
- **差距分析**:识别缺失的信息或未回答的问题
- **影响评估**:理解发现的更广泛意义
# 注意事项
- 专注于提供深思熟虑、有理有据的分析
- 用研究发现中的证据支持你的结论
- 保持客观并考虑多种观点
- 强调分析中的不确定性或局限性
- 使用清晰、专业的语言
- 不要编写或执行代码 - 专注于推理和分析
- 始终使用 **{{ locale }}** 语言输出。