<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>LangChain on FF的实验笔记</title>
    <link>http://blog.memcd.com/tags/langchain/</link>
    <description>Recent content in LangChain on FF的实验笔记</description>
    <generator>Hugo</generator>
    <language>en-us</language>
    <copyright>(c) 1998 - 2026</copyright>
    <lastBuildDate>Mon, 08 Dec 2025 19:46:15 +0800</lastBuildDate>
    <atom:link href="http://blog.memcd.com/tags/langchain/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>LangChain：使用智谱glm-4.6在线大模型调用本地函数实现输出</title>
      <link>http://blog.memcd.com/posts/ai/2025-1208-langchain-glm-01/</link>
      <pubDate>Mon, 08 Dec 2025 19:46:15 +0800</pubDate>
      <guid>http://blog.memcd.com/posts/ai/2025-1208-langchain-glm-01/</guid>
      <description>&lt;h1 id=&#34;langchain使用智谱glm-46在线大模型调用本地函数实现输出&#34;&gt;LangChain：使用智谱glm-4.6在线大模型调用本地函数实现输出&lt;/h1&gt;&#xA;&lt;p&gt;2025年10月20日，LangChain终于发布了1.0版本，下面来整体实验一下。&lt;/p&gt;&#xA;&lt;h2 id=&#34;安装环境&#34;&gt;安装环境&lt;/h2&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f0f0f0;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;pip install langgraph&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;pip install langchain langchain-core langchain-ollama&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;pip install langchain-community&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;pip install pyjwt&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;pip install --upgrade langchain langchain-core langchain-community&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;pip list | grep langchain&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;可以看到版本号从0.3.x升级到了1.0：&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f0f0f0;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-js&#34; data-lang=&#34;js&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;langchain                &lt;span style=&#34;color:#40a070&#34;&gt;1.0&lt;/span&gt;.&lt;span style=&#34;color:#40a070&#34;&gt;2&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;langchain&lt;span style=&#34;color:#666&#34;&gt;-&lt;/span&gt;classic        &lt;span style=&#34;color:#40a070&#34;&gt;1.0&lt;/span&gt;.&lt;span style=&#34;color:#40a070&#34;&gt;0&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;langchain&lt;span style=&#34;color:#666&#34;&gt;-&lt;/span&gt;community      &lt;span style=&#34;color:#40a070&#34;&gt;0.4&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;langchain&lt;span style=&#34;color:#666&#34;&gt;-&lt;/span&gt;core           &lt;span style=&#34;color:#40a070&#34;&gt;1.0&lt;/span&gt;.&lt;span style=&#34;color:#40a070&#34;&gt;0&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;langchain&lt;span style=&#34;color:#666&#34;&gt;-&lt;/span&gt;ollama         &lt;span style=&#34;color:#40a070&#34;&gt;1.0&lt;/span&gt;.&lt;span style=&#34;color:#40a070&#34;&gt;0&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;langchain&lt;span style=&#34;color:#666&#34;&gt;-&lt;/span&gt;text&lt;span style=&#34;color:#666&#34;&gt;-&lt;/span&gt;splitters &lt;span style=&#34;color:#40a070&#34;&gt;1.0&lt;/span&gt;.&lt;span style=&#34;color:#40a070&#34;&gt;0&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;实例运行&#34;&gt;实例运行&lt;/h2&gt;&#xA;&lt;p&gt;下面按照官方文档：&#xA;&lt;a href=&#34;https://docs.langchain.com/oss/python/langchain/quickstart&#34;&gt;https://docs.langchain.com/oss/python/langchain/quickstart&lt;/a&gt;&#xA;测试下运行效果。智谱新用户注册可以送200万Token，正好用来做实验。&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f0f0f0;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#007020;font-weight:bold&#34;&gt;from&lt;/span&gt; &lt;span style=&#34;color:#0e84b5;font-weight:bold&#34;&gt;langchain.agents&lt;/span&gt; &lt;span style=&#34;color:#007020;font-weight:bold&#34;&gt;import&lt;/span&gt; create_agent&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#007020;font-weight:bold&#34;&gt;from&lt;/span&gt; &lt;span style=&#34;color:#0e84b5;font-weight:bold&#34;&gt;langchain_community.chat_models&lt;/span&gt; &lt;span style=&#34;color:#007020;font-weight:bold&#34;&gt;import&lt;/span&gt; ChatZhipuAI&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;SYSTEM_PROMPT &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#4070a0&#34;&gt;&amp;#34;&amp;#34;&amp;#34;You are an expert weather forecaster, who speaks in puns.&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#4070a0&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#4070a0&#34;&gt;You have access to two tools:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#4070a0&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#4070a0&#34;&gt;- get_weather_for_location: use this to get the weather for a specific location&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#4070a0&#34;&gt;- get_user_location: use this to get the user&amp;#39;s location&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#4070a0&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#4070a0&#34;&gt;If a user asks you for the weather, make sure you know the location. If you can tell from the question that they mean wherever they are, use the get_user_location tool to find their location.&amp;#34;&amp;#34;&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#555;font-weight:bold&#34;&gt;@tool&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#007020;font-weight:bold&#34;&gt;def&lt;/span&gt; &lt;span style=&#34;color:#06287e&#34;&gt;get_weather_for_location&lt;/span&gt;(city: &lt;span style=&#34;color:#007020&#34;&gt;str&lt;/span&gt;) &lt;span style=&#34;color:#666&#34;&gt;-&amp;gt;&lt;/span&gt; &lt;span style=&#34;color:#007020&#34;&gt;str&lt;/span&gt;:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#4070a0&#34;&gt;&amp;#34;&amp;#34;&amp;#34;Get weather for a given city.&amp;#34;&amp;#34;&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#007020;font-weight:bold&#34;&gt;return&lt;/span&gt; &lt;span style=&#34;color:#4070a0&#34;&gt;f&lt;/span&gt;&lt;span style=&#34;color:#4070a0&#34;&gt;&amp;#34;It&amp;#39;s always sunny in &lt;/span&gt;&lt;span style=&#34;color:#70a0d0&#34;&gt;{&lt;/span&gt;city&lt;span style=&#34;color:#70a0d0&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#4070a0&#34;&gt;!&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#555;font-weight:bold&#34;&gt;@tool&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#007020;font-weight:bold&#34;&gt;def&lt;/span&gt; &lt;span style=&#34;color:#06287e&#34;&gt;get_user_location&lt;/span&gt;(runtime: ToolRuntime[Context]) &lt;span style=&#34;color:#666&#34;&gt;-&amp;gt;&lt;/span&gt; &lt;span style=&#34;color:#007020&#34;&gt;str&lt;/span&gt;:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#4070a0&#34;&gt;&amp;#34;&amp;#34;&amp;#34;Retrieve user information based on user ID.&amp;#34;&amp;#34;&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    user_id &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; runtime&lt;span style=&#34;color:#666&#34;&gt;.&lt;/span&gt;context&lt;span style=&#34;color:#666&#34;&gt;.&lt;/span&gt;user_id&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#007020;font-weight:bold&#34;&gt;return&lt;/span&gt; &lt;span style=&#34;color:#4070a0&#34;&gt;&amp;#34;Florida&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#007020;font-weight:bold&#34;&gt;if&lt;/span&gt; user_id &lt;span style=&#34;color:#666&#34;&gt;==&lt;/span&gt; &lt;span style=&#34;color:#4070a0&#34;&gt;&amp;#34;1&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#007020;font-weight:bold&#34;&gt;else&lt;/span&gt; &lt;span style=&#34;color:#4070a0&#34;&gt;&amp;#34;SF&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#60a0b0;font-style:italic&#34;&gt;# Create ZhipuAI model instance&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;model &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; ChatZhipuAI(model&lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#4070a0&#34;&gt;&amp;#34;glm-4&amp;#34;&lt;/span&gt;, api_key&lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#4070a0&#34;&gt;&amp;#34;&amp;lt;your api key&amp;gt;&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;agent &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; create_agent(&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    model&lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt;model,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    tools&lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt;[get_weather],&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    system_prompt&lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt;SYSTEM_PROMPT,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;response &lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt; agent&lt;span style=&#34;color:#666&#34;&gt;.&lt;/span&gt;invoke(&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    {&lt;span style=&#34;color:#4070a0&#34;&gt;&amp;#34;messages&amp;#34;&lt;/span&gt;: [{&lt;span style=&#34;color:#4070a0&#34;&gt;&amp;#34;role&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#4070a0&#34;&gt;&amp;#34;user&amp;#34;&lt;/span&gt;, &lt;span style=&#34;color:#4070a0&#34;&gt;&amp;#34;content&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#4070a0&#34;&gt;&amp;#34;what is the weather in sf&amp;#34;&lt;/span&gt;}]}&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#007020&#34;&gt;print&lt;/span&gt;(&lt;span style=&#34;color:#4070a0&#34;&gt;&amp;#34;Model response:&amp;#34;&lt;/span&gt;, response)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;执行代码，可以看到长长的json输出，节选关键部分如下：&lt;/p&gt;</description>
    </item>
    <item>
      <title>LangChain: LangChain介绍</title>
      <link>http://blog.memcd.com/posts/ai/2025-1020-langchain-introduction/</link>
      <pubDate>Mon, 20 Oct 2025 23:41:38 +0800</pubDate>
      <guid>http://blog.memcd.com/posts/ai/2025-1020-langchain-introduction/</guid>
      <description>&lt;h1 id=&#34;langchain介绍&#34;&gt;LangChain介绍&lt;/h1&gt;&#xA;&lt;p&gt;LangChain、LangGraph都是LangChain公司的Agent代理产品，公司官网地址：https://www.langchain.com/&#xA;下面根据官网的介绍和文档，实验一下LangChain技术体系，首先看下概念。&lt;/p&gt;&#xA;&lt;h2 id=&#34;什么是langchain&#34;&gt;什么是LangChain&lt;/h2&gt;&#xA;&lt;p&gt;LangChain 是一个开源框架，具有预构建的代理架构和适用于任何模型或工具的集成，因此您可以构建随着生态系统发展而快速适应的代理。&lt;/p&gt;&#xA;&lt;h2 id=&#34;企业都用langchain做什么&#34;&gt;企业都用LangChain做什么？&lt;/h2&gt;&#xA;&lt;p&gt;这是LangChain官方的一个调查数据：&lt;/p&gt;&#xA;&lt;pre class=&#34;mermaid&#34;&gt;&#xA;  ---&#xA;config:&#xA;    xyChart:&#xA;        showDataLabel: true&#xA;    themeVariables:&#xA;        plotColorPalette: &amp;#39;#000000, #0000FF, #00FF00, #FF0000, #FF0000, #FF0000, #FF0000&amp;#39;&#xA;---&#xA;xychart&#xA;    title &amp;#34;代理最适合执行哪些任务&amp;#34;&#xA;    x-axis [A, B, C, D, E, F, G]&#xA;    y-axis &amp;#34;占比 (%)&amp;#34; 0 --&amp;gt; 60&#xA;    bar [58.2, 53.5, 45.8, 35.5, 33.8, 19.6, 2.9]&#xA;&lt;/pre&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;A: 研究与总结&lt;/li&gt;&#xA;&lt;li&gt;B: 个人助理 / 生产力任务&lt;/li&gt;&#xA;&lt;li&gt;C: 客户服务&lt;/li&gt;&#xA;&lt;li&gt;D: 代码生成&lt;/li&gt;&#xA;&lt;li&gt;E: 数据转换和丰富&lt;/li&gt;&#xA;&lt;li&gt;F: 互动游戏、讲故事或陪伴&lt;/li&gt;&#xA;&lt;li&gt;G: 其他&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;附件&#34;&gt;附件&lt;/h2&gt;&#xA;&lt;p&gt;LangChain团队的照片：&#xA;&lt;img src=&#34;https://cdn.prod.website-files.com/65b8cd72835ceeacd4449a53/68dcec9fe1fead6fc782eceb_2af460633e82454982017b4ff09bb360_Team%20photo.webp&#34; alt=&#34;&#34;&gt;&lt;/p&gt;&#xA;&lt;script src=&#34;https://cdnjs.cloudflare.com/ajax/libs/mermaid/11.10.0/mermaid.min.js&#34; integrity=&#34;sha512-K6kF9joFhakrUFd6H3b4JVp8rKz1F5tVHhPWbUQESnZhW/W5ztSzHPBfHq3p6NpmsXQjo6rCen2FqUl82TP6eg==&#34; crossorigin=&#34;anonymous&#34; referrerpolicy=&#34;no-referrer&#34;&gt;&lt;/script&gt;</description>
    </item>
  </channel>
</rss>
