<?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>Posts on lx技术笔记</title>
    <link>http://nb404.cn/posts/</link>
    <description>Recent content in Posts on lx技术笔记</description>
    <generator>Hugo</generator>
    <language>zh-CN</language>
    <lastBuildDate>Sat, 14 Mar 2026 00:00:00 +0000</lastBuildDate>
    <atom:link href="http://nb404.cn/posts/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>一文读懂AI自动化核心：Workflow与Agent的区别，建议收藏</title>
      <link>http://nb404.cn/posts/%E4%B8%80%E6%96%87%E8%AF%BB%E6%87%82ai%E8%87%AA%E5%8A%A8%E5%8C%96%E6%A0%B8%E5%BF%83workflow%E4%B8%8Eagent%E7%9A%84%E5%8C%BA%E5%88%AB%E5%BB%BA%E8%AE%AE%E6%94%B6%E8%97%8F/</link>
      <pubDate>Sat, 14 Mar 2026 00:00:00 +0000</pubDate>
      <guid>http://nb404.cn/posts/%E4%B8%80%E6%96%87%E8%AF%BB%E6%87%82ai%E8%87%AA%E5%8A%A8%E5%8C%96%E6%A0%B8%E5%BF%83workflow%E4%B8%8Eagent%E7%9A%84%E5%8C%BA%E5%88%AB%E5%BB%BA%E8%AE%AE%E6%94%B6%E8%97%8F/</guid>
      <description>&lt;p&gt;今天我们聊一个近期 AI 圈里的热门话题 —  &lt;strong&gt;和 Agent&lt;/strong&gt;**。**&lt;/p&gt;
&lt;p&gt;一提到 AI，大家总说“让 AI 帮我干活”，可真要让 AI 落地做事，离不开 Workflow 与 。这俩到底在 AI 里扮演了什么角色，又有什么区别？&lt;/p&gt;
&lt;p&gt;今天我们就来详细聊聊**，揭开 AI 自动化的秘密**。&lt;/p&gt;
&lt;h2 id=&#34;1-workflow深耕多年的流程老管家&#34;&gt;1 Workflow：深耕多年的“流程老管家”&lt;/h2&gt;
&lt;p&gt;Workflow，也叫。很多人以为它是 AI 带火的新词，其实它早就在各行业成熟应用了。比如：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;职场人熟悉的审批流：请假时，从提交申请到审批通过，每一步都有固定顺序，缺一不可；&lt;/li&gt;
&lt;li&gt;程序员常用的持续集成：代码提交后，自动触发编译→测试→部署，全程按预设步骤走，无需人工干预；&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img alt=&#34;在这里插入图片描述&#34; loading=&#34;lazy&#34; src=&#34;http://nb404.cn/posts/images/0a24fbf3c0e943e9b84b7e5302909a5a.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;这些场景的本质就是&lt;strong&gt;提前把规则写死，严格按照预设步骤执行&lt;/strong&gt;。就像工厂里的流水线，螺丝拧几圈、零件放哪里，早就定好了，工人只要按流程走就行。&lt;/p&gt;
&lt;p&gt;&lt;img alt=&#34;在这里插入图片描述&#34; loading=&#34;lazy&#34; src=&#34;http://nb404.cn/posts/images/1e91fe3e3e0e4e658f5484af134f1349.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;它的核心工作流也不复杂，主要分为四步：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;触发：谁来启动这条流程？&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;满足某个条件就自动开跑，比如点击提交、到达某个时间点、检测到有文件上传。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;编排：接下来按哪条路走？&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;先做什么、后做什么，遇到不同情况走哪条分支，都提前设计好，相当于流程的“路线图”。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;执行：具体怎么干活？&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;按照路线图真正去办事：比如提交后的发送消息通知、计算汇总数据、调用外部接口等，把每一步操作落地。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;结束：怎么收尾？&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;流程跑完后，再把结果告知相关人，更新状态、保存记录，让这件事有一个完整闭环。&lt;/p&gt;
&lt;p&gt;&lt;img alt=&#34;图片&#34; loading=&#34;lazy&#34; src=&#34;http://nb404.cn/posts/images/b49c0893795978ce1081352a83924c48.jpeg&#34;&gt;&lt;/p&gt;
&lt;p&gt;可以说，传统 Workflow 就像一套&lt;strong&gt;按部就班、严谨执行&lt;/strong&gt;的固定“剧本”，不会自主思考、也不会灵活变通。&lt;/p&gt;
&lt;p&gt;而当 AI 时代到来，&lt;strong&gt;Workflow 也迎来了新的角色与价值&lt;/strong&gt;。&lt;/p&gt;
&lt;p&gt;AI 的落地离不开（LLM），但大模型再智能，也只是一个擅长理解生成、却不懂统筹调度的“超级大脑”。当我们需要把零散的思考变成可执行的步骤时，就需要一个统一调度的角色 — &lt;strong&gt;Workflow&lt;/strong&gt;。它会决定什么时候调用大模型、让它处理什么内容、结果传给谁、下一步怎么走。&lt;/p&gt;
&lt;p&gt;&lt;img alt=&#34;图片&#34; loading=&#34;lazy&#34; src=&#34;http://nb404.cn/posts/images/845196dfae63f07c575e213569d9c251.jpeg&#34;&gt;&lt;/p&gt;
&lt;p&gt;正是这样，传统工作流才真正具备了理解意图、生成内容的智能能力，升级为 AI Workflow。&lt;/p&gt;
&lt;p&gt;比如 AI 智能客服，它的流程非常清晰：&lt;/p&gt;
&lt;p&gt;用户咨询 → 大模型识别意图 → 生成应对答案 → 回复用户。&lt;/p&gt;
&lt;p&gt;还有常用的 AI 生成社交文案的流程：&lt;/p&gt;
&lt;p&gt;输入需求 → 大模型提取关键词 → 生成文案 → 人工微调 → 发布&lt;/p&gt;</description>
    </item>
    <item>
      <title>Agent-browser浏览器自动化CLI</title>
      <link>http://nb404.cn/posts/agent-browser%E6%B5%8F%E8%A7%88%E5%99%A8%E8%87%AA%E5%8A%A8%E5%8C%96cli/</link>
      <pubDate>Wed, 11 Mar 2026 00:00:00 +0000</pubDate>
      <guid>http://nb404.cn/posts/agent-browser%E6%B5%8F%E8%A7%88%E5%99%A8%E8%87%AA%E5%8A%A8%E5%8C%96cli/</guid>
      <description>&lt;p&gt;&lt;img alt=&#34;Agent-browser浏览器自动化CLI&#34; loading=&#34;lazy&#34; src=&#34;http://nb404.cn/posts/images/dda43e169ec7fb82843208de562fb30d.webp&#34;&gt;&lt;/p&gt;
&lt;p&gt;跨平台、功能丰富、极快：重新定义AI上下文通信的优先紧凑文本输出。&lt;/p&gt;
&lt;p&gt;对于者来说，在开发AI Agent时与浏览器交互是一个频繁的过程。让AI Agent更高效地操作浏览器是一个具有挑战性的问题。最近，在搜索AI测试解决方案时，我发现了Vercel开源的agent-browser，这是一款专为AI Agent设计的自动化CLI。&lt;/p&gt;
&lt;p&gt;agent-的特性：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;基于引用&lt;/strong&gt;：快照返回带有引用的可访问树。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Agent优先&lt;/strong&gt;：高效利用AI上下文，节省token。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;会话&lt;/strong&gt;：支持多个具有独立身份验证的隔离浏览器实例。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;功能完整&lt;/strong&gt;：支持超过50个命令，包括导航、表单操作和截图。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;跨平台&lt;/strong&gt;：支持macOS、Linux和Windows平台。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;1安装agent-browser&#34;&gt;1、安装agent-browser&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;在安装agent-browser之前，请确保您的计算机上已安装Node.js。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;在命令行中输入以下命令。&lt;code&gt;-g&lt;/code&gt;选项表示全局安装。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;npm install -g agent-browser
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;成功安装agent-browser CLI后，继续输入命令&lt;code&gt;agent-browser install&lt;/code&gt;，这将开始下载Chromium浏览器。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;安装Chromium浏览器...
需要安装以下软件包：
playwright@1.58.2
确定继续？(y) y
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;成功安装Chromium浏览器后，命令行将输出成功安装的消息。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;正在下载Chrome for Testing 145.0.7632.6 (playwright chromium v1208)...
162.3 MiB [====================] 100% 0.0s
...
✓ Chromium安装成功
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;2使用agent-browser&#34;&gt;2、使用agent-browser&lt;/h3&gt;
&lt;h4 id=&#34;21-打开网页&#34;&gt;2.1 打开网页&lt;/h4&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;agent-browser open https://agent-browser.dev/
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;输出：&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;✓ 无头浏览器自动化 for AI
  https://agent-browser.dev/
