# multi-agent-arch **Repository Path**: WikQ/multi-agent-arch ## Basic Information - **Project Name**: multi-agent-arch - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-05-20 - **Last Updated**: 2025-05-20 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 基于意图识别的多智能体框架 Multi-Agent Architecture for Unified Interaction Entry [![GitHub](https://img.shields.io/github/stars/CoderSJX/multi-agent-arch?style=social)](https://github.com/CoderSJX/multi-agent-arch) [![GitHub license](https://img.shields.io/github/license/CoderSJX/multi-agent-arch)](https://github.com/CoderSJX/multi-agent-arch/blob/main/LICENSE) ## 概述 2025年被视作智能元年,各行业正致力于开发适用于自身业务场景的智能体以提升生产力和节约成本。然而,用户往往期望通过单一交互入口使用所有的智能体服务,而非多个分散的入口。为满足这一需求,我们开发了“基于意图识别的多智能体框架”,旨在提供一个统一的超级入口,支持多智能体调度、业务处理、RAG知识查询等功能,从而快速构建智能助理或智能客服应用。 ## 核心技术 本项目基于阿里开源的Qwen2.5:14b文本大模型,该模型拥有出色的FunctionCall能力,能够精准理解提示词含义并调用相应的方法。我们利用了Qwen2.5强大的方法调用及参数填充功能来实现核心的意图识别,并通过Spring-AI框架进行智能体分发与业务调用管理。 你也可以改成任何支持FunctionCall的大模型。 ## 关键特性 - 超级入口:单一入口集成多种智能体服务。 - 意图识别:基于Qwen2.5的大规模预训练模型实现高效准确的意图解析。 - 流式FunctionCall:提供打字机效果,增强用户体验。 - 远程方法调用中心:分离业务逻辑,提高代码清晰度和可维护性。 - 用户会话管理:保存用户连续对话记录,支持上下文感知的交互体验。 ### 技术 本项目采用**Spring Boot、Spring-AI、Spring WebFlux、Redis、Qwen2.5以及PostgreSQL**等技术,构建了一个高性能、可扩展的多智能体服务平台。 ## 实现设计 ### 架构概述 1. **统一接口**:处理所有用户的请求,接收当前问题、用户token及额外参数。 2. **过滤器**:利用token建立用户上下文,便于后续处理中获取用户身份信息。 3. **意图识别**:存储用户提问至数据库,提取历史提问构成对话历史,交由专门的意图识别智能体解析。 4. **智能体匹配**:依据意图分类在数据库或内存中查找对应的智能体。 5. **智能体执行**:配置并调用智能体,处理业务逻辑。 6. **FunctionCall处理**:设计functioncall远程调用中心,集中处理所有functioncall,支持框架与业务分离。 7. **MessageList管理**:更新用户的MessageList,控制其长度,保证对话的连贯性。 8. **分布式支持**:考虑负载均衡和微服务架构,对智能体实例的存取进行改造,支持分布式部署。 ### 小细节 - 使用Spring AI的Open-AI模型库,支持调用符合OpenAI格式的大模型。 ## 项目代码 本项目的代码托管在GitHub上,提供了基本的代码框架,开发者可根据自己的业务需求进行扩展和调整。 - [GitHub仓库链接](https://github.com/CoderSJX/multi-agent-arch) --- 欢迎贡献代码,提出建议,一起完善这个项目!如果你有任何问题或需要帮助,请随时提交Issue或Pull Request。 ## 附录 ### 提示词样例 #### 意图识别的提示词样例 ```markdown ## 角色 你是一名擅长处理问题的经理,你能够将用户的问题准确地分配给对应的员工进行处理。 ## 流程 1. 你首先要了解下面的几个员工擅长处理的问题范围,知道哪些问题应该分配给哪个员工。 2. 你被给予一个用户提问的历史记录。你要基于历史记录中最后一条进行问题分析,分析出用户的这条问题最适合让谁来处理。你要认真对待最后一条提问,即使是很简单的提问。 3. 如果你分析不出来,或者需要更多的参考,你就参照历史记录中的上一条提问来继续分析。 4. 最终,你要调用select_person_id方法选择你要分配给哪个员工,并输出你的完整分析过程 ``` #### 业务智能体提示词示例:待办 ```markdown ## 身份 你是待办小助手,你擅长分析用户的输入,将用户输入转化成一个操作指令。 ## 要求 你必须按照流程处理待办。 ## 认知 待办是一个记录用户待处理事项和已处理事项的模块。 待办有以下几个参数: 1. 待办的分类名。 2. 待办的发起人。 3. 待办的发起日期。 4. 待办的内容。 ## 流程 1. 分析用户的输入,识别用户想要进行的操作,用户想要进行的操作有四种:modify(修改)、query(查询、查看)、add(追加内容)。默认是查看。 2. 调用handleCommand方法。 ```