您的AI工作原理简单指南
感觉人工智能(AI)无处不在,不是吗?随着ChatGPT于2022年11月推出1,它一举进入主流视野。突然间,数百万人开始与能够编写电子邮件、诗歌甚至计算机代码的AI进行互动。ChatGPT仅用两个月就达到了惊人的1亿用户2,比之前几乎任何技术都要快。现在,我们也听说了其他强大的AI模型,如谷歌的Gemini和Anthropic的Claude。
然而,伴随兴奋的也有很多不确定和担忧。皮尤研究中心2024年的一项研究3发现,专家和公众对AI的看法存在巨大差异:
- 只有11%的美国成年人表示他们对AI的兴奋程度高于担忧程度,而AI专家中这一比例为47%。
- 超过半数的公众(51%)表示他们对AI的担忧程度高于兴奋程度,而专家中这一比例仅为15%。
- 许多人担心AI会对他们个人造成伤害(43%),而不是带来益处(24%)。
对就业、不准确信息、偏见和失控的担忧很普遍。那么,到底发生了什么?AI只是花哨的软件,还是别的什么?它到底是如何学习的?人们开始谈论的这些“AI代理”又是什么?
本文旨在用简单的语言分解所有这些问题。我们将深入了解ChatGPT等AI的内部运作,理解其局限性,探讨AI代理如何进一步发展,并通过清晰的解释解决一些常见的担忧。
第一部分:AI如何学习说话
首先,我们必须明白,像ChatGPT这样的AI与我们通常使用的软件(如Microsoft Word或计算器)非常不同。
传统软件:想想计算器。你输入2 + 2,它总是给你4。它遵循程序员编写的精确指令。给出相同的输入,每次都会得到完全相同的输出。它是可预测的,并且基于固定规则。我们称之为确定性。
AI语言模型:更像是人类通过大量听和读来学习语言。大型语言模型(LLM)没有被赋予确切的语法规则。相反,它们被展示了来自互联网、书籍和文章的海量文本。通过分析这些数据,它们学习词语之间的模式和联系。当你提出问题时,大型语言模型(LLM)会根据其学习到的模式,预测最有可能的词语序列,从而形成一个好的答案。这意味着如果再次提出相同的问题,它可能会给出略有不同的答案。它基于概率和模式工作,而不是固定规则。我们称之为概率性。
大型语言模型到底是如何学习的?
想象一个巨大而复杂的连接点网络,就像微小的数字脑细胞。这被称为神经网络。学习发生在几个关键阶段:
- 预训练(构建通用知识):AI阅读海量文本。在阅读过程中,它不断尝试预测句子中的下一个词。当它做出猜测时,它会检查是否正确。如果错误,它会稍微调整其内部连接(就像调整数十亿个微小旋钮)以便下次做出更好的预测。这种预测和调整的过程,重复数十亿次,帮助AI学习语法、事实(从它阅读的文本中)、上下文和不同的写作风格。
- 微调(具体化):预训练后,模型可能会在特定类型的文本或任务上进行更多训练,以使其在准确回答问题或仔细遵循指令等方面表现更好。
- 从人类反馈中学习(RLHF):为了使AI更安全、更有帮助,人类会参与进来。人们查看AI对同一问题的不同答案,并将其从最好到最差进行排名。然后,AI会学习生成更符合人类偏好的答案。这就像给学生提供有益的反馈。
将知识付诸实践
一旦训练完成,当你给AI一个提示(你的问题或指令)时,它会使用其经过调整的网络来生成答案,一个接一个地预测最有可能的词。这种使用训练好的模型进行预测的过程称为推理。
为什么这对于理解AI的局限性和担忧很重要
了解大型语言模型如何学习有助于解释它们的一些奇怪行为以及人们担忧的原因:
- 幻觉(凭空捏造):由于AI是预测可能的词语,而不是从完美的记忆库中查找信息,因此它有时会创建听起来不错但错误的信息。它根据模式连接词语,而不总是基于事实。皮尤研究发现,66%的美国成年人和70%的专家高度担忧人们从AI获得不准确信息。
- 知识截止日期:AI通常只“知道”其训练数据中包含的信息,而这些信息有一个截止日期。除非经过专门更新或连接到实时信息(这就是代理的作用!),否则它通常不知道最近发生的事件。
- 偏见:AI从人类编写的文本中学习,而人类的写作包含偏见。如果训练数据包含不公平的刻板印象或未能平等代表所有群体,AI可能会学习并重复这些偏见。公众和专家都对此表示担忧。皮尤研究发现,这两个群体中各有55%的人高度担忧AI决策中的偏见。专家还指出,男性的观点和白人成年人的观点在AI设计中通常比女性或少数民族的观点得到更好的体现。
第二部分:介绍可以做事的AI代理
所以,LLM擅长语言,但它们有局限性。它们通常无法自己预订航班、管理工作日程或更新公司记录。它们大多被困在聊天窗口内。
LLM代理旨在打破这个限制。可以把代理想象成将LLM“大脑”与使用工具和在数字世界甚至物理世界中采取行动的能力结合起来。
一个代理可以:
- 推理和规划:利用其LLM大脑理解您的目标并找出所需的步骤。
- 使用工具:与其他软件、网站或数据库进行交互。这种连接通常通过API(应用程序编程接口)实现,API就像信使,让不同的程序相互通信。代理请求这些其他程序获取信息或执行操作的能力通常被称为“工具使用”或“工具调用”。这是让代理行动的关键。
- 执行任务:使用这些工具执行计划的步骤。
这些代理在哪里运行?
AI代理不仅仅是看不见的代码。它们可以在不同的地方工作:
- 在网络上:一个浏览器代理在您的网络浏览器中(如Chrome或Edge)工作,自动化填写表格、跨网站搜索或为您点击按钮等任务。
- 在您的计算机上:一个计算机使用代理可以直接与您的计算机操作系统(如Windows或macOS)和桌面软件交互,自动化涉及文件、文件夹和不同应用程序的任务。
- 在您的手机上:移动代理可能能够直接在您的智能手机上管理应用程序、设置和任务。
- 在物理世界中:当AI代理控制一个实体时,我们通常称之为机器人或物理代理。想想自动驾驶汽车、仓库机器人分拣包裹或无人机检查桥梁。
因此,核心思想(推理、规划、使用工具)是相同的,但代理可能会点击网页按钮、控制机器人手臂,或者通过“工具调用”通过API与另一个软件系统进行通信。
工作或学校中LLM代理的日常示例
让我们考虑一些代理利用其工具调用能力可能有所帮助的常见情况:
- 大学招生办公室:AI代理可以代替工作人员手动检查申请,它可以:阅读申请论文(利用其LLM大脑),使用“工具”在数据库中检查成绩是否符合要求,草拟个性化的状态更新邮件,并使用日历“工具”提供面试时间段。它将处理常规步骤,将复杂案例标记出来供人工审查。
- 公司IT帮助台:如果您的工作打印机不工作,AI代理可以:理解您的问题描述(LLM),使用“工具”在帮助数据库中查找解决方案,指导您完成故障排除步骤,也许使用另一个“工具”直接检查打印机状态,如果需要,为人类技术人员创建详细的支持工单。
- 在线购物支持:如果您的在线订单迟到,AI代理可以:理解您的问题(LLM),使用“工具”通过API检查实时发货状态,如果需要,使用另一个“工具”检查库存,并草拟一份包含当前信息的具体、有帮助的回复。
LLM代理如何克服LLM的弱点
代理解决了LLM的核心限制:
- 幻觉:通过使用工具获取真实、事实的数据(如订单状态),代理减少了仅依赖LLM可能存在缺陷的记忆的情况。
- 知识截止:工具允许代理访问最新信息(如当前价格或新闻)。
- 无法行动:“工具使用”允许代理实际在其他软件中做事情(如预订会议或更新客户记录)。
第三部分:构建LLM代理
创建一个代理涉及多层技术,就像搭积木一样:
- 芯片:AI计算所需强大的计算机硬件(特别是NVIDIA等公司的GPU)。
- 云:AWS、Google Cloud和Azure等服务,让公司能够以可承受的成本在线租用计算能力。
- 大脑:基础模型(LLM):这是语言理解和推理能力来源。代理依赖强大的基础模型,通常通过API(应用程序编程接口)访问。这些是主要AI实验室开发的大型语言模型,例如OpenAI的GPT模型、Google的Gemini、Anthropic的Claude模型、Meta的Llama,以及Mistral、xAI(Grok)、DeepSeek等公司的模型。代理使用这些底层模型之一作为其核心推理引擎。
- 编排:这对于代理至关重要!特殊的软件工具(如LangChain或CrewAI)就像指挥家一样,告诉LLM大脑使用哪些工具(例如其他服务的API)以及以何种顺序完成任务。这管理了工作流程并将大脑连接到其工具。
- 应用程序:您实际与之交互的最终应用程序或服务(帮助台聊天窗口、购物助手)。
第四部分:使用Agno框架构建LLM代理
我们已经讨论了代理的构建模块:AI大脑(LLM)、它可以使用的工具以及连接所有内容的“编排”层。那么,编排部分到底是如何工作的呢?让我们以一个真实工具Agno为例,看看一个简化版本。
将Agno视为一个开发人员工具包,它使构建代理变得更容易。它有助于将AI大脑(如我们前面提到的特定模型,例如GPT-4o)连接到网络搜索、内存或特定知识等功能。
想象一下,我想获取我在旧金山最喜欢的泰国餐厅之一——**Osha Thai Embarcadero**的详细信息。假设他们正在参加**旧金山餐厅周**(使用示例日期2025年4月4日至13日)。通常,对于这种特殊活动,餐厅会将独特的菜单放在其网站上的PDF文件中。这个PDF包含我想要的详细信息,但标准AI或搜索引擎通常很难从PDF内部提取特定信息。这使其成为一个完美的测试案例!
我们将使用Agno工具包和OpenAI的GPT-4o模型来构建功能不断增强的代理。
下面是所涉及代码的简化视图。如果您不理解每一行代码,请不要担心;关键思想将在随后的文本和分析中解释。
示例1:基本LLM(无工具或知识)
首先,我们只使用AI大脑(GPT-4o)本身,就像一个基本的聊天机器人。我们暂时不给它任何网页搜索工具或关于那些PDF菜单的知识。
# Example 1 Code: Setting up a basic agent with just an AI model
from agno.agent import Agent
from agno.models.openai import OpenAIChat
# Create the agent, telling it to use OpenAI's GPT-4o model.
agent_basic = Agent(
model=OpenAIChat(id="gpt-4o"),
markdown=True, # Format responses nicely
)
# Ask some questions about Osha Thai and the event.
print("Asking about Osha Thai participation and dates...")
agent_basic.print_response("Is Osha Thai Embarcadero participating in San Francisco Restaurant Week? If so, what are the dates?")
print("\nAsking about the location...")
agent_basic.print_response("Where is Osha Thai Embarcadero located in San Francisco?")
发生了什么?(查看结果)
这是这个基本代理告诉我们的:
问题1:“Osha Thai Embarcadero是否参与……?如果是,日期是什么?”
回复:“我无法实时访问当前事件或实时数据库,但通常,旧金山许多受欢迎的餐厅……我建议查看官方网站……或餐厅的社交媒体页面或网站……”
- 分析:这很有趣!AI足够聪明,知道餐厅周的参与是它可能无法访问的当前信息。它没有凭空捏造(产生幻觉),而是承认了它的局限性,并建议了我们如何找到答案。这是一种负责任的AI行为。
问题2:“Osha Thai Embarcadero在哪里……?”
回复:“Osha Thai Embarcadero位于旧金山内河码头中心4号,邮编CA 94111……”
- 分析:这次,它给出了一个具体的、正确的答案。餐厅的地址是相对固定的信息,可能在GPT-4o训练期间学习到的海量文本中。它不需要任何特殊工具来获取这个事实。
总结:基本的AI大脑拥有大量通用知识,但无法访问实时、最新信息或其训练数据中未包含的详细信息。
示例2:给LLM代理一个网页搜索工具
好的,我们基本代理无法确认餐厅周的详细信息。让我们升级它,给它一个使用DuckDuckGo进行网页搜索的工具。
# Example 2 Code: Adding a web search tool
from agno.agent import Agent
from agno.models.openai import OpenAIChat
from agno.tools.duckduckgo import DuckDuckGoTools # Import the tool
# Create the agent like before, but add the tool
agent_with_search = Agent(
model=OpenAIChat(id="gpt-4o"),
description="You are a helpful assistant providing information about San Francisco Restaurant Week.",
# *** The key change: Add the search tool! ***
tools=[DuckDuckGoTools()],
show_tool_calls=True, # Helps us see when the tool is used
markdown=True
)
# Ask questions that might need current web info
print("Asking for reviews during Restaurant Week...")
agent_with_search.print_response("Are there any reviews specifically about Osha Thai Embarcadero's Restaurant Week menu from this year or previous years?", stream=True)
print("\nAsking about the overall event...")
agent_with_search.print_response("Can you tell me more about the history or purpose of San Francisco Restaurant Week?", stream=True)
发生了什么?(查看结果)
让我们检查第一个问题的输出(“有没有关于Osha Thai Embarcadero今年或往年餐厅周菜单的评论?”)
┏━ Tool Calls ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ • duckduckgo_search(query=Osha Thai Embarcadero Restaurant Week menu review) ┃
┃ • duckduckgo_search(query=Osha Thai Embarcadero Restaurant Week review 2023) ┃
┃ • duckduckgo_search(query=Osha Thai Embarcadero Restaurant Week review 2022) ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
┏━ Response (8.1s) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ Here are some resources related to reviews and information about Osha Thai Embarcadero ┃
┃ and their participation in Restaurant Week: ┃
┃ ┃
┃ 1 Osha Thai Restaurant Week Page ┃
┃ • Official listing with prix-fixe menu details from April 4th to 13th. ┃
┃ ┃
┃ 2 General Reviews and Info ┃
┃ • Yelp: Useful for ambiance and food quality feedback. ┃
┃ • OpenTable: Helpful for reservations and general reviews. ┃
┃ ┃
┃ 3 Past Review Insights ┃
┃ • No reviews focused only on Restaurant Week, but general reviews were available. ┃
┃ ┃
┃ Recommendation: Check Yelp, OpenTable, or the restaurant’s site for the most current feedback.┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
- 分析:大有不同!看到`Tool Calls`部分了吗?代理多次使用它的DuckDuckGo工具来搜索最近几年。它没有找到直接的餐厅周评论,但它返回了有用的链接和上下文。当无法获得精确答案时,这是一种有效的后备使用。
现在来看第二个问题(“你能告诉我更多关于旧金山餐厅周的历史或目的吗?”)
┏━ Tool Call ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ • duckduckgo_search(query=San Francisco Restaurant Week history and purpose) ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
┏━ Response (3.6s) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ San Francisco Restaurant Week is an event to celebrate and showcase the city's diverse ┃
┃ food scene. It promotes local restaurants with special prix-fixe menus. ┃
┃ ┃
┃ • Purpose: Encourage people to explore local cuisine and support neighborhood spots. ┃
┃ • History: It’s a recurring event in both spring and fall, though deep historical info ┃
┃ was limited in the search results. ┃
┃ ┃
┃ More details can be found on the official San Francisco Restaurant Week website. ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
- 分析:代理简洁地总结了网络结果,指出了目的和频率。它还指出缺少一些历史细节,这表明对所发现内容有良好的推理能力。
总结:添加一个简单的网页搜索工具,使代理能够更有效地在线查找当前或特定信息。编排层帮助它决定何时使用该工具。
示例3:赋予LLM代理特定知识(RAG)
网页搜索很棒,但是那些餐厅周PDF菜单上的具体菜品呢?一般的网页搜索可能难以从PDF内部精确定位“午餐主菜是什么?”。
在这里,我们可以通过使用一种称为RAG(检索增强生成)的技术,直接让代理访问这些特定文档来教导它。简单地说,我们让代理指向PDF菜单的URL,Agno会帮助将它们处理成一个特殊的知识库,代理可以首先搜索这个知识库,然后再尝试网络或仅仅凭记忆回答。
# Example 3 Code: Giving the agent specific PDF knowledge (RAG)
# (Simplified view focusing on the knowledge part)
from agno.agent import Agent
from agno.models.openai import OpenAIChat
from agno.embedder.openai import OpenAIEmbedder
from agno.tools.duckduckgo import DuckDuckGoTools
from agno.knowledge.pdf_url import PDFUrlKnowledgeBase
from agno.vectordb.lancedb import LanceDb, SearchType
# Set up the agent with model, RAG knowledge, instructions, and a fallback tool
agent_with_knowledge = Agent(
model=OpenAIChat(id="gpt-4o"),
description="You are an expert on Osha Thai Embarcadero's special Restaurant Week menus.",
# Instructions guide the agent on using its knowledge
instructions=[
"First, search your knowledge base (the Osha Thai Restaurant Week PDF menus) to answer questions about specific dishes, courses, options, or prices on those menus.",
"If the question is about general restaurant info [...] use the web search tool.",
"Always prefer information directly from the provided PDF menus when answering about menu content."
],
# *** The key part: Pointing to the PDF knowledge! ***
knowledge=PDFUrlKnowledgeBase(
urls=[ # The actual URLs for the lunch and dinner menus
"https://oshathai.com/wp-content/uploads/2025/03/2025-RestWeek-OshaEmc-2course.pdf",
"https://oshathai.com/wp-content/uploads/2025/03/2025-RestWeek-OshaEmc-3course.pdf"
],
vector_db=LanceDb( # Store the processed info here
uri="tmp/lancedb_osha_openai",
table_name="osha_rw_menu_openai",
embedder=OpenAIEmbedder(id="text-embedding-3-small"), # Use AI to understand PDF text
),
),
tools=[DuckDuckGoTools()], # Keep web search as a backup
show_tool_calls=True,
markdown=True
)
# Load the knowledge base (processes the PDFs)
print("Loading knowledge base...")
if agent_with_knowledge.knowledge is not None:
agent_with_knowledge.knowledge.load()
print("Knowledge base loaded.")
# Ask questions targeting the PDF content
print("\nAsking about the lunch menu (expects RAG)...")
agent_with_knowledge.print_response("What are the main course options on the Osha Thai Embarcadero Restaurant Week LUNCH menu?", stream=True)
print("\nAsking about the dinner menu dessert (expects RAG)...")
agent_with_knowledge.print_response("Is dessert included in the Restaurant Week DINNER menu at Osha Thai Embarcadero? If so, what is it?", stream=True)
# Ask a question NOT likely in the PDFs to test fallback
print("\nAsking about parking (expects Web Search)...")
agent_with_knowledge.print_response("Is there parking available near Osha Thai Embarcadero?", stream=True)
发生了什么?(查看结果)
- 问题1:“……午餐菜单上的主菜有哪些选择?”
┏━ Tool Calls ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ • search_knowledge_base(query=Osha Thai Embarcadero Restaurant Week LUNCH menu main course options)┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
┏━ Response (5.4s) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ The main course options on the Osha Thai Embarcadero Restaurant Week LUNCH menu are: ┃
┃ • Panang Beef Curry (GF) ┃
┃ • Pineapple Fried Rice (V) ┃
┃ • Drunken Noodles Chicken ┃
┃ • “Ka-Pow” Spicy Thai Basil ┃
┃ • Spicy Eggplant (VG) ┃
┃ These dishes provide a variety of flavors and cater to different dietary preferences, from ┃
┃ gluten-free to vegan options. ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
分析:成功!`Tool Calls`现在显示`search_knowledge_base`。这表明代理如何使用RAG(检索增强生成)方法。它不只是依赖于它的记忆。相反,它积极搜索文档集合以获取准确的答案。这意味着它不是在猜测。它从原始菜单中提取了真实的答案。
总结:编排层(Agno)帮助代理决定进行搜索而不是产生幻觉。这是一个很好的例子,说明添加检索功能如何使代理在回答菜单问题等实际任务中更具实用性。
问题2:“晚餐菜单是否包含甜点?如果是,是什么?”
┏━ Tool Calls ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ • search_knowledge_base(query=Restaurant Week dinner menu dessert Osha Thai Embarcadero) ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
┏━ Response (3.3s) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ Yes, dessert is included in the Restaurant Week dinner menu at Osha Thai Embarcadero. The dessert ┃
┃ offered is **Mango & Sticky Rice**. ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
分析:结果相同。它使用了`search_knowledge_base`工具,并准确地从晚餐菜单PDF中提取了甜点信息(“芒果糯米饭”)。
总结:这证明了代理可以用于文档问答,如PDF和内部文件。通过正确的设置,它们可以超越通用知识,并以精确的事实进行回答。
问题3:“Osha Thai Embarcadero附近有停车场吗?”
┏━ Message ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ Is there parking available near Osha Thai Embarcadero? ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
┏━ Tool Calls ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ • duckduckgo_search(query=Osha Thai Embarcadero parking options) ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
┏━ Response (3.8s) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ Yes, parking is available near Osha Thai Embarcadero in the Embarcadero Center's┃
┃ secure parking facility. You can find parking with a validation ticket at the ┃
┃ Embarcadero 4 parking garage, with its entrance off Drum Street. There are also ┃
┃ street parking options available in the vicinity. ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
- 分析:这展示了结合知识和工具的力量。代理知道停车信息不在菜单PDF中(其主要知识来源)。按照其指示,它智能地切换到使用其备用工具:`duckduckgo_search`。它成功地在线找到了相关的停车信息。
- 总结:当您结合RAG和网络搜索等工具时,代理将成为多模态问题解决者。它们知道何时使用您的内部数据与开放网络。
Agno等编排工具通常允许开发人员轻松添加更高级的功能:
- 知识:开发人员可以给代理提供特定的文档(例如上传PDF手册或公司指南)阅读。然后,代理可以在搜索通用网页之前,先搜索这个私有知识库。
- 记忆:代理可以被赋予记忆,以记住对话的过去部分,使交互感觉更自然。
- 代理团队:对于复杂的任务,开发人员可以创建专业的代理团队。例如,一个代理可能擅长网络搜索,而另一个擅长分析财务数据。“经理”代理可以协调团队来回答复杂的问题。
您将如何与这样的代理交互?
好的,开发人员可以使用像Agno这样的工具来构建这些代理。但是,作为用户,您将如何与它们交互呢?通常通过用户界面(UI),通常看起来像一个聊天窗口。
- 开发人员工具:Agno提供了一个名为“Playground”的示例Web UI,开发人员可以在其中直接与他们在本地计算机上构建的代理进行聊天和测试。
- 自定义Web应用程序:更常见的是,开发人员构建自定义Web应用程序。想象一个带有聊天框的简单网站。当您输入消息时,网站会将其发送到在后台运行的代理(可能使用Agno构建并托管在服务器上)。代理处理请求(使用其大脑和工具)并将答案返回给网站以显示给您。
- 托管:这些自定义Web UI需要托管在某个地方才能在线访问。Vercel等平台是托管此类Web应用程序的流行选择,使任何人都可以通过其Web浏览器轻松访问代理。
这只是使用一个特定工具Agno作为一个例子进行的快速浏览。许多其他编排工具也存在,但核心思想是相同的:它们充当连接强大的AI大脑(LLM)与有效可靠地在现实世界中执行任务所需的工具、知识和记忆的重要环节。它们对于构建我们一直在讨论的有用的AI代理至关重要。
第五部分:AI的未来和我们的大问题
潜力令人兴奋,但皮尤研究发现的公众担忧也很重要:
- 就业:代理会取代我们的工作吗?公众(64%)比专家(39%)更担心失业。一些工作可能会发生变化或减少,而新工作(例如构建和管理这些代理的AI工程师)可能会出现。公开透明地使用AI至关重要。
- 控制和监管:人们希望有更多发言权。超过一半的公众(55%)和专家(57%)希望对AI如何影响他们的生活拥有更多控制权。还有普遍的担忧(两个群体中约60%的人)认为政府对AI的规定不够严格。人们对政府和公司负责任地管理AI缺乏信心。这表明需要认真监督。
- 偏见和公平:正如我们所见,AI可以从其训练数据中学习人类偏见。使AI公平需要努力:使用多样化的数据,测试偏见,建立多样化的开发团队,并让人类参与重要决策。
AI代理具有巨大的潜力来帮助我们。但它们不是魔法,也不完美。了解它们的工作原理(它们的优点和缺点)是第一步。
解决人们合理的担忧需要公司透明化,政府制定周密的规则,开发人员关注公平,社会确保人类保持控制,特别是在关键任务中。这不仅仅是关于技术;更是关于我们共同决定如何使用它。
我们从对ChatGPT的兴奋开始,然后转向理解LLM的“概率性”大脑以及它们如何从海量文本中学习。我们探讨了它们的局限性,例如凭空捏造或继承偏见,这有助于解释一些常见的担忧。
然后我们认识了AI代理,这是AI使用“工具”在各种环境中(从您的网络浏览器到物理世界)采取行动的下一步。我们看到了它们如何在大学招生或客户支持等日常任务中提供帮助,同时我们也承认了皮尤等研究强调的就业、控制和公平方面的挑战。
未来的道路涉及负责任地利用AI的力量。通过更好地理解AI(无论是其惊人的潜力还是其真实的局限性),我们都可以更明智地参与塑造其未来,超越单纯的兴奋或恐惧,走向知情的讨论和深思熟虑的选择。