如何学习ai agent?

最近因为项目需要,接触到很多llm agent,但是感觉只能看着readme使用,有没有什么较基础的项目或者教程推荐.
收藏者
0
被浏览
55

5 个回答

乐得潇洒 LV

发表于 5 天前

现阶段AI Agent的主流形式都是RPA + AI。从 RPA (Robotic Process Automation, 机器人流程自动化) 的角度来看,AI Agent 可以被视为 RPA 的超级进化版。传统的 RPA 主要用于自动化重复性的、基于规则的任务,例如数据录入、表格填写、邮件发送等。但 RPA 的局限性在于它无法处理非结构化数据、无法进行复杂的决策、也无法适应变化的环境。
因此各大AI厂商的智能体平台通过基础配置聊天机器人和工作流这两种方式来实现一个半吊子的AI代理,整体来说前进了一小步,绝大多数现有的AI代理还是离不开人的干预。
AI Agent 究竟是什么?它能做什么?

在深入学习之前,我们先来搞清楚 AI Agent 到底是什么。
简单来说,AI Agent 可以理解为一个能够感知环境、做出决策并采取行动的智能体。它可以是软件程序、机器人,甚至是虚拟角色。与传统的 AI 模型不同,AI Agent 更加强调自主性和主动性,能够像人一样思考和行动。
AI Agent 的几个关键特点:

  • 自主性 (Autonomy): AI Agent 能够独立地进行决策和行动,而不需要人类的直接干预。
  • 反应性 (Reactivity): AI Agent 能够感知环境的变化,并及时做出反应。
  • 主动性 (Proactivity): AI Agent 能够主动地追求目标,而不仅仅是被动地响应环境变化。
  • 社会性 (Social Ability): 一些 AI Agent 能够与其他 Agent 或人类进行交互和协作。
AI Agent 的应用场景非常广泛,例如:

  • 智能客服: 自动回复客户咨询,解决常见问题。
  • 个性化推荐: 根据用户喜好,推荐商品、电影或音乐。
  • 自动驾驶: 控制汽车行驶,实现无人驾驶。
  • 游戏 AI: 控制游戏角色,与玩家互动。
  • 智能家居: 控制家电设备,提供舒适便捷的生活体验。
入门 AI Agent,有哪些学习路径?

理论基础


  • 了解基本概念: 学习 AI Agent 的定义、类型、特点以及应用场景。
  • 掌握相关技术: 了解机器学习、深度学习、强化学习等相关技术的基础知识。
实践操作


  • 选择合适的框架: 学习使用流行的 AI Agent 开发框架,例如 AutoGen、LangChain 等。
  • 动手实践项目: 从简单的项目开始,逐步提升难度,积累实战经验。
  • 参与开源社区: 加入相关的开源社区,与其他开发者交流学习,共同进步。
优质资源

为了帮助大家更好地学习,我整理了一些优质的学习资源,包括视频教程、框架介绍、GitHub 仓库和书籍推荐:
视频教程:


  • 大模型-Lance老师在B站上35分钟的速通课程《从什么是Agent到创建自己的Agent智能体!》

    • 优点:课时短,快速且全面
    • 缺点:只能当作最基础的入门,深入的搭建实战案例得找其他教程

  • DeepLearning.AI 的《AI Agentic Design Patterns with AutoGen》: 这门课程时长约一个半小时,非常适合快速入门。它系统介绍了 AutoGen 框架的概念、功能和优势,以及如何使用该框架构建多智能体系统。课程还讲解了四种重要的智能体设计模式:反思、工具使用、规划和多智能体协作,并通过实际案例演示了如何将 AutoGen 和智能体设计模式应用于实际项目中。

    • 优点: 内容精炼,重点突出,适合快速了解核心概念。
    • 缺点: B站上有搬运的视频,但没有对应的 Notebook 代码脚本,需要自行搜索或尝试复现。
    • B站链接: 吴恩达《利用AutoGen的人工智能智能体设计模式》 (请自行搜索最新链接,以防失效)

各类框架介绍:

LangChain:


    • 简介: LangChain 是一个非常受欢迎的 LLM 应用开发框架,它提供了构建 AI Agent 的强大工具。LangChain 的核心理念是“链式调用”,可以将 LLM、工具、记忆等组件串联起来,构建复杂的 Agent 工作流。
    • 特点:

      • 易于使用:提供 Python 和 JavaScript 库,API 简洁。
      • 组件丰富:内置了大量的 LLM 模型、工具和数据源。
      • 社区活跃:拥有庞大的开发者社区,文档和教程丰富。
      • 可扩展性强:支持自定义组件和链。

    • 适用场景: 适合构建基于 LLM 的各种 Agent,如聊天机器人、问答系统、文本摘要、代码生成等。
    • 官网: https://www.langchain.com/

AutoGen (Microsoft):


    • 简介: AutoGen 是微软推出的一个用于构建多智能体对话应用的框架。它支持创建多个 Agent,并通过定义 Agent 之间的交互规则来实现复杂的工作流。
    • 特点:

      • 多智能体协作:支持创建多个 Agent,并定义它们之间的交互方式。
      • 可定制性强:可以自定义 Agent 的角色、能力和交互规则。
      • 自动化工作流:可以构建复杂的工作流,实现任务的自动分解和执行。
      • 人机交互:支持人类用户参与到 Agent 的工作流中。

    • 适用场景: 适合构建需要多个 Agent 协作完成的复杂任务,如软件开发、数据分析、客户服务等。
    • GitHub: https://github.com/microsoft/autogen