&lt;/code&gt;&lt;/pre&gt;&lt;h4 id=&#34;22-获取当前网页的可访问树&#34;&gt;2.2 获取当前网页的可访问树&lt;/h4&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;agent-browser snapshot -i
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;输出：&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;- 链接 &amp;#34;Made with love by Vercel&amp;#34; [ref=e1]
- 链接 &amp;#34;agent-browser&amp;#34; [ref=e2]
- 链接 &amp;#34;16k&amp;#34; [ref=e3]
- 链接 &amp;#34;npm&amp;#34; [ref=e4]
...
- 按钮 &amp;#34;Ask AI&amp;#34; [ref=e26]
&lt;/code&gt;&lt;/pre&gt;&lt;h4 id=&#34;23-使用引用进行交互&#34;&gt;2.3 使用引用进行交互&lt;/h4&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;agent-browser click @e3
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;输出：&lt;/p&gt;</description>
    </item>
    <item>
      <title>开发板常见问题</title>
      <link>http://nb404.cn/posts/%E5%BC%80%E5%8F%91%E6%9D%BF%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98/</link>
      <pubDate>Wed, 04 Mar 2026 00:00:00 +0000</pubDate>
      <guid>http://nb404.cn/posts/%E5%BC%80%E5%8F%91%E6%9D%BF%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98/</guid>
      <description>&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;问题类型&lt;/th&gt;
          &lt;th&gt;占比&lt;/th&gt;
          &lt;th&gt;可预防性&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;过热降频/关机&lt;/td&gt;
          &lt;td&gt;40%&lt;/td&gt;
          &lt;td&gt;⭐⭐⭐⭐⭐（加风扇即可）&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;电源不足&lt;/td&gt;
          &lt;td&gt;25%&lt;/td&gt;
          &lt;td&gt;⭐⭐⭐⭐（换好电源）&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;内核/驱动崩溃&lt;/td&gt;
          &lt;td&gt;20%&lt;/td&gt;
          &lt;td&gt;⭐⭐⭐（升级内核）&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;内存/存储故障&lt;/td&gt;
          &lt;td&gt;10%&lt;/td&gt;
          &lt;td&gt;⭐⭐（依赖硬件质量）&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;工具/配置错误&lt;/td&gt;
          &lt;td&gt;5%&lt;/td&gt;
          &lt;td&gt;⭐⭐⭐⭐（规范操作）&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;hr&gt;
&lt;blockquote&gt;
&lt;p&gt;原文链接: &lt;a href=&#34;https://blog.csdn.net/lixusocool/article/details/158649520?spm=1001.2014.3001.5502&#34;&gt;开发板常见问题&lt;/a&gt;
作者: lixusocool&lt;/p&gt;
&lt;/blockquote&gt;</description>
    </item>
    <item>
      <title>浏览器自动化agent体验（brower-use，magentic-ui-fara7B）</title>
      <link>http://nb404.cn/posts/%E6%B5%8F%E8%A7%88%E5%99%A8%E8%87%AA%E5%8A%A8%E5%8C%96agent%E4%BD%93%E9%AA%8Cbrower-usemagentic-ui-fara7b/</link>
      <pubDate>Tue, 03 Mar 2026 00:00:00 +0000</pubDate>
      <guid>http://nb404.cn/posts/%E6%B5%8F%E8%A7%88%E5%99%A8%E8%87%AA%E5%8A%A8%E5%8C%96agent%E4%BD%93%E9%AA%8Cbrower-usemagentic-ui-fara7b/</guid>
      <description>&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;&lt;/th&gt;
          &lt;th&gt;优点&lt;/th&gt;
          &lt;th&gt;缺点&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;brower-use&lt;/td&gt;
          &lt;td&gt;使用官网SDK写一个python的api，挺好用的能识别网页绿色框框数量&lt;/td&gt;
          &lt;td&gt;官网api收费，使用免费的api不太好用github的部署麻烦，没有成功&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;magentic-ui-fara7B&lt;/td&gt;
          &lt;td&gt;部署简单成功也能识别绿色框框&lt;/td&gt;
          &lt;td&gt;调用的qubrid的api，几下就用完了。。。需要设置docker的普通用户权限&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;hr&gt;
&lt;blockquote&gt;
&lt;p&gt;原文链接: &lt;a href=&#34;https://blog.csdn.net/lixusocool/article/details/158617112?spm=1001.2014.3001.5502&#34;&gt;浏览器自动化agent体验（brower-use，magentic-ui-fara7B）&lt;/a&gt;
作者: lixusocool&lt;/p&gt;
&lt;/blockquote&gt;</description>
    </item>
    <item>
      <title>成功破解geetestv4极验滑动验证码</title>
      <link>http://nb404.cn/posts/%E6%88%90%E5%8A%9F%E7%A0%B4%E8%A7%A3geetestv4%E6%9E%81%E9%AA%8C%E6%BB%91%E5%8A%A8%E9%AA%8C%E8%AF%81%E7%A0%81/</link>
      <pubDate>Mon, 16 Feb 2026 00:00:00 +0000</pubDate>
      <guid>http://nb404.cn/posts/%E6%88%90%E5%8A%9F%E7%A0%B4%E8%A7%A3geetestv4%E6%9E%81%E9%AA%8C%E6%BB%91%E5%8A%A8%E9%AA%8C%E8%AF%81%E7%A0%81/</guid>
      <description>&lt;p&gt;花了我两三天，结果还是好的达到了我的预期 (o゜▽゜)o☆[BINGO!]&lt;/p&gt;
&lt;p&gt;先看下效果：&lt;/p&gt;
&lt;p&gt;&lt;img loading=&#34;lazy&#34; src=&#34;http://nb404.cn/posts/images/22e843018a6542dbacb9bf8888be20e5.gif&#34;&gt;&lt;/p&gt;
&lt;p&gt;&lt;img loading=&#34;lazy&#34; src=&#34;http://nb404.cn/posts/images/bd13ae3ce8fd4f6481bba8cde1b29923.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;如图所示脚本运行可以自动点击join按钮和滑动按钮，按时签到薅羊毛！&lt;/p&gt;
&lt;p&gt;我采用的是pyautogui+方式，非传统自动化工具如&lt;strong&gt;Selenium和Playwright，&lt;strong&gt;不过使用了&lt;/strong&gt;DrissionPage&lt;/strong&gt;来获取缺口图和背景图。&lt;/p&gt;
&lt;p&gt;已经适配windows和debian系统，最新的浏览器（其他没试）。&lt;/p&gt;
&lt;p&gt;分享源码给大家一起学习测试使用（不可用做非法用途！发生的非法事件与本人无关特此声明）&lt;/p&gt;
&lt;p&gt;：&lt;a href=&#34;https://github.com/haolixu/geetest-auto&#34;&gt;https://github.com/haolixu/geetest-auto&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;：&lt;a href=&#34;https://gitee.com/haolixu/geetest-auto&#34;&gt;https://gitee.com/haolixu/geetest-auto&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;那个依赖我没搞定，尝试了pip  &amp;gt; requirements.txt和pipreqs . &amp;ndash;encoding=utf-8 &amp;ndash;force&lt;/p&gt;
&lt;p&gt;但是没啥用。。。还是缺依赖，你们有什么好的方法吗？&lt;/p&gt;
&lt;p&gt;需要注意的是浏览器需要设置一下：&lt;/p&gt;
&lt;p&gt;win：D:\浏览器\QQBrowser\QQBrowser.exe -sc=desktopshortcut -fixlaunch=0 &amp;mdash;debugging-port=9222&lt;/p&gt;
&lt;p&gt;：/usr/bin/qqbrowser-browser-stable %U   -sc=desktopshortcut -fixlaunch=0 &amp;ndash;remote-debugging-port=9222&lt;/p&gt;
&lt;p&gt;&lt;img loading=&#34;lazy&#34; src=&#34;http://nb404.cn/posts/images/66481d475ca94ddb89b46e72a3375d02.png&#34;&gt;&lt;img loading=&#34;lazy&#34; src=&#34;http://nb404.cn/posts/images/021c0a97225e40d78fca6bcb9d33b535.png&#34;&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;blockquote&gt;
&lt;p&gt;原文链接: &lt;a href=&#34;https://blog.csdn.net/lixusocool/article/details/158128351?spm=1001.2014.3001.5502&#34;&gt;成功破解geetestv4极验滑动验证码&lt;/a&gt;
作者: lixusocool&lt;/p&gt;
&lt;/blockquote&gt;</description>
    </item>
    <item>
      <title>Agent记忆技术及落地实践</title>
      <link>http://nb404.cn/posts/agent%E8%AE%B0%E5%BF%86%E6%8A%80%E6%9C%AF%E5%8F%8A%E8%90%BD%E5%9C%B0%E5%AE%9E%E8%B7%B5/</link>
      <pubDate>Mon, 17 Nov 2025 00:00:00 +0000</pubDate>
      <guid>http://nb404.cn/posts/agent%E8%AE%B0%E5%BF%86%E6%8A%80%E6%9C%AF%E5%8F%8A%E8%90%BD%E5%9C%B0%E5%AE%9E%E8%B7%B5/</guid>
      <description>&lt;p&gt;做记忆模块搭建的相关研发工作，一开始认为agent的记忆就是维护上下文，应该和chatbot的对话管理差不多，但真的做一段时间之后，才发现和对话管理相比还是区别比较大的，而且记忆模块对agent的实现效果以及后期可扩展性有比较重要的影响。&lt;/p&gt;
