ailearn

多Agent协作系统

构建多Agent协作系统,实现复杂任务自动化

访问-- -- --

前置知识:需要先掌握 Agent规划系统

本文重点:多Agent协作框架与实践


一、多Agent概述

多Agent系统架构:
角色分工模式:
├── 研究员:收集信息
├── 分析师:分析数据
├── 写作者:撰写内容
└── 审核员:质量把关
协作模式:
- 顺序协作:Agent A → Agent B → Agent C
- 层级协作:Manager → Workers
- 对等协作:Agent之间平等交流

二、CrewAI框架

# 安装
# pip install crewai
from crewai import Agent, Task, Crew
# 定义Agent
researcher = Agent(
    role="研究员",
    goal="收集和分析最新AI技术信息",
    backstory="你是一位经验丰富的AI研究员",
    verbose=True
)
writer = Agent(
    role="技术写作员",
    goal="撰写清晰易懂的技术文章",
    backstory="你是专业科技媒体的技术编辑",
    verbose=True
)
# 定义任务
research_task = Task(
    description="研究最新的多模态大模型技术",
    agent=researcher
)
write_task = Task(
    description="基于研究结果撰写技术文章",
    agent=writer
)
# 创建团队
crew = Crew(
    agents=[researcher, writer],
    tasks=[research_task, write_task],
    verbose=True
)
# 执行
result = crew.kickoff()
print(result)

三、自定义多Agent系统

class MultiAgentSystem:
    """多Agent协作系统"""
    
    def __init__(self, llm):
        self.llm = llm
        self.agents = {}
    
    def add_agent(self, name, role, goal):
        self.agents[name] = {
            "role": role,
            "goal": goal,
            "memory": []
        }
    
    def chat(self, agent_name, message):
        agent = self.agents[agent_name]
        
        prompt = f"""你是{agent['role']}
目标:{agent['goal']}
历史记忆:{agent['memory'][-5:] if agent['memory'] else '无'}
用户消息:{message}
请根据你的角色回复:"""
        
        response = self.llm.invoke(prompt).content
        agent["memory"].append({"input": message, "output": response})
        
        return response
    
    def collaborate(self, task, workflow):
        results = {}
        
        for step in workflow:
            agent_name = step["agent"]
            input_data = step.get("input", task)
            
            if isinstance(input_data, str) and input_data.startswith("$"):
                var_name = input_data[1:]
                input_data = results.get(var_name, task)
            
            result = self.chat(agent_name, input_data)
            results[step["name"]] = result
        
        return results
# 使用示例
system = MultiAgentSystem(llm)
system.add_agent("researcher", "研究员", "收集和分析信息")
system.add_agent("writer", "写作员", "撰写文章")
system.add_agent("reviewer", "审核员", "审核内容质量")
workflow = [
    {"name": "research", "agent": "researcher", "input": "研究AI Agent技术"},
    {"name": "draft", "agent": "writer", "input": "$research"},
    {"name": "review", "agent": "reviewer", "input": "$draft"}
]
results = system.collaborate("AI Agent技术趋势", workflow)

四、AutoGen框架

# 安装
# pip install pyautogen
import autogen
# 配置
config_list = [{"model": "gpt-4", "api_key": "your-key"}]
# 创建Agent
assistant = autogen.AssistantAgent(
    name="assistant",
    llm_config={"config_list": config_list}
)
user_proxy = autogen.UserProxyAgent(
    name="user_proxy",
    human_input_mode="NEVER",
    max_consecutive_auto_reply=10,
    code_execution_config={"work_dir": "coding"}
)
# 发起对话
user_proxy.initiate_chat(
    assistant,
    message="请帮我写一个Python爬虫程序"
)

参考资源


返回AI Agent智能体 最后更新: 2026年4月20日

访问 --

讨论与反馈