在AI的世界里,AutoGen AgentChat就像是一位拥有“超能力”的超级英雄,它不仅能让AI聊天变得更智能,还能帮你完成各种复杂任务!无论是搜索信息、分析数据,还是执行代码,AutoGen代理都能轻松搞定。今天,我们就来揭秘这些代理的“超能力”,看看它们是如何颠覆你的AI体验的
1. 会使用工具:搜索信息
AutoGen代理最基础的能力就是搜索信息。无论是查找学术论文、市场数据,还是简单的百科知识,它都能快速为你提供答案。通过内置的或者新增的工具, AI代理可以像搜索引擎一样,从海量信息中精准抓取你需要的内容。
代码示例:让代理帮你搜索信息
async def web_search(query: str) -> str:
return "AutoGen 是一个用于构建多代理应用的编程框架。"
agent = AssistantAgent(
name="assistant",
tools=[web_search],
system_message="用工具解决问题。"
)
response = await agent.on_messages(
[TextMessage(content="查找关于AutoGen的信息", source="user")]
)
print(response.chat_message)
输出结果:
AutoGen 是一个用于构建多代理应用的编程框架。
2.执行代码:AI界的“程序员
除了搜索信息,AutoGen代理还能执行代码!无论是数据分析、图像处理,还是自动化脚本,它都能轻松应对。通过PythonAstREPLTool工具,代理可以直接运行Python代码,并返回结果
代码示例:让代理帮你分析数据
import pandas as pd
from autogen_ext.tools.langchain import LangChainToolAdapter
from langchain_experimental.tools.python.tool import PythonAstREPLTool
# 加载泰坦尼克号数据集
df = pd.read_csv("https://example.com/titanic.csv")
tool = LangChainToolAdapter(PythonAstREPLTool(locals={"df": df}))
# 创建代理并提问
agent = AssistantAgent(
name="assistant",
tools=[tool],
system_message="用`df`变量访问数据集。"
)
await Console(
agent.on_messages_stream(
[TextMessage(content="乘客的平均年龄是多少?", source="user")]
)
)
输出结果:
---------- assistant ----------
[FunctionCall(id='call_456', arguments='{"query":"df['Age'].mean()"}', name='python_repl_ast')]
[Prompt tokens: 111, Completion tokens: 22]
---------- assistant ----------
[FunctionExecutionResult(content='29.69911764705882', call_id='call_456')]
---------- assistant ----------
29.69911764705882
3. 多模态能力:AI界的“全能选手”
AutoGen代理不仅限于文本处理,它还支持多模态任务!比如,你可以让它分析图片、浏览网页,甚至观看视频并提取信息。这种多模态能力让代理的应用场景更加广泛。
示例:让代理分析图片
from autogen_agentchat.messages import MultiModalMessage
from autogen_core import Image as AGImage
from PIL import Image
# 加载图片
pil_image = Image.open("example.jpg")
img = AGImage(pil_image)
# 发送多模态消息
response = await agent.on_messages(
[MultiModalMessage(content=["描述这张图片的内容", img], source="user")]
)
print(response.chat_message)
输出结果:
这张图片展示了一座美丽的山脉,山顶覆盖着白雪,周围是茂密的森林。
4. 工具调用:AI界的“瑞士军刀”
AutoGen代理最强大的功能之一就是工具调用。通过Tool Calling,代理可以调用外部工具,比如API、数据库,甚至自定义函数。这种能力让代理不仅能生成文本,还能执行具体任务。
示例:让代理调用自定义工具
async def calculate_sum(a: int, b: int) -> int:
return a + b
agent = AssistantAgent(
name="assistant",
tools=[calculate_sum],
system_message="用工具解决问题。"
)
response = await agent.on_messages(
[TextMessage(content="计算10加20的和", source="user")]
)
print(response.chat_message)
输出结果:
30
5. 实时交互:AI界的“聊天达人”
AutoGen代理还支持实时交互!通过on_messages_stream()方法,你可以实时看到代理的“思考过程”,就像和真人聊天一样。
示例:实时交互
async def assistant_run_stream():
await Console(
agent.on_messages_stream(
[TextMessage(content="查找关于AutoGen的信息", source="user")]
)
)
await assistant_run_stream()
输出结果:
---------- assistant ----------
[FunctionCall(id='call_123', arguments='{"query":"AutoGen"}', name='web_search')]
[Prompt tokens: 61, Completion tokens: 16]
---------- assistant ----------
[FunctionExecutionResult(content='AutoGen 是一个用于构建多代理应用的编程框架。', call_id='call_123')]
---------- assistant ----------
AutoGen 是一个用于构建多代理应用的编程框架。如果需要更多详细信息,随时问我!
总结:AutoGen代理,让你的AI体验更上一层楼!
从搜索信息到执行代码,从多模态任务到工具调用,AutoGen代理用它的“超能力”彻底颠覆了传统的AI体验。无论你是开发者、研究人员,还是普通用户,AutoGen都能为你提供强大的支持。快来试试吧,让你的AI助手变得更智能、更有趣!