&lt;h5 id=&#34;agent记忆与chatbot上下文的区别&#34;&gt;&lt;strong&gt;agent记忆与chatbot上下文的区别&lt;/strong&gt;&lt;/h5&gt;
&lt;p&gt;我们拿agent记忆与上下文来作下比较，暂且不考虑长期记忆，就拿短期记忆来作对比，短期记忆(工作记忆)主要就是维护上下文，更官方一点的说法就是上下文工程，那chabot的对话管理不是也是在维护上下文吗？那两者有什么区别呢？&lt;/p&gt;
&lt;p&gt;&lt;img loading=&#34;lazy&#34; src=&#34;http://nb404.cn/posts/images/01bacdcac1138f90c7e861fd3b0907a8.png&#34;&gt;&lt;/p&gt;
&lt;h6 id=&#34;目标&#34;&gt;&lt;strong&gt;目标&lt;/strong&gt;&lt;/h6&gt;
&lt;p&gt;agent记忆和chatbot上下文的目标看上去是一致的:给LLM/agent添加合适的状态来做下一步的决策。但是从服务对象，组织形式和维护重点的扩展来看有比较大的区别。&lt;/p&gt;
&lt;h6 id=&#34;服务对象&#34;&gt;&lt;strong&gt;服务对象&lt;/strong&gt;&lt;/h6&gt;
&lt;p&gt;虽然两者都算是人机交互，拿服务的对象都可以算作是人，但从现阶段的主要技术实现来看，服务对象还是存在差异的。&lt;/p&gt;
&lt;p&gt;chatbot的服务对象是人这个毋庸置疑，做图灵测试也是为了验证对面和你说话的那个AI，有没有可能骗过你，而从让你以为它是个人，chatbot展开的多轮对话也是围绕人的实际需求展开。&lt;/p&gt;
&lt;p&gt;agent虽然也存在与人的交互，agentic workflow中一般也会有人工输入的节点，但现阶段我们搭建agent的主要任务，更多时候是在自动完成一个复杂任务，因此服务对象可以认为是复杂任务。&lt;/p&gt;
&lt;h6 id=&#34;组织形式&#34;&gt;&lt;strong&gt;组织形式&lt;/strong&gt;&lt;/h6&gt;
&lt;p&gt;从组织形式上来看，由于agent具备了行动能力，所以和chabot产生了组织形式的不同。&lt;/p&gt;
&lt;p&gt;&lt;img loading=&#34;lazy&#34; src=&#34;http://nb404.cn/posts/images/953d252c69328a99749f85bca9eb64ed.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;chatbot主要的构成是一问一答的形式，包括我们调用大模型api一般也遵循这个结构，可以表示为{[q0,a0],[q1,a1],&amp;hellip;[qt,at]}。&lt;/p&gt;
&lt;p&gt;agent记忆的构成以最常见的react模式为例，主要是动作(tool)和动作结果(tool_result)的时序集合，可以表示为{a0,o0,a1,01,&amp;hellip;at,ot}。&lt;/p&gt;
&lt;h6 id=&#34;维护重点&#34;&gt;&lt;strong&gt;维护重点&lt;/strong&gt;&lt;/h6&gt;
&lt;p&gt;对于记忆和上下文，很重要的一个功能是维护，但维护的侧重点也是有所不同的。&lt;/p&gt;
&lt;p&gt;chabot的上下文虽然也存在前后关联，不会每一轮都紧密联系，但会存在频繁的意图切换，如何理解意图并且实现有效的意图切换识别是上下文维护的重点。&lt;/p&gt;
&lt;p&gt;而agent记忆的每一个步骤都是按迭代规划进行的，缺失某个步骤或跳过某个步骤都可能会导致任务失败，因此它的维护重点是如何在有限的窗口中记录对下一步决策产生影响的所需关键信息。&lt;/p&gt;
&lt;p&gt;另外agent和chatbot还存在一个很大不同的点是的必要性。对于chatbot，长期记忆主要是记住个人信息和偏好用于个性化服务。而对于agent，长期记忆需要通过情景记忆来记住之前的迭代轨迹，这样不仅能通过检索的方式来获取与当前决策相关的上下文信息，还可以实现经验复用，在下一次遇到类似任务时，可以将之前的经验作为参考,马普所今年2月份发这篇论文时候就指出情景记忆是当前agent所缺少的[1]。&lt;/p&gt;
&lt;h4 id=&#34;agent短期记忆-业界技术分享&#34;&gt;&lt;strong&gt;agent短期记忆-业界技术分享&lt;/strong&gt;&lt;/h4&gt;
&lt;h5 id=&#34;anthropic&#34;&gt;&lt;strong&gt;anthropic&lt;/strong&gt;&lt;/h5&gt;
&lt;p&gt;anthropic提到agent在长程任务上的三种管理上下文方式[2]包括:压缩,结构化笔记和采用子agent架构。&lt;/p&gt;
&lt;p&gt;&lt;img loading=&#34;lazy&#34; src=&#34;http://nb404.cn/posts/images/387d2755dd654931c7687697dd44f614.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;压缩&lt;/strong&gt;通过对上下文关键内容的提取，改写和无关内容删除实现上下文瘦身；&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;结构化笔记&lt;/strong&gt;是把关键信息以结构化形式存入笔记，让agent可以阅读到关键信息；&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;子agent架构&lt;/strong&gt;则是通过子agent维护自己的独立上下文再将关键结果返回主agent实现上下文解耦。&lt;/p&gt;
&lt;h5 id=&#34;oepnai&#34;&gt;&lt;strong&gt;oepnai&lt;/strong&gt;&lt;/h5&gt;
&lt;p&gt;openai的短期记忆管理[3]则是围绕agent sdk来谈到管理短期记忆的两个主要方式:裁剪（trimming）和压缩（summarizing）。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;压缩&lt;/strong&gt;和anthropic的compact是一样的，裁剪就是把旧的历史信息直接剪掉。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;trimming&lt;/strong&gt;的好处是实现比较简单，延时友好而且不会引入偏移信息（相比压缩），但缺点也显而易见，裁剪的内容可能包含当前决策需要的信息，所以一般适用于任务独立，上下文关联不大，低延迟要求场景。&lt;/p&gt;
&lt;h5 id=&#34;langchain--manus&#34;&gt;&lt;strong&gt;langchain &amp;amp; manus&lt;/strong&gt;&lt;/h5&gt;
&lt;p&gt;langchain与最近的一次交流[4]提到manus的三种上下文管理方式:reduce ，offload context和isolate context。&lt;/p&gt;
&lt;p&gt;&lt;img loading=&#34;lazy&#34; src=&#34;http://nb404.cn/posts/images/0a91b18e5dcebee1f435e386854e5c9a.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;reduce context&lt;/strong&gt;包括将工具执行结果进行压缩放在窗口内，而降完整结果保存在文件系统中，在上下文触发窗口限制时对整个轨迹进行整体压缩；&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;context isolate&lt;/strong&gt;类似于anthropic的sub agent方法，但细分为两种方式：对于简单任务main agent通过function call的方式将指令传递给子agent，子agent在自己的窗口执行任务；而对于复杂任务，子agent会和主agent共享上下文。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;context offloading&lt;/strong&gt;和anthropic的结构化笔记虽然都是将内容存入文件，但处理思路不一样。manus的方式是将大多数操作卸载到沙盒层，在沙盒中通过bash工具就可以实现多样化的文件读写操作，这样就可以把工具执行结果保存到文件，在需要时通过bash的grep等查询命令进行访问。另外manus的这个设计相当于把大部分先验知识文件化，让agent按需通过读取文件内容获取先验来指导行动，anthropic的skill实现应该也是类似的思路。&lt;/p&gt;
&lt;h5 id=&#34;agent记忆-项目实践&#34;&gt;&lt;strong&gt;agent记忆-项目实践&lt;/strong&gt;&lt;/h5&gt;
&lt;h6 id=&#34;初版记忆实现&#34;&gt;&lt;strong&gt;初版记忆实现&lt;/strong&gt;&lt;/h6&gt;
&lt;p&gt;在实际搭建agent时，工具模块，记忆模块，提示词模块是三个重要的基础模块。工具模块和提示词模块相对简单或者说比较成熟的方案，而记忆模块的搭建则有不同的设计思路和实现方式，但核心思路一致 - &amp;ldquo;给agent提供恰当的上下文&amp;rdquo;，但难就难在&amp;quot;恰当&amp;quot;，首先受限于LLM的上下文窗口，所以累计上下文就不能过长。&lt;/p&gt;
&lt;p&gt;&lt;img loading=&#34;lazy&#34; src=&#34;http://nb404.cn/posts/images/bb300e7d10121e49b8504ca07022230d.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;另外上下文中堆积无关或者重复的内容不但会影响推理规划，也是不经济的。还有一个重要原因是上下文中的内容对于agent来说不是等权重的，对于当前决策而言，有的内容相对其它内容就会更重要，类似于需要一个attention机制来选择关键信息，那以什么形式来管理上下文获取更相信的信息加入就尤为关键了。&lt;/p&gt;
&lt;p&gt;在近期的一个agent项目实践中，实现记忆模块的初始版本，设定的原则是&amp;quot;状态是记忆的投影&amp;quot;，以记忆作为事实的唯一来源，同时要求不在agent中维护状态，把记忆事实作为状态来源，放入agent的上下文中让agent自己进行决策。思路看上去是没有问题，但实际测试后就发现想简单了。&lt;/p&gt;
&lt;p&gt;对于agent而言本身依赖的LLM是无状态的，所以agent也可以认为是无状态的，但是记忆的目的就是为了让agent具有状态。在初版的实现里，每一轮迭代都把obs写入工作记忆，同时读取当前轮之前的工作记忆中的结构化历史信息，把obs作为上下文唯一来源，直接注入到下一轮迭代的上下文，这样做是比较省事，但是一旦agent内部迭代出现问题，因为obs和工作记忆之间的这种耦合设计，很难追溯问题来源。&lt;/p&gt;
&lt;h6 id=&#34;第二版记忆重构优化&#34;&gt;&lt;strong&gt;第二版记忆重构优化&lt;/strong&gt;&lt;/h6&gt;
&lt;p&gt;在发现第一版的问题后，开始进行第二版改进。第二版的改进主要是基于看到的相关的技术博客和论文，重新设计了记忆方案。首先记忆模块的目录设计应该把短期记忆和长期记忆做清晰分划分，维护当前agent迭代执行任务所需上下文的就是短期记忆(工作记忆)，而记录完整迭代过程的是长期记忆（情景记忆），产生对应产出的也是长期记忆(语义记忆)。其中比较容易混淆的是工作记忆和情景记忆，从持久化的角度来说，把工作记忆持久化就可以理解为情景记忆，但实际上是存在差别的。&lt;/p&gt;
&lt;p&gt;对于一个agent的迭代轨迹{a0,o0,a1,o1,&amp;hellip;at,ot},可以直接把这个迭代轨迹放入上下文，也可以对这个迭代轨迹的每一步进行摘要提取，仅保留关键信息和引用，比如某步生成了一个很大的结构化，在进入下一轮时没有必要把整个json全部放入上下文，可以只放入一个引用，但是会把完整的json存入情景记忆，在下一轮迭代使用这个引用时再从情景记忆中取出这个对应的json，这样能避免大段内容直接进入到上下文中。&lt;/p&gt;
&lt;p&gt;同时还需要考虑到上下文长度限制和成本问题，一般的工作记忆还会考虑使用最近k轮的策略，上下文只保留最近k轮的迭代记录，但是全局信息以结构化的信息记录，把这个结构化信息也注入到上下文中，这样也不至于让agent丢失掉全局信息。而第一版的问题就在这里，状态不应该只是记忆的投影，状态是对记忆的删减和加工，实际上的改进就是在短期记忆和长期记忆之间加一个桥接适配层，来实现短期记忆和长期记忆的搭配使用。&lt;/p&gt;
&lt;p&gt;而为了agent项目的阶段性扩展和迭代，在前期工程化实现时就应该考虑长期记忆。在一个agent的迭代循环里，如果迭代轮数比较长，上下文窗口和LLM的上下文利用效率已经开始明显下降，就需要考虑结合长期记忆使用了。而为了缩减上下文，在删减掉比较早期的迭代信息后，需要识别出长期记忆中已保存的迭代记录中，哪些记忆内容会对当前轮决策有用，就选择加入到上下文。这个一般会使用retrival的方法，从长期记忆中进行检索。技术实现上会结合结构化和向量检索，而实际的实践需要根据场景需求去做设计和调整记忆存储和读写方式，可以使用slot，sql数据库，向量数据库，图数据库等等。&lt;/p&gt;
&lt;p&gt;实践过程汇总有一个原则可以参考：记忆模块在开始实现之初，就应该把短期记忆和长期记忆进行解耦设计，这不但为上下文管理留有比较大的优化空间，在符合可审计性原则之外还为经验复用和未来可能的RL积累数据基础。&lt;/p&gt;
&lt;p&gt;同时第二版的改进上，还有一个比较重要的改进点是还原了obs的单纯职责，obs只应该对当前轮的act和执行结果进行记录，不应该注入历史内容，obs保持职责单一只把当前轮的执行和执行结果(或摘要)放到工作记忆，工作记忆再去通过记忆模块补充历史上下文，这样修改之后，obs和工作记忆的职责也分的比较清晰了。&lt;/p&gt;
&lt;p&gt;另外在agent的工层化实现过程中，造成可审计比较困难的一个点就是对工程化实现过程的不同组件的职责理解和划分不清晰，一旦出了bug，bug溯因就会因为这种不清晰的边界设计增加debug的难度，所以需要在设计之初就厘清不同模块的边界再动手进行实现。&lt;/p&gt;
&lt;h5 id=&#34;agent记忆相关研究进展&#34;&gt;&lt;strong&gt;agent记忆相关研究进展&lt;/strong&gt;&lt;/h5&gt;
&lt;p&gt;上面提到RL微调，就再展开谈一下在agent在记忆管理方向的相关研究。agent记忆管理是一个很复杂的问题，从工程角度来看，agent的记忆管理可以分为两类技术方案，一种将复杂问题简化，另外一种是自动化。目前相关的记忆研究在这两个方向论文也比较多，找到了几篇比较有代表性的论文。前者是提供系统化/可插拔的记忆管理底座框架，如[5]，A-MEM[6]，后者是将手动/规则维护记忆的方式转为自动化，如Memory‑R1[7]，MEM1[8]，Memp[9]， MEMSearcher[10]等。&lt;/p&gt;</description>
    </item>
    <item>
      <title>服务器测试整理</title>
      <link>http://nb404.cn/posts/%E6%9C%8D%E5%8A%A1%E5%99%A8%E6%B5%8B%E8%AF%95%E6%95%B4%E7%90%86/</link>
      <pubDate>Tue, 11 Nov 2025 00:00:00 +0000</pubDate>
      <guid>http://nb404.cn/posts/%E6%9C%8D%E5%8A%A1%E5%99%A8%E6%B5%8B%E8%AF%95%E6%95%B4%E7%90%86/</guid>
      <description>&lt;h3 id=&#34;一-测试工具服务器&#34;&gt;(一)   测试工具（服务器）&lt;/h3&gt;
