<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Agent on FF的实验笔记</title>
    <link>http://blog.memcd.com/tags/agent/</link>
    <description>Recent content in Agent on FF的实验笔记</description>
    <generator>Hugo</generator>
    <language>en-us</language>
    <copyright>(c) 1998 - 2026</copyright>
    <lastBuildDate>Wed, 06 May 2026 10:54:58 +0800</lastBuildDate>
    <atom:link href="http://blog.memcd.com/tags/agent/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Hermes：微信实时监控菜地，偷菜的人慌了</title>
      <link>http://blog.memcd.com/posts/ai/2026-0506-pi-weixin-camera/</link>
      <pubDate>Wed, 06 May 2026 10:54:58 +0800</pubDate>
      <guid>http://blog.memcd.com/posts/ai/2026-0506-pi-weixin-camera/</guid>
      <description>&lt;!-- &#xA;候选标题&#xA;Hermes：使用微信监控菜园偷菜&#xA;Hermes：微信实时监控菜地，偷菜的人慌了&#xA;Hermes：用微信实现菜园实时监控与偷菜告警&#xA;Hermes 项目：微信推送菜园监控，偷菜直接手机通知&#xA;用 Hermes + 微信做菜园防盗系统，IoT 监控战&#xA;Hermes：微信+IoT实时监控菜地，偷菜的人慌了&#xA;--&gt;&#xA;&lt;h1 id=&#34;hermes微信实时监控菜地偷菜的人慌了&#34;&gt;Hermes：微信实时监控菜地，偷菜的人慌了&lt;/h1&gt;&#xA;&lt;p&gt;我家的院子里种了点菜，黄瓜、丝瓜、西红柿，长得虽然经常奇形怪状，但还是经常被路过的人顺手薅走。于是想着，能不能让上一篇文章里&lt;a href=&#34;../2026-0427-raspberry-pi.md/&#34;&gt;那台AI化的树莓派&lt;/a&gt;派上点用场——挂个摄像头盯着菜园，再接一个微信机器人，随时给我汇报菜园的情况，还可以顺便用大模型分析一下有没有人在偷菜。&lt;/p&gt;&#xA;&lt;p&gt;整个方案的链路如下：&lt;/p&gt;&#xA;&lt;pre class=&#34;mermaid&#34;&gt;&#xA;  flowchart LR&#xA;    A[微信] --&amp;gt;|消息| B[Hermes Gateway]&#xA;    B --&amp;gt; C[Hermes Agent]&#xA;    C --&amp;gt;|garden-camera skill| D[rpicam-still]&#xA;    D --&amp;gt;|jpg| E[树莓派摄像头]&#xA;    C --&amp;gt;|vision 分析| F[LLM]&#xA;    F --&amp;gt; C&#xA;    C --&amp;gt;|图片+文字| B&#xA;    B --&amp;gt;|回复| A&#xA;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;最终效果：在微信里给机器人发一句&amp;quot;看看院子&amp;quot;，几秒钟后收到一张实时照片，外加AI对实时画面的分析汇报。&lt;/p&gt;&#xA;&lt;h2 id=&#34;hermes-是什么&#34;&gt;Hermes 是什么&lt;/h2&gt;&#xA;&lt;p&gt;简单来说，Hermes（众神的信使赫耳墨斯）是小龙虾OpenClaw的平替。&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://github.com/nousresearch/hermes-agent&#34;&gt;Hermes&lt;/a&gt; 是 Nous Research 出的一个开源 Agent 框架，名字取自希腊神话中的赫耳墨斯——奥林匹斯十二主神之一，宙斯与迈亚之子，司职商业、旅行、偷窃、畜牧、竞技、演说，也是众神的信使。他行动敏捷，常被描绘为头戴有翼金盔、脚穿带翼凉鞋、手持双蛇盘绕的节杖。罗马神话中对应的是墨丘利（Mercury）。&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;h2 id=&#34;安装-hermes&#34;&gt;安装 Hermes&lt;/h2&gt;&#xA;&lt;p&gt;Hermes 的安装很简单，一行命令：&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-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#60a0b0;font-style:italic&#34;&gt;# 默认安装到 $HOME/.hermes&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;# 也可以通过环境变量 HERMES_HOME 指定安装目录&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh | bash&#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;source&lt;/span&gt; ~/.bashrc    &lt;span style=&#34;color:#60a0b0;font-style:italic&#34;&gt;# 或者 source ~/.zshrc&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;hermes              &lt;span style=&#34;color:#60a0b0;font-style:italic&#34;&gt;# 启动！&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;如果想装到指定目录：&lt;/p&gt;</description>
    </item>
    <item>
      <title>在树莓派上部署全套AI工作环境</title>
      <link>http://blog.memcd.com/posts/ai/2026-0427-raspberry-pi/</link>
      <pubDate>Mon, 27 Apr 2026 18:26:35 +0800</pubDate>
      <guid>http://blog.memcd.com/posts/ai/2026-0427-raspberry-pi/</guid>
      <description>&lt;h1 id=&#34;在树莓派上部署全套ai工作环境&#34;&gt;在树莓派上部署全套AI工作环境&lt;/h1&gt;&#xA;&lt;p&gt;周末翻出来好久不用的树莓派3b，感觉这小设备正好适合跑一个隔离的小龙虾。于是决定把它的环境整个重做一遍，最后实验下来发现效果很好，最终成功部署了如下工具：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;opencode 1.14.24&lt;/li&gt;&#xA;&lt;li&gt;claude code 2.1.119&lt;/li&gt;&#xA;&lt;li&gt;ollama 0.21.3-rc0(deepseek-r1:1.5b)&lt;/li&gt;&#xA;&lt;li&gt;openspec 1.3.1&lt;/li&gt;&#xA;&lt;li&gt;OpenClaw v2026.4.23&lt;/li&gt;&#xA;&lt;li&gt;Hermes Agent v0.12.0 (2026.4.30)&lt;/li&gt;&#xA;&lt;li&gt;headscale v0.28.0&lt;/li&gt;&#xA;&lt;li&gt;yarn 1.22.22&lt;/li&gt;&#xA;&lt;li&gt;node v24.15.0&lt;/li&gt;&#xA;&lt;li&gt;Python 3.11.2&lt;/li&gt;&#xA;&lt;li&gt;go 1.26.2&lt;/li&gt;&#xA;&lt;li&gt;other&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;居然还可以本地跑一个deepseek-r1:1.5b的大模型，虽然1.5有点神经。&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;./2026-04-27_154627_622.png&#34; alt=&#34;&#34;&gt;&lt;/p&gt;&#xA;&lt;h2 id=&#34;操作系统&#34;&gt;操作系统&lt;/h2&gt;&#xA;&lt;p&gt;树莓派是通过TF卡启动，原来两张卡上放了两个操作系统，一个是Lakka游戏系统，可以把树莓派变成一个游戏机；一个是Raspberry Pi OS 10，上面我之前也装了全套开发环境，例如docker、vscode等，系统比较老了。&lt;/p&gt;&#xA;&lt;p&gt;从树莓派官网（https://www.raspberrypi.com/software/operating-systems/）下载Raspberry Pi OS 12 Bookworm 64-bit Lite作为更新的操作系统。&lt;/p&gt;&#xA;&lt;p&gt;Lite版本的系统没有图形界面，是一个纯终端系统，更节约系统资源，启动速度也快。&lt;/p&gt;&#xA;&lt;p&gt;如果需要使用桌面，可以使用Raspberry Pi OS (64-bit)系统镜像。&lt;/p&gt;&#xA;&lt;p&gt;下载后使用Raspberry Pi Imager软件将其写入TF卡即可启动树莓派。&lt;/p&gt;&#xA;&lt;p&gt;也可以使用balenaEtcher（MacOS）或者Rufus（Windows）进行镜像写入。&lt;/p&gt;&#xA;&lt;h2 id=&#34;基本系统环境搭建&#34;&gt;基本系统环境搭建&lt;/h2&gt;&#xA;&lt;p&gt;首先确保网络通达，先连接wifi&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-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#60a0b0;font-style:italic&#34;&gt;# open wifi&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;rfkill list&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sudo rfkill unblock wifi&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sudo nmcli radio wifi on&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sudo nmcli device wifi connect &lt;span style=&#34;color:#4070a0&#34;&gt;&amp;#34;wifi-name&amp;#34;&lt;/span&gt; password xxxxxxxx ifname wlan0&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;nmcli connection show&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sudo nmcli connection modify &amp;lt;wifi-id&amp;gt; ipv4.method manual ipv4.addresses 192.168.1.xx/24 ipv4.gateway 192.168.1.1 ipv4.dns &lt;span style=&#34;color:#4070a0&#34;&gt;&amp;#34;8.8.8.8,8.8.4.4&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;网络通畅，可以先把apt源更换成国内源，然后发现启动的时候会出一个警告：&lt;/p&gt;</description>
    </item>
    <item>
      <title>OpenSpec：一句话完成一个独立软件开发</title>
      <link>http://blog.memcd.com/posts/ai/2026-0426-openspec/</link>
      <pubDate>Sun, 26 Apr 2026 16:46:40 +0800</pubDate>
      <guid>http://blog.memcd.com/posts/ai/2026-0426-openspec/</guid>
      <description>&lt;h1 id=&#34;openspec一句话完成一个独立软件开发&#34;&gt;OpenSpec：一句话完成一个独立软件开发&lt;/h1&gt;&#xA;&lt;!-- &#xA;OpenSpec：交出你的最后一份工作&#xA;OpenSpec：Agent独立的最后一块版图&#xA;OpenSpec：一句话完成一个独立软件开发&#xA;时间成本：&#xA;- 实验：3小时&#xA;- 文章：3小时&#xA;--&gt;&#xA;&lt;h2 id=&#34;概述&#34;&gt;概述&lt;/h2&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;在项目目录 &lt;code&gt;openspec init&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;在你的IDE里，执行 &lt;code&gt;/opsx-propose 一句话需求描述&lt;/code&gt;，spec自动分析为什么要这么做、需求和场景是什么、技术方案定义和实施任务清单，并在changes目录生成相关规范文档&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;/opsx-apply&lt;/code&gt; 根据changes目录的规范文档，逐条开发，直到全部任务清单都被完成&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;/opsx-archive&lt;/code&gt; 将本次需求归档到archive目录下，需求开发完毕&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;本文通过openspec进行实践，只用了&lt;code&gt;20分钟 + 3美金&lt;/code&gt;的成本，就实现了多渠道新闻聚合功能，类似早期版本今日头条。&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;故事&#34;&gt;故事&lt;/h2&gt;&#xA;&lt;p&gt;从去年4月开始付费使用Windsurf算起，正式开始使用Agent产品已经超过一年。这一年来，随着Agent产品和大模型技术的不断发展，Agent可以做的事情越来越多，从早期只用来生成一些测试脚本，到现在可以把大型项目完全交给Agent去生成，这进步速度简直太快了。&lt;/p&gt;&#xA;&lt;p&gt;虽然现在Agent已经强大无比，但是在平时工作中，还是有一小部分事情我是习惯由人来完成，而不交给AI。就是整体技术架构设计和产品的需求管理工作。产品目录可能类似如下结构：&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;.&#xA;├── 01.brd 商业需求文档&#xA;├── 02.mrd 市场需求文档&#xA;│   ├── ca 竞品分析&#xA;│   ├── users 用户分析&#xA;├── 03.prd 产品总体需求说明&#xA;├── 04.version 版本需求说明&#xA;│   ├── v1.0.0.md&#xA;│   ├── v1.0.1.md&#xA;├── 05.technology 产品技术架构设计&#xA;├── 06.operation 产品运营&#xA;├── src 源代码，交给AI&#xA;├── Makefile 管理整体构建和发布&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;姑且给我在使用的这种工作方式，称为“古法Agent开发”。&lt;/p&gt;&#xA;&lt;p&gt;除了src源代码部分全部交给AI，其他部分还是由人来把握。因为在实践中发现，AI哪怕有了memory，但是实际做事的时候还是容易跑偏和缺乏宏观视野，解决技术和产品细节问题的时候往往会忽略战略方向和原则。如果源代码已经完成落地，再进行大幅调整，不仅仅会危害技术架构（缺乏整体规划的反复局部修改会导致技术架构腐化），还会导致巨幅的token消耗，直接推高产品的研发成本。&lt;/p&gt;&#xA;&lt;p&gt;把这些产品研发中核心的工作继续交给人来掌控，可以在每个版本开发工作结束的时候，要求AI评估是否跑偏。例如为满足当前版本需求修改了接口，那所有调用该接口的代码和设计要统一进行修改并确保通过单元测试；例如已经被战略规划为付费功能的功能点，就不能在开发免费功能的时候顺手给开发进免费功能里。这些都是在实践中实际踩过的坑。&lt;/p&gt;&#xA;&lt;p&gt;Agent现在可以独立接手全部代码工作，已经是时代的巨大进步，人只掌握核心的原则和方向，这把人从代码细节中解放出来，可以进行更宏观的思考，是人力资源的巨大解放。等于是，人的价值被提高了。&lt;/p&gt;</description>
    </item>
    <item>
      <title>OpenClaw Skill：不写代码，让小龙虾24小时替你干活</title>
      <link>http://blog.memcd.com/posts/ai/2026-0314-openclaw-skill/</link>
      <pubDate>Sat, 14 Mar 2026 22:40:30 +0800</pubDate>
      <guid>http://blog.memcd.com/posts/ai/2026-0314-openclaw-skill/</guid>
      <description>&lt;h1 id=&#34;openclaw-skill不写代码让小龙虾24小时替你干活&#34;&gt;OpenClaw Skill：不写代码，让小龙虾24小时替你干活&lt;/h1&gt;&#xA;&lt;p&gt;如果你已经用上了AI助手，但发现它大多数时候还只是个&amp;quot;聊天机器人&amp;quot;，那你大概率缺的不是更强的模型，而是更贴合你工作流的&lt;strong&gt;Skill（技能）&lt;/strong&gt;。&lt;/p&gt;&#xA;&lt;p&gt;在OpenClaw里，一个Skill本质上就是一个markdown格式的&lt;code&gt;SKILL.md&lt;/code&gt;文件。你用文字把自己的经验、流程和判断标准写进去，AI就能按你的方式干活。&lt;/p&gt;&#xA;&lt;p&gt;这意味着什么？&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;你可以让它&lt;strong&gt;每天早上自动巡检服务器，并把结果发到飞书&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;li&gt;你可以让它&lt;strong&gt;自动汇总Git提交，生成开发日报&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;li&gt;你甚至可以让它&lt;strong&gt;在对话里自己给自己写一个新Skill&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;更关键的是，这件事的门槛并不高。&lt;strong&gt;一点点简单的Markdown，就能开始教AI做事。&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;如果你正想把AI从&amp;quot;能聊&amp;quot;变成&amp;quot;能干活&amp;quot;，这篇文章会比较适合你。&lt;/p&gt;&#xA;&lt;h2 id=&#34;前情提要&#34;&gt;前情提要&lt;/h2&gt;&#xA;&lt;p&gt;在&lt;a href=&#34;../../posts/ai/2026-0205-openclaw-feishu/&#34;&gt;上一篇文章&lt;/a&gt;中，我们完成了OpenClaw（小龙虾）的安装，并把它和飞书打通了，实现了在飞书里直接运维内网服务器。&lt;/p&gt;&#xA;&lt;p&gt;但那只是冰山一角。&lt;/p&gt;&#xA;&lt;p&gt;小龙虾之所以叫&amp;quot;龙虾&amp;quot;，是因为它有一个威力无穷的&amp;quot;钳子&amp;quot;——&lt;strong&gt;Skill（技能）&lt;/strong&gt;。一只刚出生的龙虾，和一只训练有素、装备精良的龙虾，战斗力天差地别。&lt;/p&gt;&#xA;&lt;p&gt;今天这篇文章，就来彻底讲透OpenClaw的Skill系统，重点不是讲概念，而是讲一件更实际的事：&lt;strong&gt;怎么把你自己的经验封装成AI随时可调用的能力。&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;h2 id=&#34;什么是skill&#34;&gt;什么是Skill&lt;/h2&gt;&#xA;&lt;p&gt;Skill是OpenClaw的能力扩展单元，可以理解为龙虾身上的一把&amp;quot;钳子&amp;quot;。&lt;/p&gt;&#xA;&lt;p&gt;一个Skill就是一个文件夹，里面放一个&lt;code&gt;SKILL.md&lt;/code&gt;文件，用YAML frontmatter定义元数据，用Markdown写指令。就这么简单。&lt;/p&gt;&#xA;&lt;p&gt;如果说大模型是龙虾的&amp;quot;大脑&amp;quot;，那么Skill就是龙虾的&amp;quot;技能&amp;quot;。大脑负责思考，技能负责行动。没有Skill的龙虾只会聊天，有了Skill的龙虾才能真正把经验转化成生产力。&lt;/p&gt;&#xA;&lt;p&gt;类比一下：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;大模型&lt;/strong&gt; = 龙虾的大脑（思考、理解、决策）&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Skill&lt;/strong&gt; = 龙虾的钳子和腿（行动、操作、执行）&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;MCP&lt;/strong&gt; = 龙虾的触角（感知外部数据源）&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Plugin&lt;/strong&gt; = 龙虾的外挂装甲（第三方能力集成）&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Channel&lt;/strong&gt; = 龙虾的通讯方式（与外界交流的渠道）&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;skill的三层架构&#34;&gt;Skill的三层架构&lt;/h2&gt;&#xA;&lt;p&gt;根据小龙虾官方文档，OpenClaw的Skill加载有明确的优先级：&lt;/p&gt;&#xA;&lt;pre class=&#34;mermaid&#34;&gt;&#xA;  graph TD&#xA;    A[&amp;#34;Workspace Skills&amp;lt;br&amp;gt;/skills&amp;lt;br&amp;gt;最高优先级&amp;#34;] --&amp;gt; D[&amp;#34;OpenClaw Agent&amp;#34;]&#xA;    B[&amp;#34;Managed/Local Skills&amp;lt;br&amp;gt;~/.openclaw/skills&amp;lt;br&amp;gt;中等优先级&amp;#34;] --&amp;gt; D&#xA;    C[&amp;#34;Bundled Skills&amp;lt;br&amp;gt;随安装包自带&amp;lt;br&amp;gt;最低优先级&amp;#34;] --&amp;gt; D&#xA;&#xA;    style A fill:#ff6b6b,stroke:#c0392b,color:#fff&#xA;    style B fill:#ffa502,stroke:#e67e22,color:#fff&#xA;    style C fill:#2ed573,stroke:#27ae60,color:#fff&#xA;    style D fill:#e6f3ff,stroke:#0066cc&#xA;&lt;/pre&gt;&#xA;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Workspace Skills&lt;/strong&gt;（&lt;code&gt;/skills&lt;/code&gt;）：最高优先级。放在当前工作空间下，只对当前agent生效。适合放项目专属的技能。&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Managed/Local Skills&lt;/strong&gt;（&lt;code&gt;~/.openclaw/skills&lt;/code&gt;）：中等优先级。放在用户目录下，对本机所有agent生效。适合放个人常用的技能。&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Bundled Skills&lt;/strong&gt;：最低优先级。随OpenClaw安装包自带，开箱即用。&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;如果三个位置存在同名Skill，高优先级覆盖低优先级。这意味着你可以通过在workspace放一个同名Skill来&amp;quot;覆盖&amp;quot;内置技能的行为。&lt;/p&gt;</description>
    </item>
    <item>
      <title>OpenClaw：使用飞书实现内网服务器运维</title>
      <link>http://blog.memcd.com/posts/ai/2026-0205-openclaw-feishu/</link>
      <pubDate>Thu, 05 Feb 2026 19:46:10 +0800</pubDate>
      <guid>http://blog.memcd.com/posts/ai/2026-0205-openclaw-feishu/</guid>
      <description>&lt;h1 id=&#34;openclaw使用飞书实现内网服务器运维&#34;&gt;OpenClaw：使用飞书实现内网服务器运维&lt;/h1&gt;&#xA;&lt;h2 id=&#34;openclaw是什么&#34;&gt;OpenClaw是什么&lt;/h2&gt;&#xA;&lt;p&gt;OpenClaw外号小龙虾。&lt;/p&gt;&#xA;&lt;p&gt;官网的定义是：真正行动的人工智能。&lt;/p&gt;&#xA;&lt;p&gt;可以简单理解为，可以做你在电脑上做的“任何事”的人工智能。当然，现在还不能实现任何事，但它是要往这个方向发展的。&lt;/p&gt;&#xA;&lt;p&gt;和传统agent/MCP的区别，就是它的触角比agent/MCP进一步延伸了。&lt;/p&gt;&#xA;&lt;h2 id=&#34;安装openclaw&#34;&gt;安装OpenClaw&lt;/h2&gt;&#xA;&lt;p&gt;由于OpenClaw能耐过大，尽量选择一台独立的Linux服务器进行部署，参考官网可以实现一键安装。&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-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#60a0b0;font-style:italic&#34;&gt;# Linux&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;curl -fsSL https://openclaw.ai/install.sh | bash&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;体验openclaw&#34;&gt;体验OpenClaw&lt;/h2&gt;&#xA;&lt;p&gt;安装结束后会有一些设置项，其中大模型这个步骤国内用户可以选择qwen，会通过网页进行授权，其他可以延后再设置。&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-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#60a0b0;font-style:italic&#34;&gt;# qwen授权，这个地址似乎是不收费的&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;https://chat.qwen.ai/authorize?user_code&lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt;somecode&amp;amp;&lt;span style=&#34;color:#bb60d5&#34;&gt;client&lt;/span&gt;&lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt;qwen-code&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;然后就可以使用OpenClaw了。&lt;/p&gt;&#xA;&lt;p&gt;神奇的事情从现在开始，因为一旦你连接好大模型，后续基于OpenClaw做的所有的事情，都可以通过OpenClaw自己来完成，不再需要你的技术能力了。&lt;/p&gt;&#xA;&lt;p&gt;配置完成后，会立刻进入TUI对话界面（也可以选择使用Web界面）：&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-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;🦞 OpenClaw 2026.2.2-3 &lt;span style=&#34;color:#666&#34;&gt;(&lt;/span&gt;9c5941b&lt;span style=&#34;color:#666&#34;&gt;)&lt;/span&gt; — I can grep it, git blame it, and gently roast it—pick your coping mechanism.&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; openclaw tui - ws://127.0.0.1:18789 - agent main - session main&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; session agent:main:main&#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; Wake up, my friend!&#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; Hey. I just came online. Who am I? Who are you?&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;pre&gt;&lt;code&gt;你都能干什么？&#xA;&lt;/code&gt;&lt;/pre&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; 我可以帮你做很多事情：&#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; - 读取、编辑、创建文件&#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;&#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; - 获取天气预报&#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; 系统操作&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; - 执行shell命令&#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;&#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; - 发送消息到不同平台（微信、Telegram等）&#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;&#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; - 文字转语音&lt;span style=&#34;color:#666&#34;&gt;(&lt;/span&gt;TTS&lt;span style=&#34;color:#666&#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;&#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; - 监控系统状态&#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; 你想让我帮你做什么呢？或者我们可以先聊聊你是谁，以及你希望我怎么称呼你。&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;pre&gt;&lt;code&gt;叫我老大即可。那你执行一个命令试试，执行个df -h吧&#xA;&lt;/code&gt;&lt;/pre&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; 好的，老大！这是df -h命令的执行结果，显示了系统的磁盘使用情况：&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; 🛠️ Exec&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#666&#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; tmpfs           6.3G  3.0M  6.3G    1% /run&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; /dev/nvme0n1p3  3.5T  1.9T  1.5T   58% /&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; tmpfs            32G  4.0K   32G    1% /dev/shm&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; tmpfs           5.0M   12K  5.0M    1% /run/lock&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; efivarfs        192K  156K   32K   84% /sys/firmware/efi/efivars&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; /dev/nvme0n1p1  296M   32M  265M   11% /boot/efi&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; /dev/sda1       3.7T  1.6T  2.1T   44% /data4t&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; tmpfs           6.3G  104K  6.3G    1% /run/user/128&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; tmpfs           6.3G  104K  6.3G    1% /run/user/1001&#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:#666&#34;&gt;(&lt;/span&gt;/dev/nvme0n1p3&lt;span style=&#34;color:#666&#34;&gt;)&lt;/span&gt;是3.5T，已使用1.9T&lt;span style=&#34;color:#666&#34;&gt;(&lt;/span&gt;58%&lt;span style=&#34;color:#666&#34;&gt;)&lt;/span&gt;，还有1.5T可用。另外还有一个数据盘/dev/sda1&lt;span style=&#34;color:#666&#34;&gt;(&lt;/span&gt;3.7T&lt;span style=&#34;color:#666&#34;&gt;)&lt;/span&gt;，已用44%，有2.1T可用。&#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;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;pre&gt;&lt;code&gt;帮我看看显卡显存剩余多少&#xA;&lt;/code&gt;&lt;/pre&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;你的显卡显存情况如下：                      &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; - 总共：22528 MiB（约22GB）                        &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; - 已使用：44 MiB                                 &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; - 剩余：21957 MiB（约214GB）&#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;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;可以看到，像一个普通的agent一样，OpenClaw现在可以执行shell命令，了解所处操作系统的状态，并操控操作系统。&lt;/p&gt;</description>
    </item>
    <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>
