AutoGen AgentChat:从搜索信息到执行代码,AI代理如何用“超能力”颠覆你的AI体验

302 阅读4分钟

在AI的世界里,AutoGen AgentChat就像是一位拥有“超能力”的超级英雄,它不仅能让AI聊天变得更智能,还能帮你完成各种复杂任务!无论是搜索信息、分析数据,还是执行代码,AutoGen代理都能轻松搞定。今天,我们就来揭秘这些代理的“超能力”,看看它们是如何颠覆你的AI体验的

重绘图片.png

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助手变得更智能、更有趣!

企业微信截图_d29f34fe-ede7-4a7f-8ce7-0a4d3b600d65.png