什么是人工智能体(AI Agent)?
-
感知:人工智能体使用传感器或输入机制来感知环境。这可能涉及从摄像头、麦克风或其他传感器等各种来源收集数据。 -
推理:人工智能体接收信息并使用算法和模型来处理和解释数据。这一步包括理解模式、做出预测或产生反应。 -
决策:人工智能体会根据自己的感知和推理来决定行动或产出。这些决策旨在实现其程序或学习过程中确定的特定目标或目的。此外,人工智能体将更多地充当助手,而不是取代人类。 -
行动:人工智能体根据自己的决定执行行动。这可能涉及现实世界中的物理行动(如移动机械臂)或数字环境中的虚拟行动(如在应用程序中进行推荐)。
人工智能体 AI Agent 还存在哪些局限?
人工智能体与 RAG 的区别

总之,RAG 应用程序专门设计用于通过纳入检索机制来增强生成模型的能力;而人工智能体则是更广泛的实体,可以自主执行各种任务。
LangGraph 是什么?
主要优势
-
循环和分支:与其他使用简单有向无环图(DAG)的框架不同,LangGraph 支持循环和条件,这对创建复杂的AI Agent行为至关重要。 -
细粒度控制:作为底层框架,LangGraph 可对应用程序的流程和状态进行详细控制,非常适合开发可靠的AI Agent。 -
持久性:它包括内置的持久性,允许在每一步后保存状态、暂停和恢复执行,并支持错误恢复和人在环工作流等高级功能。
特点
-
循环和分支:在应用程序中实施循环和条件。 -
持久性:每一步后自动保存状态,支持错误恢复。 -
人在回路中:中断执行以获得人工批准或编辑。 -
支持流式输出:在每个节点产生输出时进行流式输出。 -
与 LangChain 集成:与 LangChain 和 LangSmith 无缝集成,但也可独立使用。
LangGraph 受到 Pregel 和 Apache Beam 等技术的启发,拥有类似 NetworkX 的用户友好界面。它由 LangChain 公司开发,为构建可靠、先进的人工智能驱动应用程序提供了强大的工具。
Ollama 是什么?
主要功能
-
本地部署:直接在本地计算机上运行复杂的 LLM,确保数据隐私并减少对外部服务器的依赖。 -
用户友好界面:设计直观、易于使用,使不同技术知识水平的用户都能使用。 -
可定制性:对人工智能模型进行微调,以满足您的特定需求,无论是用于研究、开发还是个人项目。 -
开源:作为开放源代码,Ollama 鼓励社区贡献和持续改进,促进创新与合作。 -
轻松安装:Ollama 以其用户友好的安装过程脱颖而出,为 Windows、macOS 和 Linux 用户提供了直观、省心的安装方法。我们以前内容中讲过关于下载和使用 Ollama 的内容。 -
Ollama 社区:Ollama 有一个活跃的、以项目为驱动、促进合作与创新的社区。
使用 LangGraph 和 Ollama 创建人工智能体

具体如何启动一台 A100 的主机,可以看我们之前发的教程,虽然教程讲的是H100,但是步骤一样。在启动实例之后,可以跟着下述步骤继续进行。
检查 GPU 配置
nvidia-smi

安装 LangGraph 和相关库
pip install -U langgraph
pip install -U langchain-nomic langchain_community tiktoken langchainhub chromadb langchain langgraph tavily-pythonpip install langchain-openai完成安装后,我们将进入下一个关键步骤:提供 Tavily API 密钥 注册 Travily 并生成 API 密钥: export TAVILY_API_KEY="apikeygoeshere"现在,我们将运行下面的代码来获取模型。请尝试使用 Llama 或任何其他版本的 Mistral。 使用 Llama 或任何其他版本的 Mistral:
ollama pull mistral导入构建AI Agent所需的库 from langchain import hubfrom langchain_community.tools.tavily_search import TavilySearchResultsfrom langchain.prompts import PromptTemplatefrom langgraph.prebuilt import create_react_agentfrom langchain_openai import ChatOpenAIfrom langchain_core.output_parsers import JsonOutputParserfrom langchain_community.chat_models import ChatOllama我们将首先定义要使用的工具,并将这些工具与 LLM 绑定。在这个简单的示例中,我们将通过 Tavily 使用内置的搜索工具。
tools = [TavilySearchResults(max_results=3)]
llm_with_tools = llm.bind_tools(tools)
下面的代码片段检索提示模板并以可读格式打印出来。然后可以根据应用程序的需要使用或修改该模板。 prompt = hub.pull("wfh/react-agent-executor")prompt.pretty_print()使用 Ollama 平台配置 Mistral(可以参考:https://github.com/langchain-ai/langchain/discussions/21907)
llm = ChatOpenAI(model="mistral", api_key="ollama", base_url="http://localhost:11434/v1",
)
最后,我们将使用 LLM、一组工具 和提示模板 (prompt) 创建一个AI Agent执行器。该AI Agent被配置为对输入做出反应,利用这些工具,并根据指定的提示生成响应,从而能够以可控和高效的方式执行任务。
agent_executor = create_react_agent(llm, tools, messages_modifier=prompt)
================================ System Message ================================
You are a helpful assistant.
============================= Messages Placeholder =============================
{{messages}}
给定的代码片段调用AI Agent执行器来处理输入消息。此步骤旨在向AI Agent执行器发送查询并接收响应。AI Agent将使用其配置的语言模型(在本示例中为 Mistral)、工具和提示来处理消息并生成适当的回复。
response = agent_executor.invoke({"messages": [("user", "explain artificial intelligence")]})
for message in response['messages']:print(message.content)AI Agent将生成以下响应。 小结
LangGraph 以及 AI Agents 和 Ollama 等工具代表着在开发和部署本地化人工智能解决方案方面向前迈出的重要一步。通过利用 LangGraph 简化各种人工智能组件的能力及其模块化架构,开发人员可以创建多用途、可扩展的人工智能解决方案,既高效又能高度适应不断变化的需求。 人工智能体为任务自动化和提高生产力提供了一种灵活的方法。这些AI Agent可以定制来处理各种功能,从简单的任务自动化到复杂的决策过程,使其成为现代企业不可或缺的工具。
作为该生态系统的一部分,Ollama 通过提供专门的工具和服务来补充 LangGraph 的能力,从而提供额外的支持。总之,LangGraph 和 Ollama 的集成为构建高效的人工智能体提供了一个强大的框架。对于希望利用这些技术的潜力推动创新并在不断发展的人工智能领域实现目标的任何人来说,希望本篇教程能给大家一些参考。