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