<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>Agent on 有趣的AI</title>
    <link>http://www.wfcoding.com/tags/agent/</link>
    <description>Recent content in Agent on 有趣的AI</description>
    <generator>Hugo -- 0.164.0</generator>
    <language>zh-CN</language>
    <copyright>火云</copyright>
    <lastBuildDate>Thu, 27 Feb 2025 00:00:00 +0000</lastBuildDate>
    <atom:link href="http://www.wfcoding.com/tags/agent/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>本地大模型编程实战(27)初探langgraph的流式输出</title>
      <link>http://www.wfcoding.com/articles/practice/0327/</link>
      <pubDate>Thu, 27 Feb 2025 00:00:00 +0000</pubDate>
      <guid>http://www.wfcoding.com/articles/practice/0327/</guid>
      <description>&lt;p&gt;对于 &lt;code&gt;LLM(大语言模型)&lt;/code&gt;，流式传输已成为一种越来越受欢迎的功能。其理念是在 &lt;code&gt;LLM&lt;/code&gt; 生成令牌时就快速返回，而不是等待创建完整响应后再返回全部内容。&lt;/p&gt;
&lt;p&gt;在简单的场景中，流式传输实际上非常容易实现，但当涉及到智能体之类的应用时，它会变得复杂，这些智能体有自己的运行逻辑，可能会阻止我们尝试进行流式传输。&lt;/p&gt;
&lt;p&gt;本文将探讨 &lt;code&gt;langchain&lt;/code&gt; 的流式输出，后面将实现&lt;strong&gt;智能体最终结果的流式输出&lt;/strong&gt;。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;本次演练将全部使用 &lt;code&gt;qwen2.5:7b&lt;/code&gt; 开源大模型。&lt;/p&gt;
&lt;/blockquote&gt;</description>
    </item>
    <item>
      <title>本地大模型编程实战(20)用langgraph和智能体实现RAG(Retrieval Augmented Generation,检索增强生成)(4)</title>
      <link>http://www.wfcoding.com/articles/practice/0320/</link>
      <pubDate>Mon, 17 Feb 2025 00:00:00 +0000</pubDate>
      <guid>http://www.wfcoding.com/articles/practice/0320/</guid>
      <description>&lt;p&gt;上一篇文章我们演练了一个 &lt;a href=&#34;http://wfcoding.com/articles/practice/0319/&#34;&gt;用 &lt;code&gt;langgraph&lt;/code&gt; 实现的 &lt;code&gt;RAG(Retrieval Augmented Generation,检索增强生成)&lt;/code&gt; 系统&lt;/a&gt;。本文将要在此基础上，增加自动记录聊天历史的功能，另外，我们还将使用一个 &lt;code&gt;Agent(智能体)&lt;/code&gt; 来实现几乎同样的功能，我们来一起体会一下用 &lt;code&gt;langgraph&lt;/code&gt; 和 &lt;code&gt;Agent(智能体)&lt;/code&gt; 实现 &lt;code&gt;RAG系统&lt;/code&gt; 的区别。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;本次构建的 &lt;code&gt;LangGraph&lt;/code&gt; 链结构如下图：
