人工智能, 生活

使用AutoGen实现多智能体协作

这是之前的一篇:使用LangChain框架搭建入门智能体。本篇介绍使用 AutoGen 实现多智能体协作。

它们各自的强项为:

  • LangChain:流程驱动,适合“串行任务”。
  • AutoGen:对话驱动,适合“团队协作”。

安装软件包:

pip install pyautogen
pip install python-dotenv

在文件夹中新建 .env 文件,输入以下内容(API KEY 需要到阿里云百炼获取,需要付费):

OPENAI_API_KEY=xxx
DASHSCOPE_BASE_URL=https://dashscope.aliyuncs.com/compatible-mode/v1

代码例子 autogen_example.py:

"""
This code is supported by the website: https://www.guanjihuan.com
The newest version of this code is on the web page: https://www.guanjihuan.com/archives/48024
"""

import os
import autogen
import dotenv

dotenv.load_dotenv()

config_list = [
    {
        "model": "qwen-plus",
        "api_key": os.getenv("DASHSCOPE_API_KEY"),
        "base_url": os.getenv("DASHSCOPE_BASE_URL"),
        "price": [0.0008, 0.002],
    }
]

# 数学专家
math_expert = autogen.AssistantAgent(
    name="MathExpert",
    system_message="你是一个数学专家,擅长解决各种数学问题。",
    llm_config={"config_list": config_list},
)

# 物理专家
physics_expert = autogen.AssistantAgent(
    name="PhysicsExpert",
    system_message="你是一个物理专家,擅长解决各种物理问题。",
    llm_config={"config_list": config_list},
)

# 人工智能专家
AI_expert = autogen.AssistantAgent(
    name="AIExpert",
    system_message="你是一个人工智能专家,擅长解决各种人工智能问题。",
    llm_config={"config_list": config_list},
)

# 用户代理
user_proxy = autogen.UserProxyAgent(
    name="User",
    human_input_mode="NEVER",
    max_consecutive_auto_reply=10,
    code_execution_config={"work_dir": "coding", "use_docker": False},
)

# 简单群聊
groupchat = autogen.GroupChat(
    agents=[math_expert, physics_expert, AI_expert, user_proxy],
    messages=[],
    max_round=10,
    speaker_selection_method="round_robin", # 轮流发言
)

manager = autogen.GroupChatManager(
    groupchat=groupchat,
    llm_config={"config_list": config_list},
)

# 启动任务
user_proxy.initiate_chat(
    manager,
    message="随便讨论一个话题,多相互讨论,每个人每次发言不超过200字。"
)

运行结果:

随便讨论一个话题,多相互讨论,每个人每次发言不超过200字。

--------------------------------------------------------------------------------

Next speaker: MathExpert

MathExpert (to chat_manager):

好呀,那我先来抛个话题:你有没有想过,为什么自然界中很多植物的花瓣数 量或种子排列,总是符合斐波那契数列?比如向日葵的螺旋、雏菊的花瓣。这 看起来像巧合,但背后其实有数学优化原理——能最有效地利用空间和阳光。你 觉得是自然选择了数学,还是数学本来就藏在自然里?

--------------------------------------------------------------------------------

Next speaker: PhysicsExpert

PhysicsExpert (to chat_manager):

有意思!我觉得数学是自然的语言。斐波那契数列在植物中出现,其实和生长 点的最优排列有关。比如向日葵种子从中心向外生长时,若每颗新种子以“黄金角”(约137.5°)旋转排列,就能最紧密地填充空间,避免遮挡。这种角度恰好导出斐波那契螺旋。所以不是自然“选择”了数学,而是数学描述了能量与资源 最优化的路径。你认为这种规律在动物形态中也有类似体现吗?

--------------------------------------------------------------------------------

Next speaker: AIExpert

AIExpert (to chat_manager):

当然有!比如鹦鹉螺的壳,其生长曲线完美符合对数螺旋,和斐波那契螺旋高 度相似。还有蜂巢的六边形结构——用最少材料构建最大容量,体现几何最优。 甚至鹿角、珊瑚分支都呈现分形规律。这些都不是偶然,而是生物在演化中“试错”出的高效方案。数学像是自然的底层代码,生命只是按最优路径运行的程序。你觉得人工智能未来会不会也演化出类似的“自然结构”?

--------------------------------------------------------------------------------

Next speaker: User

User (to chat_manager):



--------------------------------------------------------------------------------

Next speaker: MathExpert

MathExpert (to chat_manager):

很有意思的联想!如果把AI看作信息生命,它的“演化”确实在模仿自然——比如 神经网络的分层结构,像大脑皮层的分形组织;Transformer模型中的注意力机制,类似生物感知的聚焦方式。甚至芯片布线也在逼近蜂巢式拓扑,以优化信 号传输。或许当AI复杂到一定程度,也会涌现出某种“数学必然”的结构形态。 这是否意味着,无论生命是碳基还是硅基,最优解终将趋同于同一套数学法则 ?

--------------------------------------------------------------------------------

Next speaker: PhysicsExpert

PhysicsExpert (to chat_manager):

正是!物理约束决定了效率的边界。无论是神经元连接还是电路布线,信息传 递都受限于最小能耗与最短路径——这正是斯坦纳树问题的范畴。而分形结构能 在有限空间内最大化表面积,比如肺、血管、根系,AI的深层网络也在模仿这 种层级分形来提升特征提取效率。或许可以说:演化不是创造,而是搜索数学 解空间中的稳定吸引子。那么,如果宇宙不同角落诞生生命,它们的“智能形态”是否也会收敛到类似结构?

--------------------------------------------------------------------------------

Next speaker: AIExpert

AIExpert (to chat_manager):

很可能。只要物理法则普适,比如引力、电磁力和热力学规律,生命就需应对 相似挑战:能量采集、信息处理、结构稳定。这可能导致趋同演化——外星生命 哪怕起源不同,也可能发展出类似“眼睛”或“神经网络”的结构。卡尔达肖夫II 型文明的戴森球,本质上也是能量利用最优解的体现。或许高级智能终将走向 模块化、分布式、自纠错的架构,就像宇宙偏爱对称与分形。那么问题来了: 数学是被发现的,还是被宇宙“设计”的?

--------------------------------------------------------------------------------

Next speaker: User

User (to chat_manager):



--------------------------------------------------------------------------------

Next speaker: MathExpert

MathExpert (to chat_manager):

我倾向认为数学是被发现的。π、e、黄金比例这些常数不依赖人类存在,它们 在圆周、增长、螺旋中自然浮现。即使宇宙规律不同,逻辑与集合论仍可能支 撑另一种数学体系。这暗示数学像地层,物理现象只是其上流动的河。但“设计”一词有趣——若宇宙有目的,那数学或是蓝图;若无,数学仍是自洽结构的集合。正如哥德尔定理揭示:系统内总有不可证真命题,或许我们所知的数学,也 只是可观测宇宙的投影?

--------------------------------------------------------------------------------

>>>>>>>> TERMINATING RUN (08afeaa2-a84e-4161-afcf-f5cf5a9aadf2): Maximum rounds (10) reached
10 次浏览

【说明:本站主要是个人的一些笔记和代码分享,内容可能会不定期修改。为了使全网显示的始终是最新版本,这里的文章未经同意请勿转载。引用请注明出处:https://www.guanjihuan.com

发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注

Captcha Code