Prompt工程之Autogen 2)核心组件详解

Prompt工程之Autogen 2)核心组件详解

Autogen 的强大功能来自其“智能体(Agent)+ 协作机制”的设计理念。本章将深入介绍 Autogen 的五大核心组件:AssistantAgentUserProxyAgentCodeExecutorAgentHumanAgentGroupChatManager,并提供动手示例帮助你快速理解。


2.1 AssistantAgent:GPT 驱动的智能助手

AssistantAgent 是最基本的智能体类型,通常用于代表 GPT 模型,生成文本、代码或执行任务建议。

示例:

from autogen import AssistantAgent

assistant = AssistantAgent(name="assistant")

你可以通过 name 参数指定代理名称,在多 Agent 系统中有助于标识角色身份。


2.2 UserProxyAgent:可控的用户代理

UserProxyAgent 是一个“用户行为模拟器”,用于代表用户与其他智能体进行互动。它通常被用来:

  • 作为系统的“发起者”;
  • 接收其他 Agent 的消息;
  • 控制对话流程,插入人类反馈。

示例:

from autogen import UserProxyAgent

user = UserProxyAgent(name="user_proxy")

你可以通过 user.initiate_chat(...) 主动发起对话:

user.initiate_chat(assistant, message="帮我写一个快速排序示例")

2.3 CodeExecutorAgent:自动代码执行与反馈

如果你的任务涉及自动编程、运行脚本、数据处理等,CodeExecutorAgent 是必不可少的组件。它会:

  • 接收生成的代码;
  • 在本地沙盒环境中执行;
  • 将输出结果发送回对话中。

示例:

from autogen import CodeExecutorAgent

executor = CodeExecutorAgent(name="code_executor")

这个代理可以被其他 Agent 调用,例如:

assistant.send(executor, "请运行以下代码并告诉我结果:\nprint(2 + 2)")

⚠️ 默认 CodeExecutor 是开启的,但可配置执行沙箱路径、日志路径等参数来控制安全性。


2.4 HumanAgent:引入人类参与

HumanAgent 是为了将真实人类纳入对话流程而设计的组件。当系统遇到不确定情形时,可以通过 HumanAgent 请求人类指令,实现“人类在环(human-in-the-loop)”。

示例:

from autogen import HumanAgent

human = HumanAgent(name="real_user")

💡 默认情况下,HumanAgent 会在控制台等待人类输入,适合需要人工审批或干预的任务流程。


2.5 GroupChatManager:智能体间的对话协调器

当你使用多个 Agent 时,需要一个机制管理他们之间的通信和流程。GroupChatManager 就是这样一个“调度器”,它支持:

  • 多 Agent 轮流发言
  • 控制中止条件
  • 记录与回放对话历史

示例:

from autogen import GroupChat, GroupChatManager

groupchat = GroupChat(agents=[user, assistant, executor], messages=[])
manager = GroupChatManager(groupchat=groupchat, llm_config=False)

user.initiate_chat(manager, message="请写一个冒泡排序并执行")

🧠 在这个示例中,UserProxyAgent 发起会话,AssistantAgent 编写代码,CodeExecutorAgent 执行它,整个过程由 GroupChatManager 协调完成。


小贴士:LLMConfig 的配置技巧

每个 Agent 都可以传入 llm_config 参数,用于配置 OpenAI API、模型温度、系统 prompt 等。例如:

llm_config = {
    "config_list": [
        {
            "model": "gpt-4",
            "api_key": "your-api-key",
        }
    ],
    "temperature": 0.2,
}

assistant = AssistantAgent(name="assistant", llm_config=llm_config)

你可以通过不同的 llm_config 为每个 Agent 设定独立“人格”。


2.6 总结:各 Agent 的职责一览表

Agent 类型用途常见角色是否需要 GPT 接入
AssistantAgent内容生成编程助手、数据分析师
UserProxyAgent发起对话、控制流程用户代理
CodeExecutorAgent执行代码Python 执行器
HumanAgent等待人类响应审核人、决策者
GroupChatManager管理消息流调度器✅(如处理任务转移)

2.7 练习区:创建你自己的三智能体系统

目标:创建一个系统,完成以下任务流程:

  1. 用户代理提问
  2. 助手机器人生成代码
  3. 代码执行器运行代码并反馈结果

示例代码:

from autogen import AssistantAgent, UserProxyAgent, CodeExecutorAgent, GroupChat, GroupChatManager

assistant = AssistantAgent(name="assistant")
user = UserProxyAgent(name="user")
executor = CodeExecutorAgent(name="executor")

groupchat = GroupChat(agents=[user, assistant, executor], messages=[])
manager = GroupChatManager(groupchat=groupchat)

user.initiate_chat(manager, message="写一个函数求 1 到 100 的和,并运行它")

本章小结

Autogen 通过模块化的智能体设计,提供了极强的扩展性与控制力。从文本生成到代码执行,从自动流程到人类插入,每种 Agent 都承担着清晰的职责。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

这是Jamon

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值