你是否也曾幻想过拥有一个像钢铁侠的Jarvis一样的AI助手,帮你处理邮件、安排日程、甚至创作内容?现在,这个梦想不再遥不可及!
🤫大模型智能体:AI时代的“分身术”
大模型智能体,简单来说,就是基于大型语言模型(LLM)构建的、能够自主完成特定任务的AI“分身”。它们不再是简单的聊天机器人,而是能够理解上下文、调用工具、甚至与其他智能体协作的“超级助理”。
🤔为什么你需要一个AI“分身”?
* 效率🚀翻倍:告别重复性工作,让AI帮你搞定!
* 创意💡迸发:AI的独特视角,给你带来无限灵感!
* 决策📈更准:数据驱动的分析,让你的决策更有底气!
🔥AutoGen:动动手指,定制你的专属AI
AutoGen是微软开源的一个强大的多智能体框架,它让构建AI智能体变得像搭积木一样简单!
😱AutoGen有多强?
1. 多智能体协作:让多个AI“分身”组队,共同完成复杂任务!
2. 工具调用:AI可以自主调用搜索引擎、计算器等工具,能力无限拓展!
3. 定制化:根据你的需求,定制AI的性格、技能和知识库!
4. 低门槛:无需深厚编程基础,小白也能轻松上手!
🛠️保姆级教程:手把手教你用AutoGen构建AI
今天,我们就以构建一个基于谷歌Gemini模型的智能体为例,带你体验AutoGen的魅力!(代码已做精简,方便理解)
1. 准备工作
* 安装必要的库(已省略)
* 获取Gemini API密钥(自行申请,文末有福利🎁)
2. 定义你的AI“分身”
# 导入必要的库
import os
from autogen_agentchat.agents import BaseChatAgent
from autogen_agentchat.messages import TextMessage
from autogen_core import CancellationToken
from google import genai
from dotenv import load_dotenv
load_dotenv()
# 从环境变量中读取api_key
api_key = os.getenv('GEMINI_API_KEY')
# 定义一个Gemini助手类
class GeminiAssistantAgent(BaseChatAgent):
def __init__(
self,
name: str,
description: str = "An agent that provides assistance with ability to use tools.",
model: str = "gemini-2.0-pro-exp-02-05",
api_key: str = api_key,
system_message: str
| None = "You are a helpful assistant that can respond to messages. Reply with TERMINATE when the task has been completed.",
):
super().__init__(name=name, description=description)
self._model_client = genai.Client(api_key=api_key)
self._system_message = system_message
self._model = model
# 定义消息处理逻辑(精简版)
async def on_messages(self, messages, cancellation_token):
history = [
("system" if msg.source is None else msg.source) + ": " + msg.content
for msg in messages
]
response = self._model_client.models.generate_content(
model=self._model,
contents=f"History: {history}\nGiven the history, please provide a response",
config=genai.types.GenerateContentConfig(
system_instruction=self._system_message,
temperature=0.3,
),
)
yield Response(
chat_message=TextMessage(content=response.text, source=self.name),
inner_messages=[],
)
async def on_reset(self, cancellation_token: CancellationToken) -> None:
"""Reset the assistant by clearing the model context."""
await self._model_context.clear()
代码解读:
* `GeminiAssistantAgent`:我们创建了一个名为`GeminiAssistantAgent`的类,它继承自`BaseChatAgent`。
* `__init__`:初始化方法,设置了AI的名称、描述、模型、API密钥和系统消息。
* `on_messages`:处理消息的核心逻辑,接收消息历史,调用Gemini模型生成回复。
3. 创建你的AI团队
from autogen_agentchat.agents import AssistantAgent
from autogen_agentchat.conditions import TextMentionTermination
from autogen_agentchat.teams import RoundRobinGroupChat
from autogen_agentchat.ui import Console
# 创建一个Gemini助手实例
gemini_assistant = GeminiAssistantAgent("gemini_assistant")
# 创建一个主要的助手实例
primary_agent = GeminiAssistantAgent(
"primary",
system_message="You are a helpful AI assistant.",
)
# 创建一个评论员助手实例
gemini_critic_agent = GeminiAssistantAgent(
"gemini_critic",
system_message="Provide constructive feedback. Respond with 'APPROVE' to when your feedbacks are addressed.",
)
# 定义终止条件:评论员说"APPROVE"或达到10条消息
termination = TextMentionTermination("APPROVE") | MaxMessageTermination(10)
# 创建一个团队,包含主要助手和评论员
team = RoundRobinGroupChat([primary_agent, gemini_critic_agent], termination_condition=termination)
# 启动对话
async def main():
try:
# Create a team with the primary and critic agents.
team = RoundRobinGroupChat([primary_agent, gemini_critic_agent], termination_condition=termination)
await Console(team.run_stream(task="Write a Haiku poem with 4 lines about the fall season."))
except Exception as e:
print(f"发生错误: {e}")
print("请检查网络连接、API 密钥以及 One API 服务是否正常运行。")
asyncio.run(main()) # 使用 asyncio.run() 运行 main 函数
代码解读:
* 我们创建了两个AI实例:`primary_agent`(主要助手)和`gemini_critic_agent`(评论员)。
* `RoundRobinGroupChat`:创建了一个团队,让两个AI轮流发言。
* `termination`:设置了终止条件,当评论员说“APPROVE”或达到10条消息时,任务结束。
4. 运行你的AI团队
运行上述代码,你的AI团队就会开始工作,为你创作一首关于秋天的四行俳句!
* 评论区挑战:你会选择定制一个什么样的AI助手?它会帮你做什么?
* 开放式提问:你认为AI智能体未来会如何改变我们的生活?
* 知识盲区:你知道AutoGen还能实现哪些神奇的功能吗?(答案藏在文末)
🎁文末福利:
1. 评论区抽奖:分享你对AI智能体的看法,有机会获得Gemini API密钥试用资格!
2. 隐藏信息:AutoGen不仅能构建聊天机器人,还能实现更复杂的自动化工作流,比如自动生成报告、自动回复邮件等!(第3张图有惊喜,仔细找找!)