&lt;p&gt;/etc/systemd/system/natapp.service&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;编号&lt;/th&gt;
          &lt;th&gt;名称&lt;/th&gt;
          &lt;th&gt;版本&lt;/th&gt;
          &lt;th&gt;用途&lt;/th&gt;
          &lt;th&gt;工具状态&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;1&lt;/td&gt;
          &lt;td&gt;Unixbench&lt;/td&gt;
          &lt;td&gt;5.1.3&lt;/td&gt;
          &lt;td&gt;测试操作系统综合处理能力。&lt;/td&gt;
          &lt;td&gt;开源工具&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;2&lt;/td&gt;
          &lt;td&gt;Spec2006&lt;/td&gt;
          &lt;td&gt;2006&lt;/td&gt;
          &lt;td&gt;测试 CPU 性能。&lt;/td&gt;
          &lt;td&gt;商用软件&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;3&lt;/td&gt;
          &lt;td&gt;iozone&lt;/td&gt;
          &lt;td&gt;4.3.0&lt;/td&gt;
          &lt;td&gt;测试磁盘读写性能（Mb/s），包括随机、顺序读写、最大最小和平均读写速度等。&lt;/td&gt;
          &lt;td&gt;开源工具&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;4&lt;/td&gt;
          &lt;td&gt;Netperf&lt;/td&gt;
          &lt;td&gt;2.7.0&lt;/td&gt;
          &lt;td&gt;测试网络传输速率、网络吞吐率、网络响应时间等，包括 TCP、UDP 流吞吐速率、TCP 请求/响应、丢包率、误包率等。&lt;/td&gt;
          &lt;td&gt;开源工具&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;5&lt;/td&gt;
          &lt;td&gt;SPECjvm2008&lt;/td&gt;
          &lt;td&gt;2008&lt;/td&gt;
          &lt;td&gt;测试 JAVA 虚拟机的性能。&lt;/td&gt;
          &lt;td&gt;开源工具&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;6&lt;/td&gt;
          &lt;td&gt;LMbench&lt;/td&gt;
          &lt;td&gt;3.0&lt;/td&gt;
          &lt;td&gt;测试操作系统性能&lt;/td&gt;
          &lt;td&gt;开源工具&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;7&lt;/td&gt;
          &lt;td&gt;LTP&lt;/td&gt;
          &lt;td&gt;LTP 20160510&lt;/td&gt;
          &lt;td&gt;测试系统稳定性&lt;/td&gt;
          &lt;td&gt;开源工具&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;8&lt;/td&gt;
          &lt;td&gt;Stream&lt;/td&gt;
          &lt;td&gt;5.09&lt;/td&gt;
          &lt;td&gt;测试内存带宽性能&lt;/td&gt;
          &lt;td&gt;开源工具&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;9&lt;/td&gt;
          &lt;td&gt;FIO&lt;/td&gt;
          &lt;td&gt;2.1.10&lt;/td&gt;
          &lt;td&gt;测试磁盘读写性能&lt;/td&gt;
          &lt;td&gt;开源工具&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id=&#34;2-uos&#34;&gt;(2)   uos&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;deb &lt;a href=&#34;http://mirrors.163.com/debian&#34;&gt;http://mirrors.163.com/debian&lt;/a&gt; stable main&lt;/li&gt;
