Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

实现双系统Agent 模式 #202

Open
wants to merge 9 commits into
base: master
Choose a base branch
from

Conversation

istarwyh
Copy link
Contributor

Overview

本 PR 实现了一个基于 Daniel Kahneman 的系统1(快速)和系统2(慢速)思维理论的双系统代理模式。该实现提供了一个灵活的框架,能够使用适当的处理策略来处理简单和复杂的查询。

Key Features

  • 实现了包含快速(系统1)和慢速(系统2)处理路径的双系统思维模式
  • 可配置的复杂度评估系统
  • 基于输入复杂度的动态系统选择
  • 可扩展的评估器框架,支持插件
  • 全面的测试覆盖

Architecture

                       +-------------------+
                       |   DualSystemAgent |
                       +-------------------+
                                |
                                v
                       +-------------------+
                       | DualSystemPlanner |
                       +-------------------+
                                |
                    +----------+-----------+
                    |                      |
                    v                      v
          +-----------------+    +------------------+
          | FastThinkingAgent|    |   SlowThinkingAgent|
          +-----------------+    +------------------+
                    |
                    v
          +-----------------+
          |ComplexityEvaluator|
          +-----------------+

DualSystemAgent:双系统代理的主要实现
DualSystemPlanner:负责思维模式选择的核心规划组件
FastThinkingAgent:用于快速、直觉性响应的系统1实现
SlowThinkingAgent: 可以配置,默认为 PeerAgent
ComplexityEvaluator:具有多个评估因素的输入复杂度分析器

Key Changes

  1. 重构了 DualSystemPlanner 中的评估器初始化:
  • 实现了评估器的延迟初始化
  • 基于配置驱动的评估器选择
  • 改进了错误处理机制
  1. 增强了复杂度评估系统:
  • 实现了多个评估因素(文本长度、问题类型、关键词复杂度、上下文依赖)
  • 支持可配置的权重和阈值
  • 提供了可扩展的评估器框架
  • 改进了类型提示和错误处理
  1. 添加了 Optional 类型提示
  • 增强了空值检查
  • 提供了更清晰的错误信息
  • 改进了配置系统
  1. 基于 YAML 的配置
  • 支持可配置的评估器选择
  • 灵活的阈值设置

Testing

  • 为所有组件提供了全面的单元测试
  • 覆盖了快速和慢速思维路径的测试
  • 包含边界情况系统转换测试

Future Improvements

  • 考虑添加更复杂的复杂度评估指标
  • 实现对慢思考系统的区分,比如推理、计算等
  • 相关文档补充

Breaking Changes

无。这是一个保持向后兼容性的新功能添加。

Dependencies

未添加新的依赖项。

Testing Instructions

  1. 运行单元测试:python -m unittest tests/test_agentuniverse/unit/agent/default/dual_system_agent/test_dual_system_agent.py
  2. 验证快速和慢速思维路径
  3. 使用不同复杂度的输入进行测试

Checklist

[x] 代码符合项目样式指南
[x] 添加并通过测试
[x] 更新文档
[x] 未引入新的警告
[x] 覆盖边界情况
[x] 考虑性能影响

1. Update test_dual_system_agent.py:
- Remove stream output related code
- Simplify test cases
- Add print for debugging

2. Update fast_thinking_agent.yaml:
- Improve prompt template
- Fix yaml indentation

3. Add LLM configuration to dual_system_agent.yaml
- Updated dual_system_agent and related configurations
- Removed obsolete sample files
- Updated test configurations and scripts
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant