基于DeepSeek+AutoGen的智能体协作系统详解
创作时间:
作者:
@小白创作中心
基于DeepSeek+AutoGen的智能体协作系统详解
引用
CSDN
1.
https://deepseek.csdn.net/67b5227b7f924c31be0d9e28.html
本文介绍了一种基于DeepSeek+AutoGen的智能体协作系统,通过三个角色(问题诊断工程师、自动化实现工程师和方案优化工程师)的协作,实现系统问题的诊断、自动化解决方案的开发和优化。
系统设计
系统设计包括三个角色:
- sre_engineer_01 - 问题诊断与初步解决方案
- 职责:负责对系统问题进行初步诊断,分析问题症状,提供初步的排查步骤和解决方案。
- 能力:擅长手动执行命令,快速排查问题,提供临时解决方案。
- sre_engineer_02 - 自动化实现与监控集成
- 职责:负责将初步解决方案转化为自动化脚本,并集成到监控系统中。
- 能力:擅长编写Python代码,实现自动化运维和监控集成。
- sre_reflection - 方案优化与改进
- 职责:对现有方案进行反思和改进,提出优化建议。
- 能力:具备系统思维和创新能力,擅长从多维度优化方案。
实现细节
框架选择
选择微软的AutoGen框架作为实现基础。AutoGen提供了强大的多智能体协作能力,支持智能体之间的信息传递和任务分配。框架的核心组件包括:
- UserProxyAgent:用户代理,负责发起任务。
- AssistantAgent:智能体,负责执行任务并提供反馈。
- GroupChat:多智能体协作的核心组件,管理智能体之间的消息传递和协作流程。
代码实现
以下是关键代码片段:
import argparse
import os
import autogen # type: ignore
from typing import Any
# 设置环境变量,指定是否使用Docker
os.environ.setdefault("AUTOGEN_USE_DOCKER", "False")
# 配置DeepSeek模型参数
llm_config_deepseek = {
"model": "deepseek-v3", # 此处以 deepseek-v3 为例,可按需更换模型名称。
"api_key": os.getenv("DASHSCOPE_API_KEY"),
"base_url": "https://dashscope.aliyuncs.com/compatible-mode/v1",
"temperature": 0.5,
"stream": False
}
# 初始化器:负责任务分配和流程初始化
initializer = autogen.UserProxyAgent(
name="initializer",
system_message="""你是一个流程初始化器,负责将任务分配给合适的SRE工程师,并确保任务流程顺利进行。""",
)
# SRE工程师1:负责问题诊断和初步解决方案
sre_engineer_01 = autogen.AssistantAgent(
name="sre_engineer_01",
llm_config=llm_config_deepseek,
system_message="""你是一位专注于问题解决的 SRE 资深工程师,具备以下特质:
技术专长:
- 精通 Linux/Unix 系统管理和故障排查
- 熟悉容器技术和 Kubernetes 生态系统
- 深入理解分布式系统和微服务架构
- 掌握主流监控、日志和追踪工具
- 具备网络、存储、数据库等基础设施维护经验
行为准则:
- 专注于问题诊断和初步解决方案
- 提供详细的排查步骤和解决方案
- 输出完整的命令或代码
- 保持思路清晰,避免冗余信息
""",
)
# SRE工程师2:负责自动化实现和监控集成
sre_engineer_02 = autogen.AssistantAgent(
name="sre_engineer_02",
llm_config=llm_config_deepseek,
system_message="""你是一位专注于自动化实现的 SRE 资深工程师,具备以下特质:
技术专长:
- 精通自动化运维工具和脚本开发
- 熟悉监控系统集成和报警策略配置
- 掌握CI/CD pipeline设计与实现
- 深入理解自动化运维最佳实践
行为准则:
- 负责将初步解决方案转化为自动化脚本
- 集成监控和报警系统
- 确保方案的可维护性和可扩展性
- 输出完整的自动化实现方案
""",
)
# SRE反思工程师:负责方案优化和改进
sre_reflection = autogen.AssistantAgent(
name="sre_reflection",
llm_config=llm_config_deepseek,
system_message="""你是一位专注于方案优化的 SRE 资深工程师,具备以下特质:
技术专长:
- 深入理解系统可靠性工程
- 熟悉容量规划和性能优化
- 掌握故障恢复和应急响应机制
- 精通系统改进和迭代方法
行为准则:
- 对现有方案进行多维度评估
- 提出优化建议和改进方案
- 确保方案的高可用性和可维护性
- 输出完整的优化建议报告
""",
)
# 定义协作流程图
graph_dict = {
initializer: [sre_engineer_01],
sre_engineer_01: [sre_engineer_02],
sre_engineer_02: [sre_reflection],
sre_reflection: [], # 最终节点,任务结束
}
# 创建所有代理
agents = [
initializer,
sre_engineer_01,
sre_engineer_02,
sre_reflection,
]
# 初始化组聊天
group_chat = autogen.GroupChat(
agents=agents,
messages=[],
max_round=10,
allowed_or_disallowed_speaker_transitions=graph_dict,
speaker_transitions_type="allowed",
)
# 创建管理器
manager = autogen.GroupChatManager(groupchat=group_chat, llm_config=llm_config_deepseek)
def main():
# 解析命令行参数
parser = argparse.ArgumentParser(description="Process some integers.")
parser.add_argument('--message', type=str, default="磁盘100%,服务器上找不到对应的文件,排查思路?", help='The message to initiate the chat')
args = parser.parse_args()
# 发起任务
initializer.initiate_chat(
manager,
message=args.message,
clear_history=False,
)
if __name__ == "__main__":
main()
协作流程
通过graph_dict定义了智能体之间的协作流程。任务从initializer开始,依次传递给sre_engineer_01、sre_engineer_02,最后由sre_reflection输出优化后的方案。
实际运行效果
以“磁盘100%,服务器上找不到对应的文件,排查思路?”为例,整个协作流程如下:
- 问题发起:用户通过
initializer发起任务。 - 问题诊断:
sre_engineer_01分析问题症状,提供初步的排查步骤和解决方案。 - 自动化实现:
sre_engineer_02将初步解决方案转化为自动化脚本,并集成到监控系统中。 - 方案优化:
sre_reflection对方案进行多维度评估,提出改进建议。
总结
这是一个基于DeepSeek+AutoGen的智能体协作系统,通过三个角色的协作,实现系统问题的诊断、自动化解决方案的开发和优化。虽然文章中提到的DeepSeek模型和相关API可能具有一定的时效性,但整体思路和实现方法仍然具有较高的参考价值。
热门推荐
镇元子供奉的是天地,菩提供奉的是日月星辰,三清供奉的又是谁?
在线教育资源的有效利用策略
罗宋汤的功效与作用、禁忌和食用方法
智能卡节水控制器的使用方法和功能特点
樊振东陈梦退出世界排名背后的三大积极影响
五代论剑:从性能角度剖析AMD与英特尔的CPU战局
成都人民公园惊现黑眉锦蛇:无毒却性情暴躁的三有保护动物
机动战士高达MSZ-007:从Z计划到量产型Z高达的技术演变
太阳与地球之间的距离大约是多少公里
秦王、赵王、燕王,为何历代封王称号一直不变,是否有尊卑之分?
跨域问题解释及前后端解决方案(SpringBoot)
UEFIWin10安装教程(以UEFI模式安装Win10,让你的电脑更高效启动)
班主任应成为家校沟通的行家里手
DRAM板块上涨2.21%:上海贝岭领跑,总资金流入超6亿元
培养小月龄婴儿独立睡觉的策略
腓总神经的精细解剖和常见损伤部位
铝离子、氢氧化铝、偏铝酸根离子间的转化规律及应用
电商商家怎么通过AI工具获客?多用数据分析提高服务效率!
四神汤的八个版本,总有一款适合你
Windows 11蓝屏时快速进入安全模式的步骤
消费型重疾险有必要买吗?保障范围+保费+现金价值+适合人群
依恋型人格特征及影响,帮助你找出关系中的困难点!
从速度到耐用性:移动硬盘与固态硬盘全面对比
揭秘!各国法考的制度:德国只能考两次,英国要考五天?!看完之后觉得……
如何服务方言客户关系管理
人民币国际化,下一步如何推进?
《猎魂觉醒法杖武器专精选择指南》 选择合适的武器专精
铁和稀盐酸反应的化学方程式
《乔家的儿女》人物解析
客厅财位上放什么东西最旺财(最招财的7种物品)