SuperAGI:


    • 简介: SuperAGI 是一个开源的自主 AI Agent 框架,旨在帮助开发者快速构建和部署有用的自主 Agent。
    • 特点:

      • 专注于自主性:强调 Agent 的自主决策和行动能力。
      • 工具集成:支持与各种工具的集成,如搜索引擎、日历、数据库等。
      • 性能优化:注重 Agent 的性能和效率。
      • 活跃的社区和支持

    • 适用场景: 适合构建需要高度自主性的 Agent,如个人助理、研究助手、数据分析师等。
    • 官网: https://superagi.com/

CrewAI:


    • 简介: CrewAI 是一个专注于构建协作式 AI Agent 的框架,它强调 Agent 之间的角色分配、任务委派和协同工作。
    • 特点:

      • 角色扮演:可以为 Agent 分配不同的角色,如专家、管理者、执行者等。
      • 任务委派:可以将任务分解并委派给不同的 Agent。
      • 协同工作:支持 Agent 之间的信息共享和协作。
      • 易于使用:提供 Python API,上手简单。

    • 适用场景: 适合构建需要多个 Agent 协同工作的应用,如团队协作、项目管理、客户服务等。
    • GitHub: https://github.com/joaomdmoura/crewAI

OpenAI Assistants API:


    • 简介: OpenAI Assistants API 是 OpenAI 官方提供的 Agent 开发工具,它允许开发者在自己的应用中创建 AI 助手。
    • 特点:

      • 强大的 LLM 支持:基于 OpenAI 的 GPT 模型,具有强大的自然语言处理能力。
      • 工具集成:支持代码解释器、检索和函数调用等工具。
      • 状态管理:可以维护 Agent 的状态,实现持久对话。
      • 易于集成:提供 API 接口,可以方便地集成到各种应用中。

    • 适用场景: 适合构建基于 OpenAI 模型的各种 AI 助手,如聊天机器人、虚拟助手、教育应用等。
    • 官网: https://platform.openai.com/docs/assistants/overview

Semantic Kernel (Microsoft):


    • 简介: Semantic Kernel 是一个轻量级的 SDK,可将 AI 大语言模型 (LLM) 与传统编程语言集成。
    • 特点: * 与传统编程语言集成:支持与 C#、Python、Java 等语言集成。 * 插件化设计:可以将各种 AI 功能封装为插件,方便复用。 * 提示工程:提供了提示模板和函数,可以更好地控制 LLM 的输出。 * 可扩展:支持自定义连接器,可以连接到各种服务和数据源。
    • 适用场景: 适合将 AI 功能集成到现有应用中,或者构建需要与传统编程语言紧密集成的 AI Agent。
    • GitHub: https://github.com/microsoft/semantic-kernel

LlamaIndex:


    • 简介: LlamaIndex 是一个用于连接 LLM 与外部数据的数据框架。它提供了数据摄取、索引和查询等功能,可以帮助 AI Agent 更好地利用外部知识。
    • 特点:

      • 数据连接:支持连接各种数据源,如 API、数据库、文档等。
      • 数据索引:可以对数据进行索引,提高检索效率。
      • 查询引擎:提供了强大的查询引擎,可以方便地从数据中提取信息。
      • 与 LangChain 集成:可以与 LangChain 结合使用,构建更强大的 AI Agent。

    • 适用场景: 适合构建需要访问和利用外部知识的 AI Agent,如知识库问答、文档摘要、数据分析等。
    • 官网: https://www.llamaindex.ai/

GitHub 仓库:


  • e2b-dev/awesome-ai-agents: https://github.com/e2b-dev/awesome-ai-agents
  • kyrolabs/awesome-agents: https://github.com/kyrolabs/awesome-agents
  • SamurAIGPT/Best-AI-Agents: https://github.com/SamurAIGPT/Best-AI-Agents