&lt;li&gt;内核更新：&lt;/li&gt;
&lt;li&gt;apt install linux-image* linux-header*&lt;/li&gt;
&lt;li&gt;卸载多余内核：&lt;/li&gt;
&lt;/ol&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-plain&#34; data-lang=&#34;plain&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;apt remove linux-image-5.6.0-2-arm64
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ol&gt;
&lt;li&gt;deb &lt;a href=&#34;https://uos.deepin.cn/uos&#34;&gt;https://uos.deepin.cn/uos&lt;/a&gt; eagle main contrib non-free&lt;/li&gt;
&lt;li&gt;deb &lt;a href=&#34;https://enterprise-packages.chinauos.com/server-enterprise&#34;&gt;https://enterprise-packages.chinauos.com/server-enterprise&lt;/a&gt; fou/sp2 main contrib non-free&lt;/li&gt;
&lt;li&gt;apt-key adv &amp;ndash;keyserver keyserver.ubuntu.com &amp;ndash;recv-keys&lt;/li&gt;
&lt;li&gt;deb &lt;a href=&#34;https://professional-store-packages.chinauos.com/appstore&#34;&gt;https://professional-store-packages.chinauos.com/appstore&lt;/a&gt; eagle appstore&lt;/li&gt;
&lt;li&gt;麒麟v10源：&lt;/li&gt;
&lt;/ol&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-plain&#34; data-lang=&#34;plain&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;deb http://archive.kylinos.cn/kylin/KYLIN-ALL 10.0 main restricted universe multiverse
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;deb http://archive.kylinos.cn/kylin/partner juniper main
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ol&gt;
&lt;li&gt;定制版uos：&lt;/li&gt;
&lt;/ol&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-dockerfile&#34; data-lang=&#34;dockerfile&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;mkdir /tmp/livecd&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;mount -o loop uos*.iso /tmp/livecd&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;mkdir -p livecd/cd&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;rsync --exclude&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;/live/filesystem.squashfs -a /tmp/livecd/ livecd/cd&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;mkdir livecd/squashfs&lt;span style=&#34;color:#f92672&#34;&gt;&amp;amp;&amp;amp;&lt;/span&gt;mkdir livecd/custom&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;modprobe squashfs&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;mount -t squashfs -o loop /tmp/livecd/live/filesystem.squashfs livecd/squashfs&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;cp -a livecd/squashfs/* livecd/custom&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;cp /etc/resolv.conf livecd/custom/etc/&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;cp /etc/apt/sources.list livecd/custom/etc/apt/sources.list&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;chroot livecd/custom apt install xrdp htop gnome-disk*&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;rm -rf livecd/custom/recovery*&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;mksquashfs livecd/custom ./filesystem.squashfs &lt;span style=&#34;color:#f92672&#34;&gt;&amp;amp;&amp;amp;&lt;/span&gt; chmod -R &lt;span style=&#34;color:#ae81ff&#34;&gt;777&lt;/span&gt; ./*.squashfs&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ol&gt;
&lt;li&gt;uos无需激活即可root：&lt;/li&gt;
&lt;/ol&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-plain&#34; data-lang=&#34;plain&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;nano /etc/pam.d/su
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;#auth    requisite           deepin_security_verify.so
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ol&gt;
&lt;li&gt;命令行激活试用：uos&lt;/li&gt;
&lt;/ol&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-plain&#34; data-lang=&#34;plain&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;uos-activator-cmd -t
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ol&gt;
&lt;li&gt;1&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&#34;3-unixbench&#34;&gt;(3) unixbench&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;wget &lt;a href=&#34;http://github.itzmx.com/1265578519/unixbench/master/5.1.3/unixbench.sh&#34;&gt;http://github.itzmx.com/1265578519/unixbench/master/5.1.3/unixbench.sh&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;chmod 777 *.sh &amp;amp;&amp;amp; ./unixbench.sh&lt;/li&gt;
&lt;li&gt;多核的话改一下run文件，第 109,110,111,112 行修改数字为当前系统 CPU 核数，然后./Run -c 核数&lt;/li&gt;
&lt;li&gt;nano Makefile ，47行&lt;/li&gt;
&lt;/ol&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-plain&#34; data-lang=&#34;plain&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;1GL_LIBS = -lGL -lXext -lX11 lm
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ol&gt;
&lt;li&gt;nano Run，111行&lt;/li&gt;
&lt;/ol&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-plain&#34; data-lang=&#34;plain&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;# &amp;#39;3d&amp;#39;  =&amp;gt; { &amp;#39;name&amp;#39; =&amp;gt; &amp;#34;3D Graphics Benchmarks&amp;#34;,&amp;#39;maxCopies&amp;#39; =&amp;gt; 8 },
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ol&gt;
&lt;li&gt;make all &amp;amp;&amp;amp; ./Run graphics&lt;/li&gt;
&lt;li&gt;1&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&#34;4iozone&#34;&gt;(4) iozone&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;wget &lt;a href=&#34;http://www.iozone.org/src/current/iozone3_487.tar&#34;&gt;http://www.iozone.org/src/current/iozone3_487.tar&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;tar -xvf iozone3_487.tar&lt;/li&gt;
&lt;li&gt;cd iozone3_487/src/current/&lt;/li&gt;
&lt;li&gt;make linux&lt;/li&gt;
&lt;li&gt;./iozone -a -i 0 -i 1 -i 2 -f /mnt/testfile -r 16m -s 8G | tee -a iozone.log&lt;/li&gt;
&lt;li&gt;./iozone -a -i 0 -i 1 -i 2 -f /mnt/testfile -r 16m -s 16G | tee -a iozone.log&lt;/li&gt;
&lt;li&gt;./iozone -a -i 0 -i 1 -i 2 -f /mnt/testfile -r 16m -s 32G | tee -a iozone.log&lt;/li&gt;
&lt;li&gt;wget&lt;a href=&#34;https://gitee.com/haolixu/test/raw/master/fio.sh&#34;&gt;https://gitee.com/haolixu/test/raw/master/iozone.sh&lt;/a&gt;&amp;amp;&amp;amp; bash iozone.sh&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&#34;5远程桌面&#34;&gt;(5) 远程桌面&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;apt install xrdp&lt;/li&gt;
&lt;li&gt;apt install gnome*&lt;/li&gt;
&lt;li&gt;echo “gnome-session &amp;ndash;session=gnome-classic” &amp;gt; ~/.xsession&lt;/li&gt;
&lt;li&gt;/etc/init.d/xrdp start&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;19.12.23更新！&lt;/p&gt;</description>
    </item>
    <item>
      <title>Agent接口测试中实践</title>
      <link>http://nb404.cn/posts/agent%E6%8E%A5%E5%8F%A3%E6%B5%8B%E8%AF%95%E4%B8%AD%E5%AE%9E%E8%B7%B5/</link>
      <pubDate>Mon, 10 Nov 2025 00:00:00 +0000</pubDate>
      <guid>http://nb404.cn/posts/agent%E6%8E%A5%E5%8F%A3%E6%B5%8B%E8%AF%95%E4%B8%AD%E5%AE%9E%E8%B7%B5/</guid>
      <description>&lt;p&gt;在接口测试中实现“自动解析文档→生成用例”的核心是通过**“文档结构化解析→元数据提取→场景规则映射→用例自动化编排”**的全流程自动化，结合的语义理解与测试领域知识，将非结构化的接口文档转化为覆盖全面、可直接执行的测试用例。&lt;/p&gt;
&lt;h4 id=&#34;一整体流程框架&#34;&gt;一、整体流程框架&lt;/h4&gt;
&lt;p&gt;整个过程分为&lt;strong&gt;4个核心阶段&lt;/strong&gt;，由“接口解析Agent”和“用例生成Agent”协同完成，依赖“文档同步模块”“元数据存储模块”“规则引擎”三大支撑组件：&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code class=&#34;language-mermaid&#34; data-lang=&#34;mermaid&#34;&gt;graph TD
    subgraph 准备阶段
        A[接口文档同步] --&amp;gt; A1[对接Swagger/OpenAPI]
        A --&amp;gt; A2[监听文档变更（Webhook）]
        A --&amp;gt; A3[历史文档版本管理]
    end
    
    subgraph 解析阶段（接口解析Agent）
        B[元数据提取] --&amp;gt; B1[基础信息：路径/方法/描述]
        B --&amp;gt; B2[参数信息：类型/约束/位置]
        B --&amp;gt; B3[响应信息：状态码/schema/字段]
        B --&amp;gt; B4[依赖关系：前置接口/动态参数]
    end
    
    subgraph 生成阶段（用例生成Agent）
        C[场景规则映射] --&amp;gt; C1[正向场景：合法参数组合]
        C --&amp;gt; C2[异常场景：参数校验失败]
        C --&amp;gt; C3[边界场景：临界值/极限值]
        C --&amp;gt; C4[依赖场景：接口调用链]
    end
    
    subgraph 输出阶段
        D[用例格式化] --&amp;gt; D1[Postman/JMeter格式]
        D --&amp;gt; D2[pytest脚本格式]
        D --&amp;gt; D3[测试管理工具格式（TestRail）]
    end
