尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

10 分钟跑通 AutoGen 分布式多智能体:从零搭一个分布式群聊原型

10 分钟跑通 AutoGen 分布式多智能体:从零搭一个分布式群聊原型 10 分钟跑通 AutoGen 分布式多智能体从零搭一个分布式群聊原型【免费下载链接】autogenA programming framework for agentic AI项目地址: https://gitcode.com/GitHub_Trending/au/autogen凌晨一点一版产品文案卡在谁来写、谁来改上。让同一个大模型自己写自己改它经常自说自话把写手和编辑拆成两个智能体轮流发言又得有人决定下一句该谁开口还得把过程投到浏览器里给团队看。这正是 AutoGen 这类多智能体框架要解决的通信与编排问题——用它的分布式运行时这套写手-编辑-管理员群聊 5 个终端命令就能跑起来。跟着敲完这几段代码你会得到一个真正能跑的多智能体原型每个智能体一个独立进程想挪到别的机器上改一个地址就行。快速认识 AutoGen4 个概念撑起整个框架Topic话题智能体之间的广播频道。往话题上发布一条消息所有订阅该话题的智能体都会收到发布者不需要知道谁在听。RoutedAgent路由智能体智能体的基类。给处理函数加一个message_handler装饰器运行时就会按消息类型自动把消息路由进去。gRPC Worker Runtime让智能体跑在独立进程、甚至另一台机器上的运行时。它只以工人身份连到主机分布式的成本因此只剩改一个地址。Host主机整个系统的交换机负责话题注册和消息转发本身不跑任何业务逻辑。编程模型详见官方设计文档docs/design/01 - Programming Model.md先看全局蓝图消息在话题之间怎么流转一句话讲清分工Manager 只发谁该说话的信号Writer 和 Editor 在群聊话题里交稿、看稿UI 负责把内容流式投屏gRPC 主机只当中转。⚡Manager 管理员读对话历史决定下一个发言者或判定满 3 轮直接收工。Writer 写手收到发言信号后写一句话发布到群聊话题同时把内容流式推到 UI 话题。Editor 编辑套路同 Writer但反馈被限制在 15 个词以内。UI Agent Chainlit订阅ui_events话题把分块文本按顺序拼成网页上的逐字输出。gRPC Host唯一的中转站所有跨进程消息都经它按订阅关系转发。分阶段实战4 条命令克隆仓库、装好依赖仓库自带的分布式群聊示例就是本章蓝本直接进它的目录干活git clone https://gitcode.com/GitHub_Trending/au/autogen cd autogen/python/samples/core_distributed-group-chat python3.12 -m venv .venv source .venv/bin/activate pip install autogen-ext[openai,azure,chainlit,rich] pyyaml装完你会看到当前目录里有run_host.py、run_writer_agent.py等 5 个入口脚本和一份config.yaml后面每一步都对应其中一个。启动 gRPC 主机所有话题的十字路口主机是整个系统最先要跑起来的部分全部逻辑不到 20 行# run_host.py import asyncio from _types import HostConfig from _utils import load_config from autogen_ext.runtimes.grpc import GrpcWorkerAgentRuntimeHost async def main(host_config: HostConfig): host GrpcWorkerAgentRuntimeHost(addresshost_config.address) host.start() print(fDistributed Host 已启动监听 {host_config.address}) await host.stop_when_signal() if __name__ __main__: asyncio.run(main(load_config().host))运行python run_host.py终端会打印Distributed Host is now running and listening for connection at localhost:50060——从此 50060 端口就是所有智能体唯一的入口。写一个 Writer 智能体注册、订阅、发言智能体侧的核心就三件事建运行时、把自己注册到话题名下、订阅要听的话题# run_writer_agent.py 的关键片段 runtime GrpcWorkerAgentRuntime(host_addressconfig.host.address) await runtime.start() model_client AzureOpenAIChatCompletionClient(**config.client_config) # 注册运行时按工厂函数创建 writer 实例Writer 就是它的话题名 agent_type await BaseGroupChatAgent.register( runtime, config.writer_agent.topic_type, # Writer lambda: BaseGroupChatAgent( descriptionconfig.writer_agent.description, group_chat_topic_typeconfig.group_chat_manager.topic_type, system_messageconfig.writer_agent.system_message, model_clientmodel_client, ui_configconfig.ui_agent, ), ) # 订阅既听该你发言的信号也听群聊里别人说的话 await runtime.add_subscription( TypeSubscription(topic_typeWriter, agent_typeagent_type.type)) await runtime.add_subscription( TypeSubscription(topic_typegroup_chat, agent_typeagent_type.type))BaseGroupChatAgent里真正的业务在handle_request_to_speak把历史对话连同系统提示丢给模型拿到回复后既发布到群聊话题、又逐词推到 UI 话题——这就是智能体三个字的全部秘密。改 config.yaml话题名和模型配置都在这份文件里host: hostname: localhost port: 50060 writer_agent: topic_type: Writer system_message: You are a one sentence Writer ... group_chat_manager: topic_type: group_chat max_rounds: 3 client_config: model: gpt-4o azure_endpoint: https://你的-endpoint.openai.azure.com azure_deployment: 你的部署名唯一必填的是client_config里的 endpoint 和 deployment换成你自己的 Azure OpenAI 资源即可其余话题名保持默认5 个脚本靠它对齐。跑通验证5 个终端 1 个浏览器不想开 5 个终端的话装好 tmux 后一条命令全托管./run.sh它会在 tmux 里自动拉起主机、UI、writer、editor、manager 五个进程。手动跑的话按python run_host.py→python run_writer_agent.py→python run_editor_agent.py→python run_group_chat_manager.py的顺序各开一个终端最后再跑chainlit run run_ui.py --port 8001打开界面。预期看到终端里 Manager 交替打印Asking Writer to speak和Asking Editor to speak浏览器打开 http://localhost:8001Writer 先流式吐出一句话Editor 跟着回不超过 15 个词的反馈满 3 轮后 Manager 宣布结束。往前走这个原型还能延伸出什么换模型不改智能体把AzureOpenAIChatCompletionClient换成 autogen-ext 支持的任意客户端OpenAI、Ollama、Gemini智能体代码一行不动。不写代码编队伍用 AutoGen Studio 在浏览器里拖拽组建智能体团队、配参数、直接试跑适合先验证想法再落代码。真·多机部署把host.hostname改成远端服务器 IPwriter、editor 各自跑在不同电脑上——这就是分布式三字的实际意义。给群聊加记忆参考 task_centric_memory 示例让智能体跨会话记住上下文。选角交给语义把 Manager 的轮询改成按对话内容动态选人更接近真实协作。完整说明见示例文档python/samples/core_distributed-group-chat/README.md收尾AutoGen 把消息发给谁、谁在监听、智能体跑在哪台机器这些分布式系统里最繁琐的脏活压缩成了话题、订阅和主机三个概念。你拿到的不只是一个群聊 demo而是一套可以往任意方向长的骨架换成传感器数据、换个业务话题、加个报警智能体套路完全一样。把开头那 4 条命令复制进终端10 分钟后你的浏览器里就会出现第一版自动群聊。【免费下载链接】autogenA programming framework for agentic AI项目地址: https://gitcode.com/GitHub_Trending/au/autogen创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表