这些仓库收集了大量 AI Agent 的列表,你可以找到你感兴趣的进行深入学习。以下是一些具体的、值得关注的 AI Agent 项目(部分可能在上述仓库中也有收录):

  • MetaGPT: (https://github.com/geekan/MetaGPT)
  • 输入一句话需求,MetaGPT 就能输出用户故事、竞争分析、需求、数据结构、API、文档等,甚至可以组成一个“软件公司”!这个项目展示了 AI Agent 在软件开发领域的巨大潜力。
  • Auto-GPT: (https://github.com/Significant-Gravitas/Auto-GPT)
  • 这是一个实验性的开源项目,旨在让 GPT-4 完全自主化。Auto-GPT 可以自主地进行网络搜索、代码执行、文件操作等,是 AI Agent 领域的先驱项目之一。
  • BabyAGI: (https://github.com/yoheinakajima/babyagi)
  • 这是一个更精简的 AI Agent 示例,它使用 OpenAI 和 Pinecone API 来创建、优先排序和执行任务。BabyAGI 的代码非常简洁,适合初学者学习 AI Agent 的基本原理。
  • AgentSims: (https://github.com/py499372727/AgentSims)
  • 这个项目提供了一个智能体模拟环境,你可以在其中创建和测试自己的 AI Agent。AgentSims 支持多种智能体类型和交互方式,可以用于研究多智能体系统、群体行为等。
书籍推荐:


  • 黄佳老师的《大模型应用开发 动手做AI Agent》: 这本书深入浅出地介绍了大模型应用开发的基础知识,并重点讲解了如何动手构建 AI Agent。书中提供了丰富的案例和代码示例,非常适合实践学习。
  • 《Hands-On Artificial Intelligence for Beginners》: 这本书从基础的 AI 概念讲起,逐步深入到 AI Agent 的设计和实现。书中提供了大量的 Python 代码示例,适合初学者入门。
  • 《Artificial Intelligence: A Modern Approach》 (Stuart Russell and Peter Norvig): 这本书是 AI 领域的经典教材,内容全面,涵盖了 AI Agent 的各个方面,包括搜索、规划、推理、学习等。
实践平台:


  • 腾讯元器/元宝
  • 智谱清言
  • 阿里云百炼
  • Dify
  • Coze
这些平台都提供了智能体的开发和部署环境,可以让你方便地进行实践操作。也不要有太高的预期,大多数真就是聊天机器人+工作流来进行复杂判断,主动型的AI代理很少,要是有合适的网络条件,你可以关注一下RPA领域的这几个平台:

  • UiPath: UiPath 是 RPA 领域的领导者之一,它提供了丰富的 AI 功能,例如文档理解、自然语言处理、计算机视觉等。UiPath 的 AI Center 可以帮助你管理和部署 AI 模型,并将其集成到 RPA 工作流中。
  • Automation Anywhere: Automation Anywhere 也提供了类似的 AI 功能,例如 IQ Bot 可以处理非结构化数据,AARI 可以实现人机协作。
  • Blue Prism: Blue Prism 的 Digital Exchange 提供了各种 AI 技能,例如 Decipher IDP 可以进行智能文档处理,Interact 可以实现人机交互。
  • n8n: n8n 是一个可扩展的工作流自动化工具,基于公平代码模型。它允许你免费在本地托管,轻松添加自定义功能、逻辑和应用程序,以快速创建强大而灵活的工作流程。
  • Appy Pie: Appy Pie 是一个无代码开发平台,允许用户在无需编码的情况下创建移动应用程序、网站和聊天机器人。
  • IFTTT (If This Then That): IFTTT 是一个连接各种应用程序和服务的平台,你可以创建简单的“如果这样,那么就那样”的自动化规则。
  • Zapier: Zapier 是一个连接各种应用程序和服务的平台,你可以创建自动化工作流,将数据从一个应用程序传输到另一个应用程序。

帅冰 LV

发表于 5 天前

2024年12月20日,发明了 Claude 的 Anthropic 公司发表了一篇博文,对如何构建有效的 LLM Agent 提供了系统性阐述,并深入探讨了各种 Workflow 和 Agent 的实现模式及适用场景
原始文章内容干货满满,本文就针对该篇博文进行翻译,强烈推荐各位读者查看原始文章——Building effective agents。
文章整体相当长,本文仅包含正文内容,附录相关内容将在下一篇文章列出。
TL;DR


  • Agent 定义与类型:

    • Workflow: 预定义的代码路径协调 LLM 和工具。
    • Agent: LLM 动态指导流程,自主控制任务完成方式。

  • 何时使用 Agent:

    • 优先选择简单方案,仅在需要时增加复杂性。
    • Workflow 提供一致性,Agent 提供灵活性和决策能力。

  • 常见 Workflow 模式:

    • 提示链: 将任务分解为多个步骤,提高准确性。
    • 路由: 分类输入并定向到不同子任务,提高任务适配性。
    • 并行化: 将任务分解为并行子任务或多次尝试提升性能。
    • 编排器-执行器: 动态分解任务,适合复杂、不可预测的情况。
    • 评估器-优化器: 循环评估和改进,适合明确标准的任务。

  • Agent 的适用场景:

    • 处理复杂开放问题,难以预测步骤。
    • 提供自主性和扩展性,但需平衡成本和潜在错误。

  • 核心原则:

  • 简单性:从简单设计开始,逐步增加复杂性。
  • 透明性:显式规划 Agent 的流程。
  • 工具设计:完善的文档和接口确保可靠性。
正文翻译

在过去的一年中,我们与各行各业的数十个团队合作构建大型语言模型(LLM)Agent。 在所有的合作中,最成功的实现并没有使用复杂的框架或专门的库。 相反,他们使用简单、可组合的模式进行构建
在这篇文章中,我们分享了我们从与客户合作和自己构建 Agent 中学到的经验,并为开发人员提供有关构建有效 Agent 的实用建议。
什么是 Agent?

“Agent” 可以用多种方式定义。 一些客户将 Agent 定义为完全自主的系统,可以在较长时间内独立运行,使用各种工具来完成复杂的任务。 其他人则使用该术语来描述遵循预定义 Workflow 的更规范的实现。 在 Anthropic,我们将所有这些变体都归类为 agentic 系统,但在 Workflow 和 Agent 之间进行了重要的架构区分:

  • Workflow 是通过预定义的代码路径协调 LLM 和工具的系统
  • Agent 是指 LLM 动态指导其自身流程和工具使用,并保持对其完成任务方式控制的系统
下面,我们将详细探讨这两种类型的 agentic 系统。 在附录 1(“实践中的 Agent”)中,我们将介绍客户发现使用这些类型的系统具有特殊价值的两个领域。
何时(以及何时不)使用 Agent

当使用 LLM 构建应用程序时,我们建议找到最简单的解决方案,并且仅在需要时才增加复杂性这可能意味着根本不需要构建 agentic 系统Agentic 系统通常会牺牲实时性和成本以获得更好的任务性能,您应该考虑这种权衡何时有意义
当需要更高的复杂性时,Workflow 为明确定义的任务提供可预测性和一致性,而当需要在规模上实现灵活性和模型驱动的决策时,Agent 是更好的选择。 然而,对于许多应用程序来说,使用检索和上下文示例(in-context examples)来优化单个 LLM 的调用通常就足够了
何时以及如何使用框架

有许多框架可以使 agentic 系统更容易实现,包括:

  • LangChain 的 LangGraph;
  • Amazon Bedrock 的 AI Agent 框架;
  • Rivet,一个拖放式 GUI LLM Workflow 构建器;以及
  • Vellum,另一个用于构建和测试复杂 Workflow 的 GUI 工具。
这些框架通过简化标准底层任务(如调用 LLM、定义和解析工具以及将调用链接在一起)使入门变得容易。 然而,它们通常会创建额外的抽象层,这些层会模糊底层的提示和响应,从而使调试更加困难它们也可能会让人在更简单的设置就足够的情况下,倾向于添加复杂性
我们建议开发人员首先直接使用 LLM API:许多模式可以在几行代码中实现。 如果您确实使用框架,请确保您了解底层代码。 对底层代码做出不正确的假设是客户错误的常见来源
请参阅我们的 cookbook,了解一些示例实现。
构建模块、 Workflow 和 Agent

在本节中,我们将探讨我们在生产中看到的 agentic 系统的常见模式。 我们将从我们的基础构建模块——增强的 LLM 开始,并逐步增加复杂性,从简单的组合 Workflow 到自主的 Agent。
构建模块:增强的 LLM

agentic 系统的基本模块是通过检索、工具和记忆(memory)等增强功能增强的 LLM。 我们目前的模型可以主动使用这些功能:例如生成自己的搜索查询,选择合适的工具,并确定要保留的信息。

如何学习ai agent?-1.jpg


The augmented LLM

我们建议关注实现的两个关键方面:针对您的特定用例定制这些功能,并确保它们为您的 LLM 提供简单、文档完善的接口。 虽然有很多方法可以实现这些增强功能,但一种方法是通过我们最近发布的 模型上下文协议(Model Context Protocal),该协议允许开发人员通过简单的客户端实现 与不断增长的第三方工具生态系统集成。
在本文的其余部分,我们将假设每次 LLM 调用都可以访问这些增强功能
Workflow

提示链(Prompt chaining)

提示链将任务分解为一系列步骤,其中每个 LLM 调用都会处理上一个调用的输出。 您可以在任何中间步骤中添加检查程序(请参阅下图中的“gate”)以确保该过程仍在进行中。

如何学习ai agent?-2.jpg


The prompt chaining workflow

何时使用这类 Workflow
这类 Workflow 非常适合可以简单地分解为简洁的固定子任务的情况。 这么做的主要目标是通过使每个 LLM 调用成为更简单的任务来牺牲响应时间以获得更高的准确性。
适用于提示链的示例

  • 生成营销文案,然后将其翻译成不同的语言。
  • 编写文档大纲,检查大纲是否符合特定标准,然后根据大纲编写文档。
路由(Routing)

路由对输入进行分类并将其定向到专门的后续任务。 这类 Workflow 更关注于根据不同情况构造更专业的提示链。 如果没有这类 Workflow,那对一种输入进行的优化可能会降低对其他输入的性能。

如何学习ai agent?-3.jpg


The routing workflow

何时使用这类 Workflow
路由适用于复杂任务,同时复杂任务可以分解为单独处理的不同类别,并且可以通过 LLM 或更传统的分类模型/算法准确地处理分类的情况
适用于路由的示例

  • 将不同类型的客户服务查询(一般问题、退款请求、技术支持)定向到不同的下游流程、提示和工具。
  • 将简单/常见的问题路由到较小的模型(如 Claude 3.5 Haiku),将困难/不常见的问题路由到更强大的模型(如 Claude 3.5 Sonnet)以优化成本和速度。
并行化(Parallelization)

LLM 有时可以同时处理一个任务,并通过编程方式将输出聚合。 这类 Workflow(并行化)主要有两种形式:

  • 分解:将任务分解为并行运行的独立子任务。
  • 投票:多次运行同一任务以获得不同的输出。

如何学习ai agent?-4.jpg


The parallelization workflow

何时使用这类 Workflow
当分解的子任务可以并行执行来提升响应速度,或者当需要多个视角或尝试获得更高的置信度结果时,并行化是有效的。 对于有许多因素需要考虑的复杂任务,当每个因素由单独的 LLM 调用处理时,LLM 的性能通常会更好,因为每一个单独的 LLM 可以专注于每个特定方面。
并行化的示例

  • 分解:

    • 实现安全性审查:其中一个模型处理用户查询,而另一个模型判断用户查询是否存在不适当的内容或请求。 这往往比让同一个 LLM 调用处理安全性审查和核心响应效果更好。
    • LLM 性能的自动化评估,其中每个 LLM 调用都会评估模型在给定提示下的不同性能。

  • 投票:

    • 审查一段代码是否存在漏洞,其中多个不同的提示词会审查并标记代码(如果发现问题)。
    • 评估给定的内容是否不适当,其中多个提示词会评估不同的方面或需要不同的投票阈值,以平衡误报和漏报。

编排器-执行器(Orchestrator-workers)

在编排器-执行器类型的 Workflow 中,有一个处于中心的 LLM 动态分解任务,并将其分配给其他 LLM 进行执行,并对其结果进行合成。

如何学习ai agent?-5.jpg


The orchestrator-workers workflow

何时使用这类 Workflow
这类 Workflow 非常适合于那些无法预测所需子任务的复杂任务(例如,在编码中,需要更改的文件数量以及每个文件中更改的性质可能取决于任务)。 虽然编排器-执行器的流程图与上一节并行化的流程图看上去很相似,但这两个 workflow 的关键区别在于编排器-执行器 workflow 的灵活性——子任务不是预定义的,是动态的,具体是由编排器根据特定输入确定的
编排-执行的示例

  • 每次都对多个文件进行复杂更改的编码产品。
  • 涉及从多个来源收集和分析信息以获取可能相关信息的搜索任务。
评估器-优化器(Workflow: Evaluator-optimizer)

在评估器-优化器 Workflow 中,一个 LLM 生成响应,而另一个 LLM 在一个循环中提供评估和反馈。

如何学习ai agent?-6.jpg


The evaluator-optimizer workflow

何时使用这类 Workflow
当我们有明确的评估标准,并且当迭代地进行改进可以提供可度量的收益时,这类 Workflow 特别有效。 良好拟合的两个标志是,首先,LLM 的响应可以通过人类的详细反馈进行明显改进;其次,LLM 可以提供这种反馈。 这类似于人类作者在制作精美文章时可能会经历的一遍又一遍的写作过程。
评估器-优化器的示例

  • 文学翻译,其中存在 LLM 在最初的翻译时可能无法捕捉到的细微差别,但评估器 LLM 可以提供有用的评论。
  • 复杂的搜索任务,需要多轮搜索和分析才能收集全面的信息,其中评估器决定是否需要进一步搜索。
Agent

随着 LLM 在理解复杂输入、参与推理和规划、可靠地使用工具以及从错误中恢复等关键能力方面日趋成熟,Agent 正在生产环境中使用。 Agent 通常从人类的指令或交互开始参与。 一旦任务明确,Agent 将独立规划和执行,并可能将结果返回给人类以获取更多的信息或判断。 在执行期间,Agent 必须在每个步骤从环境中获得“基本事实”(例如,工具调用结果或代码执行)来评估其过程。 Agent 可以在检查点或遇到障碍时暂停以获取人工反馈。 任务中止通常有两种情况:任务完成或者满足了停止条件(例如,最大迭代次数)。
Agent 可以处理复杂的任务,但它们的实现通常很简单。 它们通常是在基于环境反馈的循环中具有工具调用能力的 LLM。 因此,清晰完备地设计工具集及其文档至关重要。 我们在附录 2(“提示工程你的工具”)中详细介绍了工具开发的最佳实践。

如何学习ai agent?-7.jpg


Autonomous agent

何时使用 Agent
Agent 可用于开放性问题,在这种问题中,预测解决问题所需的步骤很难,并且不能给出一个固定路径。 LLM 可能会运行多个回合,您必须对它的决策有一定的信任。 Agent 的自主性使其成为在受信任环境中扩展任务的理想选择
Agent 的自主性意味着更高的成本,以及更可能犯一些复合性的错误。 我们建议在沙盒环境中进行广泛的测试,并使用适当的安全机制。
Agent 的示例
以下示例来自我们自己的实现:

  • 编码 Agent,用于解决 SWE-bench 任务,这些任务涉及根据任务描述编辑多个文件;
  • 我们的“计算机使用”参考实现,其中 Claude 使用计算机完成任务。

如何学习ai agent?-8.jpg


High-level flow of a coding agent

组合和定制这些模式

这些构建模块不是规范性的。 它们是开发人员可以构造和组合以适应不同用例的常见模式。 与任何 LLM 功能一样,评价性能并进行迭代是成功的关键。 重复一遍:只有在它能明显改善结果时,您才应该考虑添加复杂性
总结

LLM 领域的成功不在于构建最复杂的系统,而在于构建适合您需求的 正确 系统从简单的提示词开始,使用全面的评估对其进行优化,并且仅在更简单的解决方案不能满足需求时再添加多步骤的 agentic 系统
在实现 Agent 时,我们尝试遵循三个核心原则

  • 在 Agent 的设计中保持 简单性
  • 通过显式的、明确的 Agent 的规划步骤来提升 系统的透明度
  • 通过完备的 工具文档和测试 来精心设计您的 Agent-计算机接口(ACI)。
框架可以帮助您快速入门,但当您转向生产环境时,务必减少抽象层并使用基础组件进行构建。 通过遵循这些原则,您可以创建不仅强大而且可靠、可维护并获得用户信任的 Agent。
<hr/>感谢阅读到这里,如果这篇文章对你有所帮助,欢迎关注【算法工程笔记】公众号!

码农奶爸学AI LV

发表于 5 天前

目录

  • 一、基础理论学习
  • 二、编程和工具学习
  • 三、项目实践
  • 四、追踪最新研究
  • 五、推荐的学习资料
  • 六、适合初学者的AI Agent项目

最近在看AI Agent,总结了下,供参考。
一、基础理论学习

掌握基础的理论知识是学习AI Agent的关键。包括人工智能(AI)的基本概念、机器学习(ML)的基础以及深度学习(DL)的初步了解。可以通过阅读相关书籍、观看在线课程或参加研讨会来系统地构建对AI的基础理解。
书籍推荐:《深度学习》(Deep Learning)一书是入门深度学习的经典之作,详细介绍了深度学习的基本原理、算法和应用。
在线课程:Coursera平台上有许多关于人工智能、机器学习和深度学习的优质课程,可以根据自己的兴趣和需求选择适合的课程进行学习。
二、编程和工具学习

AI Agent的开发需要一定的编程知识,推荐掌握Python语言。Python是最受欢迎的AI开发语言之一,拥有丰富的库和编程框架,如TensorFlow、PyTorch和Keras等,这些都是实现AI Agent的强大工具。
Python基础学习:如果题主是Python初学者,可以从Python基础语法开始学习,逐步深入到面向对象编程、数据结构等高级主题。可以通过Codecademy、DataCamp等在线平台学习Python编程。
框架学习:TensorFlow和PyTorch是目前最流行的深度学习框架之一。可以通过阅读官方文档、观看教程视频和参与开源项目,来学习如何使用这些框架构建、训练和测试AI Agent。
三、项目实践

将理论知识应用于实践是学习AI Agent的重要组成部分。通过参与实际项目,可以加深对AI Agent工作原理的理解。
开源项目:GitHub上有许多与AI Agent相关的开源项目,可以通过参与这些项目来学习和实践AI Agent技术。比如,可以尝试使用TensorFlow或PyTorch等框架构建一个简单的聊天机器人或图像识别系统。
个人项目:也可以根据自己的兴趣和需求设计并实现一个简单的AI Agent项目。例如,可以使用强化学习技术来训练一个能够自主玩游戏的AI Agent。
四、追踪最新研究

人工智能是一个迅速发展的领域,持续追踪最新的研究成果对学习AI Agent至关重要。
订阅相关期刊:如《Machine Learning Journal》、《Artificial Intelligence Journal》等,这些期刊会定期发布最新的研究成果和论文。
参加行业会议:如NeurIPS、ICML、AAAI等,这些会议是人工智能领域的顶级会议,汇聚了来自世界各地的专家学者和从业者,会分享最新的研究成果和技术进展。
五、推荐的学习资料

1. 书籍资料
《大模型应用开发——动手做 AI Agent》:由《GPT图解》的作者黄佳老师创作,这本书从零基础出发,介绍了Agent的定义、特性与技术架构,还详细讲解了构建Agent的AI技术工具,并通过7个实战项目展示了Agent开发的方法。

如何学习ai agent?-1.jpg

2. 在线课程
哔哩哔哩课程:提供了“2024爆火AI Agent智能应用从0到1(应用解读+项目实战)”等相关课程,包括学习地址和提取码,是学习AI Agent的宝贵资源。搜索下,很多的,这里就不贴链接了。
3. 教程和框架学习
CSDN软件开发网:网站上有关于AI Agent的教程,如“人工智能入门教学——AI代理(AI Agent)”等,这些教程详细介绍了AI Agent的基本概念、工作原理和实现方法。
如“【AI Agent教程】各种Agent开发框架都是如何实现ReAct思想的?深入源码学习一下”,详细介绍了ReAct思想在AI Agent中的应用。
LangChain、AutoGPT和MetaGPT:这些框架是AI Agent开发的重要工具,通过学习和实践这些框架,可以更好地理解AI Agent的实现原理。
例子:HyperWrite是一个人工智能写作助手的例子,它可以帮助用户改善沟通和写作。个人可以通过研究HyperWrite的实现原理和技术细节来了解如何构建一个类似的AI Agent。
4. 实战项目
《大模型应用开发——动手做 AI Agent》中的项目:这本书中的7个实战项目覆盖了Agent开发的多个方面,可以在实际动手中学习和应用AI Agent技术。

如何学习ai agent?-2.jpg

<a data-draft-node="block" data-draft-type="mcn-link-card" data-mcn-id="1788998924788457475">5. 论坛和社区
AI论坛和社区:如AI China、机器之心等,这些论坛和社区聚集了大量的AI爱好者和专家,可以通过参与讨论和分享经验来学习AI Agent。
六、适合初学者的AI Agent项目

初学者可以从简单的项目开始,逐步增加难度,并在实践中学习和理解AI Agent的工作原理。参与开源项目、阅读文档和教程、在社区中提问和分享经验也是学习过程中的重要部分。
1. 基于规则的AI Agent
游戏AI:例如,创建一个简单的井字游戏(Tic-Tac-Toe)AI,AI根据一组预定义的规则来决定下一步。这是一个很好的入门项目,因为它不需要复杂的机器学习知识。
2. 基于机器学习的AI Agent
线性回归模型:使用线性回归来预测房价或股票价格。这个项目可以帮助理解基本的机器学习概念,如特征工程、模型训练和评估。
手写数字识别:使用TensorFlow或PyTorch实现一个简单的神经网络,来识别MNIST数据集中的手写数字。这是深度学习的经典入门项目。
3. 基于深度学习的AI Agent
图像分类:使用卷积神经网络(CNN)来分类CIFAR-10数据集中的图像。这个项目可以帮助学习CNN的基本结构和如何在图像数据上应用它们。
情感分析:使用循环神经网络(RNN)或长短时记忆网络(LSTM)来分析电影评论的情感。这个项目可以帮助理解序列数据的处理和文本分析。
4. 强化学习AI Agent
OpenAI Gym环境:使用OpenAI Gym中的简单环境(如CartPole)来训练一个强化学习Agent。这个项目可以帮助理解强化学习的基本概念,如策略、奖励和状态。
自主导航:使用深度强化学习(如Deep Q-Network, DQN)来训练一个自主导航的Agent。例如,在模拟环境中找到路径。这个项目可以帮助了解更高级的强化学习技术。
5. 参与开源项目
TensorFlow Agents:TensorFlow Agents是一个开源项目,它提供了与TensorFlow集成的强化学习工具。初学者可以阅读文档,了解如何使用这些工具来构建和训练自己的Agent。
OpenAI Baselines:OpenAI Baselines是强化学习算法的高质量实现集合。初学者可以研究这些代码库来学习最佳实践和算法细节。

paul3105 LV

发表于 5 天前

可以先学习AI Agent相关理论,再结合应用和实践去理解。下面我从AI Agent的基本概念、原理、组成、应用、实现方法等方面来详细介绍~
一、理论篇

AI agent是什么?

AI agent(人工智能代理)是指能够感知环境、做出决策并采取行动以实现特定目标的智能系统。更先进的系统还可以随着时间的推移不断学习并更新行为,不断尝试解决问题的新方法,直到实现目标。
举个例子,自动驾驶汽车就是一种人工智能代理:自动驾驶汽车通过多种传感器感知周围环境,包括其他车辆、行人、交通信号等,并能够根据感知到的信息进行避开障碍物、遵守交通规则等实时决策,最终通过控制系统执行驾驶操作,如加速、减速、转向等。
与GPT 这类“你问我答”的聊天机器人不同,AI agent不需要不断发送带有新指令的提示。一旦我们给 AI agent一个目标来触发它们的行为,它们就会运行。它将使用其处理器来考虑问题,找到解决问题的最佳方法,然后采取行动。
人工智能代理比传统计算机程序更灵活、更通用,它们能够理解并应对环境:它们不需要依赖固定的编程规则来做出决策,因此它们非常适合处理复杂、不可预测的任务。
AI agent由什么组成?

主要包含传感器、执行器、处理器和存储器
传感器:让人工智能代理能够感知周围环境,从而收集感知信息(来自世界的输入:图像、声音、等)。这些传感器可以是摄像头、麦克风或天线等。对于软件类型的人工智能代理来说,它可以是网络搜索功能或阅读PDF文件的工具。
执行器:帮助人工智能代理在现实世界中行动。例如轮子、机械臂或在计算机中创建文件的工具。
处理器、控制系统和决策机制:这三者是代理的“大脑”。它们具有相似的功能,但可能并不都存在于 AI 代理系统中。它们处理来自传感器的信息,集思广益,制定最佳行动方案,并向执行器发出命令。
学习和知识库系统:学习系统和知识库用于存储帮助 AI 代理完成任务的数据;例如,事实或过去的看法、遇到的困难和找到的解决方案的数据库。
AI agent的组成取决于其具体执行的任务,不一定都囊括上述四个组件。例如,智能恒温器可能没有学习系统,只有基本的传感器、执行器和简单的控制系统。自动驾驶汽车则包含上述所有组件:传感器来观察道路,执行器来移动,决策系统来改变车道,以及一个学习系统来记住历史驾驶数据。
大语言模型代理(LLM agent)理论基础

LLM agent指的是大语言模型代理,是人工智能代理的一种。
它由规划(Plan)、工具(Tools)、代理核心(LLM)、存储(Memory)四个部分构成。

如何学习ai agent?-1.jpg

规划是指代理分析用户查询、收集相关信息并制定行动策略以提供最佳建议或解决方案的系统过程。
工具是指代理可以利用来执行特定任务或增强其功能的外部资源、服务或 API。这些工具充当补充组件,将 LLM 代理的功能扩展到其固有的语言生成功能之外。工具还可以包括数据库、知识库和外部模型。
代理核心是LLM代理的基础组件,是一个大语言模型。它也是我们定义代理的目标、使用的工具和相关记忆的地方。
如果你对大语言模型感兴趣,想进一步了解AI Agent和大语言模型的基础、利用AI工具跟紧时代前沿,提升个人生产力和个人收入,推荐体验这门知乎知学堂推出的2节免费的「AI大模型公开课」。课程特邀AI技术大佬为我们讲解大模型的基础,特别是课程中涉及到大模型训练方法和定制化应用的技术细节,能帮助我们更好的理解LLM代理的核心组件,可以重点听一下:
这门视频课程目前是0元,不知道什么时候会开始付费,不要错过啦!
记忆是单个用户或单个任务的上下文和记录细节,可以分为短期记忆和长期记忆。短期记忆充当代理当前行为和想法的动态存储库,类似于其“思路”。它允许代理保持对正在进行的交互的上下文理解,从而实现连贯的通信。长期记忆则包括对话历史记录,保存从过去交流中收集到的宝贵信息;这种积累的知识库帮助代理借鉴过去的经验来丰富其与用户的互动。
Github上的这个列表也搜集了一些AI agent的<a href="http://link.zhihu.com/?target=https%3A//github.com/lafmdp/Awesome-Papers-Autonomous-Agent" class=" wrap external" target="_blank" rel="nofollow noreferrer">相关论文,感兴趣的朋友可以去参考看看。
二、应用篇

AI agent有哪些应用?

第一位人工智能软件工程师Devin
Devin 可以起草行动计划,了解它需要做什么,确保它拥有完成任务所需的所有资源,然后开始写代码。
例如,Devin 可以学习如何使用不熟悉的技术,在阅读了一篇博客文章后,Devin可以 在 Modal 上运行 ControlNet,为 Sara 制作带有隐藏信息的图像;Devin 可以端到端地构建和部署应用程序,比如它制作了一个模拟生命游戏的交互式网站,它逐步添加用户请求的功能,然后将应用程序部署到 Netlify。

如何学习ai agent?-2.jpg

这意味着软件工程师失业吗?并不,因为 Devin 的效率只有13.86%。但是,有了这样的助手,经验丰富的程序员可以节省大量时间,非技术人员也可以从零开始开发软件。
VisualGPT
这个工具将ChatGPT 与一系列可视化基础模型链接起来,可以进行对话期间图像的交换。

如何学习ai agent?-3.jpg

拥有 25 个 AI 代理的虚拟城镇
斯坦福大学和谷歌使用 OpenAI 的 API 来创建人工智能代理并观察他们的生活方式。
为了支持该实验,该团队创建了一个用于存储记忆的平台,并为每个代理提供目标的基本提示。之后,AI 代理就可以分享信息,记住彼此关系的细节,甚至可以策划情人节派对。

如何学习ai agent?-4.jpg

如何实现LLM agent?

数据收集:收集与LLM 代理将执行的任务相关的数据集。
预处理数据:清理并预处理收集的数据,消除噪音、格式不一致和不相关信息。标记文本数据并准备进行训练。
训练和语言模型:使用机器学习技术,特别是自然语言处理方法,在预处理数据集上训练 LLM。使用深度学习架构(例如 transformer、循环神经网络或卷积神经网络 )训练模型。
微调:微调预训练语言模型,使其适应与 LLM 代理相关的特定任务或领域。微调涉及在特定任务的数据上重新训练模型,同时保留预训练期间获得的知识。
组件集成:将核心 LLM 与其他组件(如内存模块、规划模块和工具 API)集成。设计架构以有效地促进这些组件之间的通信和交互。
部署:在生产环境中部署 LLM 代理或将其集成到所需的平台或应用程序中。
学习和改进:不断使用新数据更新和重新训练 LLM 代理,以提高其性能。监控代理的交互并收集反馈,确定需要优化和增强的领域。
上述是一般的实现步骤,而我们实际要开发的时候只需要站在巨人的肩膀上就好了~
可以参考Github上LLM agent的高星项目,也可以学习Function calling、Assistant API、ChatGLM/LLama等基础模型、Langchain的使用方法。如果嫌自己摸索太麻烦,推荐参与上面提到的AI大模型免费公开课快速学习~
人工智能不是未来,而是现在。通过理论结合实践,让我们更好的掌握人工智能代理,拥抱AI时代!

参考文献:
https://zapier.com/blog/ai-agent/
https://www.truefoundry.com/blog/llm-agents
VisualGPT
拥有 25 个 AI 代理的虚拟城镇
https://ai.plainenglish.io/autonomous-ai-agents-agi-cognition-devin-54f12da594c7
<hr/>我是等壹,上海交大工学硕士,多年机器学习研究,现互联网码农一枚。
既是技术极客,也是文艺青年,希望让人生尽兴、有趣~
我会定期分享人工智能与大数据技术,学习技巧,职场等内容,欢迎关注!
为什么我还是无法理解transformer?程序员如何利用周末提高自己?程序员,上班没事做该怎么办?

absct LV

发表于 5 天前

题主了提到“比较基础的项目和教程”,暂且认为是刚刚接触Agents的阶段。如果是从这个阶段开始,那么确实可以系统规划一下学习路线。在此大致写一写我之前的一些学习方式,以及未来的学习规划,也是帮助我自己梳理一下目前的状况。学习不走弯路是不可能的,但可供参考:
1、首先要熟悉LLM的调性,尤其是GPT-3.5,GPT-4这种通用LLM领头羊的调性。要熟悉LLM的特点,缺点和优点。对于LLM Agents来讲,更重要的或许是多去实际使用相关的LLM,多在不同的任务上使用它,获得一种比较实践性的经验。另外一种熟悉调性的方法就是看指标,看原理。如果是针对LLM Agents,这个不用特别系统地学,了解一下Text embedding和Decoder-only等等模型的原理就行。
2、再就是实践一下。刚开始我觉得不用上什么框架,可以直接用原生方式做一下项目原型。因为当前本来就是百花齐放的场面,没有一个大一统的东西。举个例子,实现一个基础的RAG功能,只需要用一个JSON文件维护一下知识库,以嵌入向量为键,知识内容为值即可。RAG又可以被上层封装为记忆功能,对话接口等等。所以入门时不一定非得上框架。反而,通过自己实践一下相关的数据管线,API调用,工具管理等等,可能以后上手各大框架都还蛮快,还懂原理。
当然,可以学LangChain,用LangChain,但也有一些批评LangChain的声音,企业生产也不一定用这玩意,具体要看项目需求和团队偏好。
偶尔看两三篇优秀的相关论文或者论文搬运,综述也可以。一是可以不用埋头苦干代码,二是通过阅读梳理一下知识体系,三是了解一下新奇的一些想法。
3、最后就是紧追前沿。确定一个细分方向,比如游戏+AI,然后真正投入到优质开源项目,或是企业相关实习当中去。不知道题主的项目具体是什么,但是优质开源项目或企业实习肯定是有帮助的。如果不方便,也可也读一读相关的优秀源码,应该也有用处。
项目过程当中有需求,面向需求去学习就好了。以上是对题主的一点建议,也是我的计划。
<hr/>同时欢迎来看我之前的笔记,私以为有一定的系统性:
hadiii:写在跨年之前:聊聊LLM Agents的现状,问题与未来hadiii:《动手学深度学习PyTorch版》:全要点笔记

您需要登录后才可以回帖 登录 | 立即注册