&lt;/code&gt;&lt;/pre&gt;&lt;h4 id=&#34;二具体步骤与技术实现&#34;&gt;二、具体步骤与技术实现&lt;/h4&gt;
&lt;h5 id=&#34;阶段1同步确保解析源实时准确&#34;&gt;阶段1：同步——确保解析源实时准确&lt;/h5&gt;
&lt;p&gt;&lt;strong&gt;目标&lt;/strong&gt;：获取最新接口文档（如/OpenAPI），并监控变更以触发后续解析流程。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;具体操作&lt;/strong&gt;：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;文档接入方式&lt;/strong&gt;：&lt;/li&gt;
&lt;/ol&gt;
&lt;ul&gt;
&lt;li&gt;主动拉取：通过定时任务（如每小时）调用接口文档地址（如&lt;code&gt;https://api.example.com/v3/api-docs&lt;/code&gt;），获取JSON格式的Swagger文档；&lt;/li&gt;
&lt;li&gt;被动接收：配置Git Webhook，当接口文档代码（如后端项目的Swagger配置）提交时，自动推送最新文档至Agent系统。&lt;/li&gt;
&lt;/ul&gt;
&lt;ol start=&#34;2&#34;&gt;
&lt;li&gt;&lt;strong&gt;文档版本管理&lt;/strong&gt;：
将每次获取的文档存储在版本库（如Git），标记版本号（如&lt;code&gt;v2.3.1&lt;/code&gt;），便于后续对比变更（如参数新增/删除）。&lt;/li&gt;
&lt;/ol&gt;
&lt;h5 id=&#34;阶段2元接口解析agent核心工作&#34;&gt;阶段2：元（接口解析Agent核心工作）&lt;/h5&gt;
&lt;p&gt;&lt;strong&gt;目标&lt;/strong&gt;：从接口文档中提取结构化元数据（基础信息、参数、响应、依赖），为用例生成提供“原材料”。&lt;/p&gt;</description>
    </item>
    <item>
      <title>CSDN博客文章批量导出</title>
      <link>http://nb404.cn/posts/csdn%E5%8D%9A%E5%AE%A2%E6%96%87%E7%AB%A0%E6%89%B9%E9%87%8F%E5%AF%BC%E5%87%BA/</link>
      <pubDate>Wed, 22 Oct 2025 00:00:00 +0000</pubDate>
      <guid>http://nb404.cn/posts/csdn%E5%8D%9A%E5%AE%A2%E6%96%87%E7%AB%A0%E6%89%B9%E9%87%8F%E5%AF%BC%E5%87%BA/</guid>
      <description>&lt;h3 id=&#34;脚本依赖环境安装指南&#34;&gt;脚本依赖环境安装指南&lt;/h3&gt;
&lt;p&gt;以下是为运行 CSDN 博客导出脚本（如 &lt;code&gt;export_csdn_cf.py&lt;/code&gt;）而准备 Linux 系统环境所执行的一系列有效命令。这些命令主要用于安装  运行时、及其依赖库。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;# 1. 安装 Python 包管理工具 pip3&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;apt install python3-pip -y
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&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:#75715e&#34;&gt;# 2. 安装文件传输和解压工具&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;apt -y install lrzsz                    &lt;span style=&#34;color:#75715e&#34;&gt;# 提供 rz/sz 命令，用于终端文件上传下载&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;apt -y install zip unzip                &lt;span style=&#34;color:#75715e&#34;&gt;# 用于处理 zip 和 unzip 格式的压缩包&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&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:#75715e&#34;&gt;# 3. 安装重命名工具&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;apt install rename                      &lt;span style=&#34;color:#75715e&#34;&gt;# 强大的 Perl 脚本，用于批量重命名文件&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&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:#75715e&#34;&gt;# 4. 配置 Google Chrome 浏览器安装源 (使用清华镜像加速)&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:#75715e&#34;&gt;#    下载并添加 Google 的 GPG 公钥以验证软件包完整性&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | sudo apt-key add -
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;#或者上传执行如下的命令&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:#75715e&#34;&gt;# cat linux_signing_key.pub |sudo apt-key add -&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Warning: apt-key is deprecated. Manage keyring files in trusted.gpg.d instead &lt;span style=&#34;color:#f92672&#34;&gt;(&lt;/span&gt;see apt-key&lt;span style=&#34;color:#f92672&#34;&gt;(&lt;/span&gt;8&lt;span style=&#34;color:#f92672&#34;&gt;))&lt;/span&gt;.
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;OK
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&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:#75715e&#34;&gt;#    将清华镜像的 Chrome 源写入 APT 源列表&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;echo &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;deb [arch=amd64] https://mirrors.tuna.tsinghua.edu.cn/google-chrome/deb/ stable main&amp;#34;&lt;/span&gt; &amp;gt; /etc/apt/sources.list.d/google-chrome.list
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&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:#75715e&#34;&gt;# 5. 更新软件包索引并安装 Chrome 及其系统依赖&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;apt update                            &lt;span style=&#34;color:#75715e&#34;&gt;# 同步最新的软件包列表&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:#75715e&#34;&gt;# 安装稳定版 Google Chrome&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:#75715e&#34;&gt;# 下载 &amp;amp;&amp;amp; dpkg -i去安装&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;# 修复相关的依赖&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;apt --fix-broken install -y
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&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:#75715e&#34;&gt;# 6. 安装 Chrome 运行所需的底层库 (确保 headless 模式正常工作)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;apt install -y &lt;span style=&#34;color:#ae81ff&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    wget &lt;span style=&#34;color:#ae81ff&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    unzip &lt;span style=&#34;color:#ae81ff&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    libxss1 &lt;span style=&#34;color:#ae81ff&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    libappindicator1 &lt;span style=&#34;color:#ae81ff&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    libindicator7 &lt;span style=&#34;color:#ae81ff&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    fonts-liberation &lt;span style=&#34;color:#ae81ff&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    libasound2 &lt;span style=&#34;color:#ae81ff&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    libatk-bridge2.0-0 &lt;span style=&#34;color:#ae81ff&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    libgtk-3-0 &lt;span style=&#34;color:#ae81ff&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    libdrm-common
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&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:#75715e&#34;&gt;# 7. （可选）修复可能存在的依赖问题&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;apt --fix-broken install -y           &lt;span style=&#34;color:#75715e&#34;&gt;# 如果之前的安装出现中断或依赖错误，此命令可尝试自动修复&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h4 id=&#34;说明&#34;&gt;说明：&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;虽然核心抓取脚本&lt;code&gt;export_csdn_cf.py&lt;/code&gt;使用的是&lt;code&gt;cloudscraper&lt;/code&gt;，它不直接依赖浏览器，但如果您后续计划使用&lt;code&gt;selenium&lt;/code&gt;或&lt;code&gt;playwright&lt;/code&gt;等基于真实浏览器的自动化工具来应对更复杂的反爬机制（如 Turnstile 验证码），那么安装 Chrome 是必需的。&lt;/li&gt;
&lt;li&gt;此处列出的&lt;code&gt;lib*&lt;/code&gt;库是 Chrome 在无头（headless）模式下运行时常见的依赖项，能避免因缺少图形或音频库而导致的启动失败。&lt;/li&gt;
&lt;li&gt;使用清华（TUNA）镜像可以显著加快在境内网络环境下下载 Chrome 的速度。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;步骤一安装-pip3-依赖&#34;&gt;步骤一：安装 pip3 依赖&lt;/h3&gt;
&lt;p&gt;在开始编写和执行脚本之前，我们需要先配置好运行环境并安装必要的第三方库。&lt;/p&gt;</description>
    </item>
    <item>
      <title>ARM硬件测试面试题</title>
      <link>http://nb404.cn/posts/arm%E7%A1%AC%E4%BB%B6%E6%B5%8B%E8%AF%95%E9%9D%A2%E8%AF%95%E9%A2%98/</link>
      <pubDate>Fri, 01 Aug 2025 00:00:00 +0000</pubDate>
      <guid>http://nb404.cn/posts/arm%E7%A1%AC%E4%BB%B6%E6%B5%8B%E8%AF%95%E9%9D%A2%E8%AF%95%E9%A2%98/</guid>
      <description>&lt;ol&gt;