&lt;img loading=&#34;lazy&#34; src=&#34;image/graph.png&#34; alt=&#34;Langgraph RAG 链&#34;  /&gt;
&lt;br&gt;
如上图，query_or_respond 是一个条件节点，它通过能否根据用户的问题生成 工具调用（tool_calls） ，来判断是否需要检索矢量知识库：如果 工具调用 为空，则直接由大语言模型处理；否则通过 工具调用 调用 tools 进行检索。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;实现类似功能的智能体结构如下图：
&lt;img loading=&#34;lazy&#34; src=&#34;image/agent.png&#34; alt=&#34;智能体结构图&#34;  /&gt;
&lt;br&gt;
我们可以直观的发现：&lt;strong&gt;用 &lt;code&gt;Agent(智能体)&lt;/code&gt; 实现更加简单&lt;/strong&gt;。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;使用 &lt;code&gt;qwen2.5&lt;/code&gt; 、 &lt;code&gt;deepseek&lt;/code&gt; 以及 &lt;code&gt;llama3.1&lt;/code&gt; 做实验，用 &lt;code&gt;shaw/dmeta-embedding-zh&lt;/code&gt; 做中文嵌入和检索。&lt;/p&gt;
&lt;/blockquote&gt;</description>
    </item>
    <item>
      <title>本地大模型编程实战(17)用langchain和智能体实现RAG(Retrieval Augmented Generation,检索增强生成)(1)</title>
      <link>http://www.wfcoding.com/articles/practice/0317/</link>
      <pubDate>Fri, 14 Feb 2025 00:00:00 +0000</pubDate>
      <guid>http://www.wfcoding.com/articles/practice/0317/</guid>
      <description>&lt;p&gt;本文将用实际代码演练一个简单的 &lt;code&gt;RAG(Retrieval Augmented Generation,检索增强生成)&lt;/code&gt; 系统。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;使用 &lt;code&gt;qwen2.5&lt;/code&gt; 、 &lt;code&gt;deepseek-r1&lt;/code&gt; 以及 &lt;code&gt;llama3.1&lt;/code&gt; 做实验，用 &lt;code&gt;shaw/dmeta-embedding-zh&lt;/code&gt; 做中文嵌入和检索。&lt;/p&gt;
&lt;/blockquote&gt;</description>
    </item>
    <item>
      <title>本地大模型编程实战(16)在智能体中自动记录消息历史(3)</title>
      <link>http://www.wfcoding.com/articles/practice/0316/</link>
      <pubDate>Thu, 13 Feb 2025 00:00:00 +0000</pubDate>
      <guid>http://www.wfcoding.com/articles/practice/0316/</guid>
      <description>&lt;p&gt;本文将基于上一篇文章完善 &lt;code&gt;Agent(智能体)&lt;/code&gt; ，主要完善的功能有：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;跟踪 &lt;code&gt;Agent(智能体)&lt;/code&gt; 的执行过程&lt;/li&gt;
&lt;li&gt;记录消息历史&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;此次我们使用 &lt;code&gt;qwen2.5&lt;/code&gt; 做 &lt;code&gt;LLM（大语言模型）&lt;/code&gt; 驱动 &lt;code&gt;Agent(智能体)&lt;/code&gt; ，使用 &lt;code&gt;shaw/dmeta-embedding-zh&lt;/code&gt; 做中文嵌入和检索。&lt;/p&gt;
&lt;/blockquote&gt;</description>
    </item>
    <item>
      <title>本地大模型编程实战(15)可以调用两个工具的智能体Agent(2)</title>
      <link>http://www.wfcoding.com/articles/practice/0315/</link>
      <pubDate>Wed, 12 Feb 2025 00:00:00 +0000</pubDate>
      <guid>http://www.wfcoding.com/articles/practice/0315/</guid>
      <description>&lt;p&gt;在上一篇文章中，我们实践了如何使用 &lt;code&gt;langchain&lt;/code&gt; 创建一个简单的 &lt;code&gt;ReAct Agent(智能体)&lt;/code&gt;，这次我们升级一下玩法：实现一个可以调用两个 工具 的智能体。&lt;br&gt;
其中一个工具用户查询天气预报，另外一个工具用来查询知识库，实际上该工具实现了 &lt;code&gt;RAG(Retrieval Augmented Generation,检索增强生成)&lt;/code&gt;。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;此次我们使用 &lt;code&gt;qwen2.5&lt;/code&gt;, &lt;code&gt;llama3.1&lt;/code&gt; 和 &lt;code&gt;deepseek&lt;/code&gt; 。感觉在处理中文方面，感觉 &lt;strong&gt;&lt;code&gt;qwen2.5&lt;/code&gt;&lt;/strong&gt; 比 &lt;code&gt;llama3.1&lt;/code&gt; 要好一些。&lt;/p&gt;
&lt;/blockquote&gt;</description>
    </item>
    <item>
      <title>本地大模型编程实战(14)初探智能体Agent(1)</title>
      <link>http://www.wfcoding.com/articles/practice/0314/</link>
      <pubDate>Tue, 11 Feb 2025 00:00:00 +0000</pubDate>
      <guid>http://www.wfcoding.com/articles/practice/0314/</guid>
      <description>&lt;p&gt;在前面的文章中，我们了解了 &lt;code&gt;LLM(大语言模型)&lt;/code&gt; 如何使用 &lt;code&gt;tool(工具)&lt;/code&gt; ，现在我们开始进一步，初探 &lt;code&gt;Agent(智能体)&lt;/code&gt; 的玩法。&lt;br&gt;
