重新设计一套架构, 抽象 src/workflows/default 的工作流实现 : 这个架构的核心是 1. 所有的原子组件(Agent/function/Tool等形式),每个原子组件都是单一职责 - 原子组件base抽象类 - 原子组件实现示例 - Agent的必须基于 langGraph 实现,请查阅相关文档后给出设计实现 - BaseAgent 中不一定都是基于 graph 实现的, 而是有 BaseLLMAgent BaseReactAgent 或者 BaseGraph 等形式. - tool需要加上 langgraph 注解, 提供给模型 function calling的作用. 2. 基于原子组件和 langGraph 能够后续动态的构建workflow - 严禁设计动态workflow构建器, 后续会有其他的Agent根据当前原子组件和业务需求来动态构建新的workflow, 这不是本次工作需求考虑的事情 - src/workflows/default 中只是一个特定业务的工作流场景,请不要将其带入抽象的架构设计中 3. 将 src/workflows/default 用直接用新的系统设计实现 4. 保持良好的架构层次结构,通过package一目了然 - src/components - agents - functions - tools 对于基于base实现的,增加个的 注解, 这样可以只要导入其目录,可以列举所有的具体实现的 agent/functions/tools ### 严禁过度设计 - 架构设计仅需要满足对于 Agent/function/tool 组件的抽象定义即可 ### 完整的架构图如下: ┌─────────────────────────────────────────────────────────────────────┐ │ 业务应用层 │ │ ┌───────────────────────────────────────────────────────────────┐ │ │ │ 解构业务:case + 业务knowhow + 内容知识 │ │ │ └───────────────────────────────────────────────────────────────┘ │ └─────────────────────────────────────────────────────────────────────┘ ┌─────────────────────────────────────────────────────────────────────┐ │ 工作流实现层 │ │ ┌─────────────────────────────────────┐ ┌─────────────────────────┐│ │ │ Default工作流 │ │ 扩展工作流 ││ │ │ ┌─────────────┐ ┌────────┐ ┌──────┐ │ │ ││ │ │ │Agent实现组件│ │函数组件│ │工具实现│ │ │ ││ │ │ └─────────────┘ └────────┘ └──────┘ │ │ ││ │ └─────────────────────────────────────┘ └─────────────────────────┘│ └─────────────────────────────────────────────────────────────────────┘ ┌─────────────────────────────────────────────────────────────────────┐ │ 组件实现层 │ │ ┌─────────────────────┐ ┌──────────────┐ ┌─────────────────────────┐ │ │ │ Agent实现组件层 │ │ 函数组件层 │ │ 工具实现组件层 │ │ │ │ ┌─────────────────┐ │ │ ┌──────────┐ │ │ ┌─────────────────────┐ │ │ │ │ │Persona Analysis │ │ │ │数学计算函数│ │ │ │Search/Research │ │ │ │ │ │ Agent │ │ │ └──────────┘ │ │ │ Tools │ │ │ │ │ └─────────────────┘ │ │ │ │ └─────────────────────┘ │ │ │ │ ┌─────────────────┐ │ │ ┌──────────┐ │ │ ┌─────────────────────┐ │ │ │ │ │Deconstruction │ │ │ │自定义函数│ │ │ │ Think Tools │ │ │ │ │ │ Agent │ │ │ └──────────┘ │ │ └─────────────────────┘ │ │ │ │ └─────────────────┘ │ └──────────────┘ │ ┌─────────────────────┐ │ │ │ │ ┌─────────────────┐ │ │ │ 自定义Tool │ │ │ │ │ │ 自定义Agent │ │ │ └─────────────────────┘ │ │ │ │ │ ┌─────┐ ┌─────┐ │ │ │ │ │ │ │ │ │函数 │ │工具 │ │ │ │ │ │ │ │ │ │组件 │ │实现 │ │ │ │ │ │ │ │ │ └─────┘ └─────┘ │ │ │ │ │ │ │ └─────────────────┘ │ │ │ │ │ └─────────────────────┘ └─────────────────────────┘ │ └─────────────────────────────────────────────────────────────────────┘ ┌─────────────────────────────────────────────────────────────────────┐ │ 组件抽象层 │ │ ┌─────────────────────────────────┐ ┌─────────────────────────────┐│ │ │ Agent组件抽象层 │ │ 工具组件抽象层 ││ │ │ ┌─────────────────────────────┐│ │ ┌─────────────────────────┐││ │ │ │ Base LLM Agent ││ │ │ Base Tool │││ │ │ └─────────────────────────────┘│ │ └─────────────────────────┘││ │ │ ┌─────────────────────────────┐│ │ ┌─────────────────────────┐││ │ │ │ Base ReAct Agent ││ │ │ 通用工具接入 │││ │ │ └─────────────────────────────┘│ │ └─────────────────────────┘││ │ └─────────────────────────────────┘ └─────────────────────────────┘│ └─────────────────────────────────────────────────────────────────────┘ ┌─────────────────────────────────────────────────────────────────────┐ │ 基础设施层 │ │ 基础设施层 │ │ ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────────┐ │ │ │ Logger │ │ 状态管理 │ │ 错误处理 │ │ state_utils │ │ │ └─────────┘ └─────────┘ └─────────┘ └─────────────┘ │ └─────────────────────────────────────────────────────────────────────┘