&lt;li&gt;开发板有哪些存储，存储如何测试&lt;/li&gt;
&lt;li&gt;如何决定测试标准，和老板开发开会决定还是用行业标准&lt;/li&gt;
&lt;li&gt;你觉得你有什么长处在测试方面&lt;/li&gt;
&lt;li&gt;蓝牙如何测试，命令是什么&lt;/li&gt;
&lt;li&gt;自动测试有哪些方面的应用&lt;/li&gt;
&lt;li&gt;串口是什么协议，WiFi有哪些协议&lt;/li&gt;
&lt;li&gt;WiFi如何测试&lt;/li&gt;
&lt;li&gt;USB接口如何测试&lt;/li&gt;
&lt;li&gt;固件如何测试&lt;/li&gt;
&lt;li&gt;python深拷贝和浅拷贝区别&lt;/li&gt;
&lt;li&gt;python进程通信有哪些&lt;/li&gt;
&lt;/ol&gt;
&lt;hr&gt;
&lt;blockquote&gt;
&lt;p&gt;原文链接: &lt;a href=&#34;https://blog.csdn.net/lixusocool/article/details/149785300?spm=1001.2014.3001.5502&#34;&gt;ARM硬件测试面试题&lt;/a&gt;
作者: lixusocool&lt;/p&gt;
&lt;/blockquote&gt;</description>
    </item>
    <item>
      <title>从单 Agent 到多 Agent 的案例落地实践</title>
      <link>http://nb404.cn/posts/%E4%BB%8E%E5%8D%95_agent_%E5%88%B0%E5%A4%9A_agent_%E7%9A%84%E6%A1%88%E4%BE%8B%E8%90%BD%E5%9C%B0%E5%AE%9E%E8%B7%B5/</link>
      <pubDate>Mon, 02 Jun 2025 00:00:00 +0000</pubDate>
      <guid>http://nb404.cn/posts/%E4%BB%8E%E5%8D%95_agent_%E5%88%B0%E5%A4%9A_agent_%E7%9A%84%E6%A1%88%E4%BE%8B%E8%90%BD%E5%9C%B0%E5%AE%9E%E8%B7%B5/</guid>
      <description>&lt;p&gt;大家好，我是玄姐。&lt;/p&gt;
&lt;p&gt;▼最近直播超级多，预约保你有收获&lt;/p&gt;
&lt;p&gt;关于 Agent 的定义目前还没有形成共识，目前有3个代表性的定义：&lt;/p&gt;
&lt;p&gt;流行最广的是前 OpenAI 研究与安全副总裁 Lilian Weng 对 Agent 的定义：Agent = LLM + Planning + Tools + Memory。&lt;/p&gt;
&lt;p&gt;&lt;img loading=&#34;lazy&#34; src=&#34;http://nb404.cn/posts/images/e757333072c125bd0c54b950372b2945.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;除此之外，LangChain 对 Agent 的定义为：使用 LLM 决定应用程序控制流的系统。&lt;/p&gt;
&lt;p&gt;&lt;img alt=&#34;Agent Types&#34; loading=&#34;lazy&#34; src=&#34;http://nb404.cn/posts/images/0010fdccaae1d6b1280a256bd8539b5b.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;OpenAI 对 Agent 的定义是：Agent 是能够代表用户自主完成任务的系统。&lt;/p&gt;
&lt;p&gt;&lt;img loading=&#34;lazy&#34; src=&#34;http://nb404.cn/posts/images/f3d9d42503f64bc7abdf1f12933895c8.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;尽管目前对 Agent 的定义还没形成共识，但是大家对 Agentic System（智能系统）基本的共识是：Agentic System 是一种有目标、基于环境的决策系统。与 LLM 最大的区别在于，Agentic System 可以与现实世界交互，从感知环境开始，做出决策并执行，影响环境，然后基于反馈调整，不断持续迭代循环。&lt;/p&gt;
&lt;p&gt;&lt;img loading=&#34;lazy&#34; src=&#34;http://nb404.cn/posts/images/aff439c3a8dfb100cafb830831c99fe3.jpeg&#34;&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&lt;em&gt;&lt;strong&gt;—&lt;em&gt;1&lt;/em&gt;&lt;/strong&gt;&lt;/em&gt;—&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Agentic System 架构设计剖析&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;一个完整的 Agentic System 架构包含四个核心组成部分：&lt;/p&gt;
&lt;p&gt;&lt;img loading=&#34;lazy&#34; src=&#34;http://nb404.cn/posts/images/daa60a90b24dccd313bbebb50b993dac.png&#34;&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;感知：为大模型构建上下文信息。常见的方法包括检索增强生成（RAG），查询结构化数据（比如：数据库、网页内容）或者检索历史记录（比如：长短期记忆）。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;决策：本质上是 Planning 规划过程。可以通过规则引擎（Workflow）实现，也可以由大语言模型（LLM）驱动（自主 Agent），或者借助外部规划器。在设计时需要权衡泛化能力和准确性&amp;ndash;LLM 驱动的决策泛化能力强，但不确定性较高；而基于规则的工作流泛化能力较弱，但更可控。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;执行：通过调用工具来改变环境。包括 API 调用（比如：REST、RPC、SQL、函数调用）或与图形软件的集成（比如：Anthropic 的 Computer use）。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;反馈：用于评估和迭代的机制。反馈可以通过人工标注、规则或模型生成，更新可以是离线的或在线的。&lt;/p&gt;</description>
    </item>
    <item>
      <title>使用cloudfare实现免费内网穿透</title>
      <link>http://nb404.cn/posts/%E4%BD%BF%E7%94%A8cloudfare%E5%AE%9E%E7%8E%B0%E5%85%8D%E8%B4%B9%E5%86%85%E7%BD%91%E7%A9%BF%E9%80%8F/</link>
      <pubDate>Fri, 24 May 2024 00:00:00 +0000</pubDate>
      <guid>http://nb404.cn/posts/%E4%BD%BF%E7%94%A8cloudfare%E5%AE%9E%E7%8E%B0%E5%85%8D%E8%B4%B9%E5%86%85%E7%BD%91%E7%A9%BF%E9%80%8F/</guid>
      <description>&lt;ol&gt;
&lt;li&gt;我系统是ubuntu18.04.6 LTS&lt;/li&gt;
&lt;li&gt;执行以下命令：&lt;/li&gt;
&lt;li&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;curl -L --output cloudflared.deb https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64.deb
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sudo dpkg -i cloudflared.deb
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;cloudflared tunnel login
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;#这里会打开浏览器窗口登录cloudfare，我这里是之前绑定了域名，建议大家也绑定域名&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;cloudflared tunnel create vm1
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;#这里会生成下面所需的json文件&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;mkdir ./cloudflared &lt;span style=&#34;color:#f92672&#34;&gt;&amp;amp;&amp;amp;&lt;/span&gt; cd cloudflared/
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;nano config.yaml
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;#添加以下内容&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;tunnels: vm1
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;credentials-file: /home/lixu/.cloudflared/95b49dcc-XXXX.json
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;protocol: http2
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;ingress:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  - hostname: vm.nb404.cn
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    service: http://127.0.0.1:80
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    originRequest:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      disableChunkedEncoding: true
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      noTLSVerify: true
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  - service: http_status:404
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;cloudflared tunnel --config config.yaml route dns vm1 vm.nb404.cn
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;#这句命令会给域名增加vm的dns记录&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;cloudflared tunnel --config ./config.yaml run vm1
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;#这里就可以访问了，大家记得改成自己的域名&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;enjoy&lt;/p&gt;</description>
    </item>
    <item>
      <title>解决ubuntu20&#43;不能在vmare17复制粘贴的麻烦解决方案</title>
      <link>http://nb404.cn/posts/%E8%A7%A3%E5%86%B3ubuntu20&#43;%E4%B8%8D%E8%83%BD%E5%9C%A8vmare17%E5%A4%8D%E5%88%B6%E7%B2%98%E8%B4%B4%E7%9A%84%E9%BA%BB%E7%83%A6%E8%A7%A3%E5%86%B3%E6%96%B9%E6%A1%88/</link>
      <pubDate>Sat, 18 May 2024 00:00:00 +0000</pubDate>
      <guid>http://nb404.cn/posts/%E8%A7%A3%E5%86%B3ubuntu20&#43;%E4%B8%8D%E8%83%BD%E5%9C%A8vmare17%E5%A4%8D%E5%88%B6%E7%B2%98%E8%B4%B4%E7%9A%84%E9%BA%BB%E7%83%A6%E8%A7%A3%E5%86%B3%E6%96%B9%E6%A1%88/</guid>
      <description>&lt;ol&gt;
