首页 > AI工具教程 > AutoGen怎么用 微软多AI代理对话框架教程

AutoGen怎么用 微软多AI代理对话框架教程

更新时间:2026-10-09 10:29:19 发布时间:1小时前 阅读:3次

AutoGen是微软开源的多AI代理对话框架,能让多个AI角色通过对话协作完成任务,还能接入人类参与讨论。你可以把它想成一个由不同岗位组成的小团队:研究员负责整理资料,写作者负责起草,审核员负责挑错,再由你决定何时结束。下面用Python和AgentChat API搭一个入门群聊。需要留意的是,AutoGen目前处于维护模式,新项目可同时了解微软后续的Microsoft Agent Framework。

第一步:安装AutoGen

先准备Python 3.10或更高版本,建议在项目目录创建虚拟环境,避免依赖和其他项目打架。Windows可运行“py -m venv .venv”,再用“.venv\Scripts\activate”激活;macOS或Linux可运行“python3 -m venv .venv”和“source .venv/bin/activate”。激活后再安装库,后续启动脚本时也要使用这个环境。

在终端安装AgentChat和OpenAI扩展,命令是“pip install -U autogen-agentchat ‘autogen-ext[openai]’”。示例将调用模型服务,因此还需要准备相应服务的API密钥和可用模型。不要把密钥直接写进代码或提交到代码仓库,可在终端设置OPENAI_API_KEY环境变量;Windows PowerShell可用“$env:OPENAI_API_KEY=’你的密钥’”,macOS或Linux可用“export OPENAI_API_KEY=’你的密钥’”。

装好后可以执行“python -c “import autogen_agentchat; print(‘安装成功’)”进行简单检查。若提示找不到模块,先确认虚拟环境已经激活,并检查pip是否属于当前Python环境;可用“python -m pip install …”重新安装。依赖安装完成后,新建一个.py文件保存接下来的示例。首次运行还会产生模型调用费用,记得确认服务商的计费和额度设置。

第二步:创建对话代理

打开Python文件,导入AssistantAgent和OpenAIChatCompletionClient。先创建模型客户端,再分别建立研究员和撰稿人两个代理;每个代理使用同一个模型服务,但通过不同的名称与系统提示承担不同工作。模型名称要替换成服务商账号支持的型号。一个代理负责拆解问题、列出要点,另一个依据要点形成清晰答复,职责越明确,互相协作时越不容易重复跑题。

可把以下代码放进异步主函数:创建客户端时填写model参数,然后用AssistantAgent(“researcher”, model_client, system_message=”你是研究员,提炼事实与要点。”)创建研究员;再用AssistantAgent(“writer”, model_client, system_message=”你是撰稿人,根据要点写简明答案。”)创建撰稿人。注意Python关键字参数可写成model_client=model_client、system_message=…,这样更易读,也方便之后调整角色说明。

配置系统提示和工具

系统提示决定代理的角色、目标、语气和边界。尽量写得具体,例如要求研究员用要点回答、标出不确定信息,要求撰稿人只基于现有要点组织内容,并在信息不足时说明缺口。任务范围也可以写清楚,比如“只分析给定文本,不自行补充外部事实”。先从短提示开始,观察对话结果,再逐项修改,不必一开始就写很长的规则。

如果要让代理调用函数或外部工具,可将普通Python函数封装后交给代理使用,并为每个工具写清参数、返回值和使用时机。例如计算器适合确定性运算,检索工具适合查询外部资料。工具执行权限应按需要开放,先在测试环境确认输入输出,再加入真实工作流。本文先演示纯对话,避免把工具配置和群聊流程混在一起;没有工具时,代理只依据提示和模型能力作答。

第三步:启动群聊并观察

导入RoundRobinGroupChat与TerminationCondition相关组件,将研究员和撰稿人放进participants列表,设置终止条件,例如最多交流六条消息。轮流群聊会按顺序让参与者发言,便于初学者观察角色如何接力。然后在异步函数中运行team.run(task=”请讨论如何规划一周的Python入门学习,并给出简短计划”),把结果打印出来;任务要具体,方便判断协作是否有效。

脚本入口使用“asyncio.run(main())”启动主函数,并在结束时调用await model_client.close()释放客户端资源。运行后查看每条消息的发言者和内容:研究员是否提供了可用要点,撰稿人是否据此完成总结,是否出现重复或偏题。若群聊提前停止或发言过多,检查终止条件和角色提示;若调用失败,则核对API密钥、模型名称、网络连接及服务端错误信息。

想让人参与讨论,可以使用支持人类输入的代理或交互式流程,让代理在关键步骤暂停,等待你补充要求、确认草稿或决定是否继续。实际使用时,先用短任务测试,再逐步加入更多角色、工具和明确的停止规则。AutoGen Studio也可用于图形化探索代理配置。如果你在寻找国内替代方案,可了解01Agent,官网:01agent.cgref.cn。这份入门教程由润灭整理。

标签:
微信        
微信号runmie