其中的 &lt;code&gt;tool(工具)&lt;/code&gt; 用于从矢量数据库中查询信息，这种方式在 &lt;code&gt;RAG(Retrieval Augmented Generation,检索增强生成)&lt;/code&gt; 也很常用。在这种场景中，能否准确的查询出有用信息很关键，为此我们本次将使用多种大模型进行对比演练。包括：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;多语言通用 &lt;code&gt;LLM&lt;/code&gt;: &lt;code&gt;llma3.1&lt;/code&gt; , &lt;code&gt;deepseek-r1&lt;/code&gt; , &lt;code&gt;qwen2.5&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;专用于嵌入检索的大模型： &lt;code&gt;shaw/dmeta-embedding-zh&lt;/code&gt; , &lt;code&gt;milkey/m3e&lt;/code&gt; , &lt;code&gt;mxbai-embed-large&lt;/code&gt; , &lt;code&gt;nomic-embed-text&lt;/code&gt; , &lt;code&gt;all-minilm:33m&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;了解-agent智能体&#34;&gt;了解 &lt;code&gt;Agent(智能体)&lt;/code&gt;&lt;/h2&gt;
&lt;h3 id=&#34;tool工具-与-agent智能体-的区别&#34;&gt;&lt;code&gt;tool(工具)&lt;/code&gt; 与 &lt;code&gt;Agent(智能体)&lt;/code&gt; 的区别&lt;/h3&gt;
&lt;p&gt;工具往往用于大语言模型调用其它功能，比如：搜索、数据库查询、计算等；&lt;code&gt;Agent(智能体)&lt;/code&gt; 是一个可以使用 &lt;code&gt;LLM&lt;/code&gt; 处理复杂任务的智能体；它通常会决定：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;何时调用 &lt;code&gt;tool(工具)&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;选择哪个工具&lt;/li&gt;
&lt;li&gt;处理工具返回的结果&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;reactreasoning--acting&#34;&gt;&lt;code&gt;ReAct（Reasoning + Acting）&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;&lt;code&gt;ReAct（Reasoning + Acting）&lt;/code&gt;是一种用于 &lt;code&gt;Agent(智能体)&lt;/code&gt; 的决策方式，它结合了&lt;strong&gt;推理（Reasoning）和行动（Acting）&lt;/strong&gt;，让智能体能更灵活地思考和执行任务。&lt;br&gt;
简单来说，&lt;code&gt;ReAct&lt;/code&gt; 让智能体在做事情之前，先&lt;strong&gt;思考一下&lt;/strong&gt;，然后再决定下一步行动，而不是盲目执行。&lt;/p&gt;
&lt;h3 id=&#34;react-的核心思路&#34;&gt;&lt;code&gt;ReAct&lt;/code&gt; 的核心思路&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;观察环境（Observations）&lt;/strong&gt;：获取当前任务或问题的信息。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;推理（Reasoning）&lt;/strong&gt;：分析当前信息，思考如何解决问题。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;执行行动（Acting）&lt;/strong&gt;：基于推理结果，采取具体的行动（比如调用工具、查询数据库、与用户交互等）。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;循环执行&lt;/strong&gt;：智能体会不断重复&lt;strong&gt;观察 → 推理 → 行动&lt;/strong&gt;的过程，直到任务完成。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;关于 &lt;code&gt;ReAct&lt;/code&gt; 的更多内容，请参阅：&lt;a href=&#34;https://klu.ai/glossary/react-agent-model&#34;&gt;ReACT Agent Model&lt;/a&gt;&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