&lt;li&gt;先安装ubuntu18的版本，使用典型安装，因为它会自动安装open vm工具实现复制粘贴桌面自动大小功能，同时不要尝试手动安装open vm工具，我试过在ubuntu20+上面试过 没用。&lt;img loading=&#34;lazy&#34; src=&#34;http://nb404.cn/posts/images/33f7da4551d70987c3d389e7068c9ead.png&#34;&gt;&lt;/li&gt;
&lt;li&gt;输入相关信息 直接自动化一键安装。&lt;/li&gt;
&lt;li&gt;重启后，执行以下命令升级系统，这个阶段可能需要等30min+&lt;/li&gt;
&lt;/ol&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-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;&lt;span style=&#34;color:#a6e22e&#34;&gt;sudo&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;apt&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;upgrade&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:#a6e22e&#34;&gt;sudo&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;do&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;release&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;upgrade&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;c&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ol start=&#34;4&#34;&gt;
&lt;li&gt;重启  即可&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img loading=&#34;lazy&#34; src=&#34;http://nb404.cn/posts/images/f4c2472908275cecb3c27b82727baa8c.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;24.5.19更新：&lt;/p&gt;
&lt;p&gt;缺点：snap install node  会导致nodejs无法使用，缺少依赖  &lt;/p&gt;
&lt;hr&gt;
&lt;hr&gt;
&lt;hr&gt;
&lt;hr&gt;
&lt;hr&gt;
&lt;hr&gt;
&lt;hr&gt;
&lt;hr&gt;
&lt;hr&gt;
&lt;hr&gt;
&lt;hr&gt;
&lt;blockquote&gt;
&lt;p&gt;原文链接: &lt;a href=&#34;https://blog.csdn.net/lixusocool/article/details/139016176?spm=1001.2014.3001.5502&#34;&gt;解决ubuntu20+不能在vmare17复制粘贴的麻烦解决方案&lt;/a&gt;
作者: lixusocool&lt;/p&gt;
&lt;/blockquote&gt;</description>
    </item>
    <item>
      <title>nano在centos7下中文乱码</title>
      <link>http://nb404.cn/posts/nano%E5%9C%A8centos7%E4%B8%8B%E4%B8%AD%E6%96%87%E4%B9%B1%E7%A0%81/</link>
      <pubDate>Fri, 17 May 2024 00:00:00 +0000</pubDate>
      <guid>http://nb404.cn/posts/nano%E5%9C%A8centos7%E4%B8%8B%E4%B8%AD%E6%96%87%E4%B9%B1%E7%A0%81/</guid>
      <description>&lt;p&gt;&lt;img loading=&#34;lazy&#34; src=&#34;http://nb404.cn/posts/images/e451ca6f3e1c6d249a0905d23c2aedf0.png&#34;&gt;&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-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;&lt;span style=&#34;color:#a6e22e&#34;&gt;nano&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;~&lt;/span&gt;&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;/.bashrc&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&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:#66d9ef&#34;&gt;export&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;LC_ALL&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;en_US&lt;/span&gt;.&lt;span style=&#34;color:#a6e22e&#34;&gt;UTF&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;8&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:#66d9ef&#34;&gt;export&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;LANG&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;en_US&lt;/span&gt;.&lt;span style=&#34;color:#a6e22e&#34;&gt;UTF&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;8&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;保存退出 ，重新登录终端让修改生效！&lt;img loading=&#34;lazy&#34; src=&#34;http://nb404.cn/posts/images/0a8761893e8b6c1320229ffabedfd1d5.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;&lt;img loading=&#34;lazy&#34; src=&#34;http://nb404.cn/posts/images/f4c2472908275cecb3c27b82727baa8c.png&#34;&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;blockquote&gt;
&lt;p&gt;原文链接: &lt;a href=&#34;https://blog.csdn.net/lixusocool/article/details/138995486?spm=1001.2014.3001.5502&#34;&gt;nano在centos7下中文乱码&lt;/a&gt;
作者: lixusocool&lt;/p&gt;
&lt;/blockquote&gt;</description>
    </item>
    <item>
      <title>aws的linux其他端口无法访问问题</title>
      <link>http://nb404.cn/posts/aws%E7%9A%84linux%E5%85%B6%E4%BB%96%E7%AB%AF%E5%8F%A3%E6%97%A0%E6%B3%95%E8%AE%BF%E9%97%AE%E9%97%AE%E9%A2%98/</link>
      <pubDate>Thu, 16 May 2024 00:00:00 +0000</pubDate>
      <guid>http://nb404.cn/posts/aws%E7%9A%84linux%E5%85%B6%E4%BB%96%E7%AB%AF%E5%8F%A3%E6%97%A0%E6%B3%95%E8%AE%BF%E9%97%AE%E9%97%AE%E9%A2%98/</guid>
      <description>&lt;ol&gt;
&lt;li&gt;安全组设置：&lt;img loading=&#34;lazy&#34; src=&#34;http://nb404.cn/posts/images/c6834a6d4afe437d4af29bbeb40b3a6e.png&#34;&gt;&lt;/li&gt;
&lt;li&gt;一定要关闭本地代理才能访问，比如clash！&lt;/li&gt;
&lt;/ol&gt;
&lt;hr&gt;
&lt;hr&gt;
&lt;hr&gt;
&lt;p&gt;&lt;img loading=&#34;lazy&#34; src=&#34;http://nb404.cn/posts/images/f4c2472908275cecb3c27b82727baa8c.png&#34;&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;blockquote&gt;
&lt;p&gt;原文链接: &lt;a href=&#34;https://blog.csdn.net/lixusocool/article/details/138953071?spm=1001.2014.3001.5502&#34;&gt;aws的linux其他端口无法访问问题&lt;/a&gt;
作者: lixusocool&lt;/p&gt;
&lt;/blockquote&gt;</description>
    </item>
    <item>
      <title>linux的ollama卸载</title>
      <link>http://nb404.cn/posts/linux%E7%9A%84ollama%E5%8D%B8%E8%BD%BD/</link>
      <pubDate>Sun, 05 May 2024 00:00:00 +0000</pubDate>
      <guid>http://nb404.cn/posts/linux%E7%9A%84ollama%E5%8D%B8%E8%BD%BD/</guid>
      <description>&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-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;  &lt;span style=&#34;color:#a6e22e&#34;&gt;sudo&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;systemctl&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;stop&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;ollama&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:#a6e22e&#34;&gt;sudo&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;systemctl&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;disable&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;ollama&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:#a6e22e&#34;&gt;sudo&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;rm&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;etc&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;systemd&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;system&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;ollama&lt;/span&gt;.&lt;span style=&#34;color:#a6e22e&#34;&gt;service&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:#a6e22e&#34;&gt;sudo&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;rm&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;$&lt;/span&gt;(&lt;span style=&#34;color:#a6e22e&#34;&gt;which&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;ollama&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:#a6e22e&#34;&gt;sudo&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;rm&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;r&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;usr&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;share&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;ollama&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:#a6e22e&#34;&gt;sudo&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;userdel&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;ollama&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:#a6e22e&#34;&gt;sudo&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;groupdel&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;ollama&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;我是用官方安装的，卸载比较麻烦&lt;/p&gt;
&lt;p&gt;建议 用  install ollama&lt;/p&gt;
&lt;p&gt;卸载也方便snap remove&lt;/p&gt;
&lt;hr&gt;
&lt;blockquote&gt;
&lt;p&gt;原文链接: &lt;a href=&#34;https://blog.csdn.net/lixusocool/article/details/138470183?spm=1001.2014.3001.5502&#34;&gt;linux的ollama卸载&lt;/a&gt;
作者: lixusocool&lt;/p&gt;
&lt;/blockquote&gt;</description>
    </item>
    <item>
      <title>解决docker容器不能问本机网络</title>
      <link>http://nb404.cn/posts/%E8%A7%A3%E5%86%B3docker%E5%AE%B9%E5%99%A8%E4%B8%8D%E8%83%BD%E9%97%AE%E6%9C%AC%E6%9C%BA%E7%BD%91%E7%BB%9C/</link>
      <pubDate>Fri, 03 May 2024 00:00:00 +0000</pubDate>
      <guid>http://nb404.cn/posts/%E8%A7%A3%E5%86%B3docker%E5%AE%B9%E5%99%A8%E4%B8%8D%E8%83%BD%E9%97%AE%E6%9C%AC%E6%9C%BA%E7%BD%91%E7%BB%9C/</guid>
      <description>&lt;p&gt;查看网络：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-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;&lt;span style=&#34;color:#a6e22e&#34;&gt;docker&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;network&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;list&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img loading=&#34;lazy&#34; src=&#34;http://nb404.cn/posts/images/e311d216d3223b5fe81b6ea1fcd6761b.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;选择一个bridge网络，重新部署容器的时候加进去&amp;ndash; 1panel-network：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-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; &lt;span style=&#34;color:#a6e22e&#34;&gt;docker&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;run&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;d&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;p&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;3001&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;8080&lt;/span&gt;  &lt;span style=&#34;color:#f92672&#34;&gt;--&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;network&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;panel&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;network&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;这样容器就可以引入本机网络的或者其他端口，建议关闭&lt;/p&gt;
&lt;hr&gt;
&lt;blockquote&gt;
&lt;p&gt;原文链接: &lt;a href=&#34;https://blog.csdn.net/lixusocool/article/details/138425922?spm=1001.2014.3001.5502&#34;&gt;解决docker容器不能问本机网络&lt;/a&gt;
作者: lixusocool&lt;/p&gt;
&lt;/blockquote&gt;</description>
    </item>
  </channel>
</rss>
