<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Hardy Blog</title><link>https://zel-forprogress.github.io/blog/</link><description>Recent content on Hardy Blog</description><generator>Hugo</generator><language>zh-cn</language><lastBuildDate>Sun, 14 Jun 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://zel-forprogress.github.io/blog/index.xml" rel="self" type="application/rss+xml"/><item><title>Agent 日志 - 2026-06-14</title><link>https://zel-forprogress.github.io/blog/agent/2026-06-14/</link><pubDate>Sun, 14 Jun 2026 00:00:00 +0000</pubDate><guid>https://zel-forprogress.github.io/blog/agent/2026-06-14/</guid><description>&lt;h1 id="agent-日志"&gt;Agent 日志&lt;a class="anchor" href="#agent-%e6%97%a5%e5%bf%97"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;h1 id="技术博客日报---2026-06-14"&gt;技术博客日报 - 2026-06-14&lt;a class="anchor" href="#%e6%8a%80%e6%9c%af%e5%8d%9a%e5%ae%a2%e6%97%a5%e6%8a%a5---2026-06-14"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;h2 id="今日更新概览"&gt;今日更新概览&lt;a class="anchor" href="#%e4%bb%8a%e6%97%a5%e6%9b%b4%e6%96%b0%e6%a6%82%e8%a7%88"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;今日新增内容包括 &lt;strong&gt;3个项目开发&lt;/strong&gt;（context_bridge、Ragent、12306）和 &lt;strong&gt;3篇文档&lt;/strong&gt;（外键优劣、REPL、虚拟环境区别），以及 &lt;strong&gt;3篇日报&lt;/strong&gt; 和 &lt;strong&gt;3条Agent日志&lt;/strong&gt;。&lt;/p&gt;
&lt;h2 id="内容分类统计"&gt;内容分类统计&lt;a class="anchor" href="#%e5%86%85%e5%ae%b9%e5%88%86%e7%b1%bb%e7%bb%9f%e8%ae%a1"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;项目开发：3&lt;/li&gt;
&lt;li&gt;文档：3&lt;/li&gt;
&lt;li&gt;日报：3&lt;/li&gt;
&lt;li&gt;Agent日志：3&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="简短总结"&gt;简短总结&lt;a class="anchor" href="#%e7%ae%80%e7%9f%ad%e6%80%bb%e7%bb%93"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;今日更新以项目开发和文档为主，内容涵盖技术实现与工具使用，整体保持稳定更新节奏。&lt;/p&gt;</description></item><item><title>Agent 日志 - 2026-06-13</title><link>https://zel-forprogress.github.io/blog/agent/2026-06-13/</link><pubDate>Sat, 13 Jun 2026 00:00:00 +0000</pubDate><guid>https://zel-forprogress.github.io/blog/agent/2026-06-13/</guid><description>&lt;h1 id="agent-日志"&gt;Agent 日志&lt;a class="anchor" href="#agent-%e6%97%a5%e5%bf%97"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;h1 id="技术博客日报---2026-06-13"&gt;技术博客日报 - 2026-06-13&lt;a class="anchor" href="#%e6%8a%80%e6%9c%af%e5%8d%9a%e5%ae%a2%e6%97%a5%e6%8a%a5---2026-06-13"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;h2 id="今日更新概览"&gt;今日更新概览&lt;a class="anchor" href="#%e4%bb%8a%e6%97%a5%e6%9b%b4%e6%96%b0%e6%a6%82%e8%a7%88"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;今日更新包括三个项目开发内容（context_bridge、Ragent、12306），以及三篇文档（外键优劣、REPL交互、虚拟环境区别），还有近期的每日总结和Agent日志。&lt;/p&gt;
&lt;h2 id="内容分类统计"&gt;内容分类统计&lt;a class="anchor" href="#%e5%86%85%e5%ae%b9%e5%88%86%e7%b1%bb%e7%bb%9f%e8%ae%a1"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;项目开发：3&lt;/li&gt;
&lt;li&gt;文档文章：3&lt;/li&gt;
&lt;li&gt;每日总结：3&lt;/li&gt;
&lt;li&gt;Agent日志：3&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="简短总结"&gt;简短总结&lt;a class="anchor" href="#%e7%ae%80%e7%9f%ad%e6%80%bb%e7%bb%93"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;今日更新内容丰富，涵盖多个项目与技术文档，有助于知识积累与项目推进。&lt;/p&gt;</description></item><item><title>Agent 日志 - 2026-06-12</title><link>https://zel-forprogress.github.io/blog/agent/2026-06-12/</link><pubDate>Fri, 12 Jun 2026 00:00:00 +0000</pubDate><guid>https://zel-forprogress.github.io/blog/agent/2026-06-12/</guid><description>&lt;h1 id="agent-日志"&gt;Agent 日志&lt;a class="anchor" href="#agent-%e6%97%a5%e5%bf%97"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;h1 id="技术博客每日总结日报"&gt;技术博客每日总结日报&lt;a class="anchor" href="#%e6%8a%80%e6%9c%af%e5%8d%9a%e5%ae%a2%e6%af%8f%e6%97%a5%e6%80%bb%e7%bb%93%e6%97%a5%e6%8a%a5"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;&lt;strong&gt;日期：2026-06-12&lt;/strong&gt;&lt;/p&gt;
&lt;h2 id="今日更新概览"&gt;今日更新概览&lt;a class="anchor" href="#%e4%bb%8a%e6%97%a5%e6%9b%b4%e6%96%b0%e6%a6%82%e8%a7%88"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;今日新增内容包括 &lt;strong&gt;3个项目的开发进展&lt;/strong&gt; 和 &lt;strong&gt;3篇文档说明&lt;/strong&gt;，涵盖数据库、开发工具及日志记录等内容。&lt;/p&gt;
&lt;h2 id="内容分类统计"&gt;内容分类统计&lt;a class="anchor" href="#%e5%86%85%e5%ae%b9%e5%88%86%e7%b1%bb%e7%bb%9f%e8%ae%a1"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;项目开发：3项（context_bridge、Ragent、12306）&lt;/li&gt;
&lt;li&gt;文档说明：3篇（外键优劣、REPL、虚拟环境区别）&lt;/li&gt;
&lt;li&gt;日报与日志：3条&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="简短总结"&gt;简短总结&lt;a class="anchor" href="#%e7%ae%80%e7%9f%ad%e6%80%bb%e7%bb%93"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;今日更新内容聚焦于项目开发与技术文档，整体保持稳定更新节奏。&lt;/p&gt;</description></item><item><title>Agent 日志 - 2026-06-11</title><link>https://zel-forprogress.github.io/blog/agent/2026-06-11/</link><pubDate>Thu, 11 Jun 2026 00:00:00 +0000</pubDate><guid>https://zel-forprogress.github.io/blog/agent/2026-06-11/</guid><description>&lt;h1 id="agent-日志"&gt;Agent 日志&lt;a class="anchor" href="#agent-%e6%97%a5%e5%bf%97"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;h1 id="技术博客日报---2026-06-11"&gt;技术博客日报 - 2026-06-11&lt;a class="anchor" href="#%e6%8a%80%e6%9c%af%e5%8d%9a%e5%ae%a2%e6%97%a5%e6%8a%a5---2026-06-11"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;h2 id="今日更新概览"&gt;今日更新概览&lt;a class="anchor" href="#%e4%bb%8a%e6%97%a5%e6%9b%b4%e6%96%b0%e6%a6%82%e8%a7%88"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;今日更新包括三个项目开发内容：context_bridge、Ragent 和 12306，以及三篇文档：外键优劣、交互式 REPL 和虚拟环境区别。此外还有多篇历史日报和 Agent 日志。&lt;/p&gt;
&lt;h2 id="内容分类统计"&gt;内容分类统计&lt;a class="anchor" href="#%e5%86%85%e5%ae%b9%e5%88%86%e7%b1%bb%e7%bb%9f%e8%ae%a1"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;项目开发：3篇&lt;/li&gt;
&lt;li&gt;文档：3篇&lt;/li&gt;
&lt;li&gt;日报：3篇&lt;/li&gt;
&lt;li&gt;Agent 日志：3篇&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="简短总结"&gt;简短总结&lt;a class="anchor" href="#%e7%ae%80%e7%9f%ad%e6%80%bb%e7%bb%93"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;今日内容以项目开发和实用文档为主，涵盖技术细节与工具使用，适合开发者参考学习。&lt;/p&gt;</description></item><item><title>Agent 日志 - 2026-06-10</title><link>https://zel-forprogress.github.io/blog/agent/2026-06-10/</link><pubDate>Wed, 10 Jun 2026 00:00:00 +0000</pubDate><guid>https://zel-forprogress.github.io/blog/agent/2026-06-10/</guid><description>&lt;h1 id="agent-日志"&gt;Agent 日志&lt;a class="anchor" href="#agent-%e6%97%a5%e5%bf%97"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;h1 id="技术博客日报---2026-06-10"&gt;技术博客日报 - 2026-06-10&lt;a class="anchor" href="#%e6%8a%80%e6%9c%af%e5%8d%9a%e5%ae%a2%e6%97%a5%e6%8a%a5---2026-06-10"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;h2 id="今日更新概览"&gt;今日更新概览&lt;a class="anchor" href="#%e4%bb%8a%e6%97%a5%e6%9b%b4%e6%96%b0%e6%a6%82%e8%a7%88"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;今日新增内容包括 &lt;strong&gt;3 个项目开发&lt;/strong&gt;（context_bridge、Ragent、12306）和 &lt;strong&gt;3 篇文档&lt;/strong&gt;（外键优劣、REPL、虚拟环境区别），以及近期的 &lt;strong&gt;3 篇日报&lt;/strong&gt; 和 &lt;strong&gt;3 条 Agent 日志&lt;/strong&gt;。&lt;/p&gt;
&lt;h2 id="内容分类统计"&gt;内容分类统计&lt;a class="anchor" href="#%e5%86%85%e5%ae%b9%e5%88%86%e7%b1%bb%e7%bb%9f%e8%ae%a1"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;项目开发：3&lt;/li&gt;
&lt;li&gt;文档：3&lt;/li&gt;
&lt;li&gt;日报：3&lt;/li&gt;
&lt;li&gt;Agent 日志：3&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="简短总结"&gt;简短总结&lt;a class="anchor" href="#%e7%ae%80%e7%9f%ad%e6%80%bb%e7%bb%93"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;今日内容以项目开发和文档为主，涵盖技术实践与工具使用，整体更新较为集中。&lt;/p&gt;</description></item><item><title>2026.6.9</title><link>https://zel-forprogress.github.io/blog/daily/2026-06-09/</link><pubDate>Tue, 09 Jun 2026 00:00:00 +0000</pubDate><guid>https://zel-forprogress.github.io/blog/daily/2026-06-09/</guid><description>&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;FastAPI内置Swagger（交互式API文档），编写API接口文档与调试接口非常简单&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Spotify是一个免费的音乐播放器，但是不时需要观看广告。它有一个缺点是没有桌面歌词，一个应用可以解决这个问题，它是Lyricify，登录你的Spotify账号，注意它只是一个显示桌面歌词应用，没有音乐播放的功能。使用它，需要你在Spotify播放音乐的同时，打开Lyricify，然后它会自动识别。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;lint，静态代码分析，判断你的代码在运行之前有没有风险；build，是编译你的代码能不能通过是你部署你项目的前提；&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;CI（Continuous Integration）持续集成，指的是将代码提交后，持续对所提交的代码进行的检测，然后判断是否可以合并到主分支中。CodeRabbit，就是其中的一个例子，在将你的项目install该CodeRabbit后，它会自动的对PR进行AI分析，并且评论到该PR的下方，对与public的仓库它这个功能是免费的，对于private仓库，它的每月大约有300次的免费额度。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;LangGraph是编排框架，基于图的方式编排LLM应用节点，这样方便后面的功能节点的增加；LangFuse与LangSmith是观测平台，他们功能是将每一次的调用的流程可视化，其中LangFuse是开源的项目，方便自己项目从头到尾自己管理；LangSmith与LangChain集成更好。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;windsurf被Cognition收购后，将其名字修改为Devin&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;</description></item><item><title>Agent 日志 - 2026-06-09</title><link>https://zel-forprogress.github.io/blog/agent/2026-06-09/</link><pubDate>Tue, 09 Jun 2026 00:00:00 +0000</pubDate><guid>https://zel-forprogress.github.io/blog/agent/2026-06-09/</guid><description>&lt;h1 id="agent-日志"&gt;Agent 日志&lt;a class="anchor" href="#agent-%e6%97%a5%e5%bf%97"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;h1 id="技术博客日报---2026-06-09"&gt;技术博客日报 - 2026-06-09&lt;a class="anchor" href="#%e6%8a%80%e6%9c%af%e5%8d%9a%e5%ae%a2%e6%97%a5%e6%8a%a5---2026-06-09"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;h2 id="今日更新概览"&gt;今日更新概览&lt;a class="anchor" href="#%e4%bb%8a%e6%97%a5%e6%9b%b4%e6%96%b0%e6%a6%82%e8%a7%88"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;今日新增内容包括三个项目开发（context_bridge、Ragent、12306），以及三篇文档（外键优劣、REPL、虚拟环境区别）。此外，更新了近期的每日总结和 Agent 日志。&lt;/p&gt;
&lt;h2 id="内容分类统计"&gt;内容分类统计&lt;a class="anchor" href="#%e5%86%85%e5%ae%b9%e5%88%86%e7%b1%bb%e7%bb%9f%e8%ae%a1"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;项目开发：3项&lt;/li&gt;
&lt;li&gt;文档文章：3篇&lt;/li&gt;
&lt;li&gt;每日总结：3篇&lt;/li&gt;
&lt;li&gt;Agent 日志：3篇&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="简短总结"&gt;简短总结&lt;a class="anchor" href="#%e7%ae%80%e7%9f%ad%e6%80%bb%e7%bb%93"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;今日更新以项目开发和文档为主，涵盖技术实践与工具对比，整体内容聚焦于开发与运维相关主题。&lt;/p&gt;</description></item><item><title>Agent 日志 - 2026-06-08</title><link>https://zel-forprogress.github.io/blog/agent/2026-06-08/</link><pubDate>Mon, 08 Jun 2026 00:00:00 +0000</pubDate><guid>https://zel-forprogress.github.io/blog/agent/2026-06-08/</guid><description>&lt;h1 id="agent-日志"&gt;Agent 日志&lt;a class="anchor" href="#agent-%e6%97%a5%e5%bf%97"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;h1 id="技术博客日报---2026-06-08"&gt;技术博客日报 - 2026-06-08&lt;a class="anchor" href="#%e6%8a%80%e6%9c%af%e5%8d%9a%e5%ae%a2%e6%97%a5%e6%8a%a5---2026-06-08"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;h2 id="1-今日更新概览"&gt;1. 今日更新概览&lt;a class="anchor" href="#1-%e4%bb%8a%e6%97%a5%e6%9b%b4%e6%96%b0%e6%a6%82%e8%a7%88"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;今日新增内容包括 &lt;strong&gt;context_bridge&lt;/strong&gt;、&lt;strong&gt;Ragent&lt;/strong&gt; 和 &lt;strong&gt;12306&lt;/strong&gt; 项目开发，以及三篇文档：外键优劣、交互式 REPL 和虚拟环境区别。此外，更新了多篇日报和 Agent 日志。&lt;/p&gt;
&lt;h2 id="2-内容分类统计"&gt;2. 内容分类统计&lt;a class="anchor" href="#2-%e5%86%85%e5%ae%b9%e5%88%86%e7%b1%bb%e7%bb%9f%e8%ae%a1"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;项目开发：3&lt;/li&gt;
&lt;li&gt;文档：3&lt;/li&gt;
&lt;li&gt;日报：3&lt;/li&gt;
&lt;li&gt;Agent 日志：3&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="3-简短总结"&gt;3. 简短总结&lt;a class="anchor" href="#3-%e7%ae%80%e7%9f%ad%e6%80%bb%e7%bb%93"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;今日更新内容以项目开发和文档为主，涵盖技术细节与日常记录，整体保持稳定更新节奏。&lt;/p&gt;</description></item><item><title>Agent 日志 - 2026-06-07</title><link>https://zel-forprogress.github.io/blog/agent/2026-06-07/</link><pubDate>Sun, 07 Jun 2026 00:00:00 +0000</pubDate><guid>https://zel-forprogress.github.io/blog/agent/2026-06-07/</guid><description>&lt;h1 id="agent-日志"&gt;Agent 日志&lt;a class="anchor" href="#agent-%e6%97%a5%e5%bf%97"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;h1 id="技术博客每日总结日报---2026-06-07"&gt;技术博客每日总结日报 - 2026-06-07&lt;a class="anchor" href="#%e6%8a%80%e6%9c%af%e5%8d%9a%e5%ae%a2%e6%af%8f%e6%97%a5%e6%80%bb%e7%bb%93%e6%97%a5%e6%8a%a5---2026-06-07"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;h2 id="今日更新概览"&gt;今日更新概览&lt;a class="anchor" href="#%e4%bb%8a%e6%97%a5%e6%9b%b4%e6%96%b0%e6%a6%82%e8%a7%88"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;今日新增内容包括三个项目开发（context_bridge、Ragent、12306），以及三篇文档（外键优劣、交互式 REPL、虚拟环境区别）。此外，还更新了近期的日报和 Agent 日志。&lt;/p&gt;
&lt;h2 id="内容分类统计"&gt;内容分类统计&lt;a class="anchor" href="#%e5%86%85%e5%ae%b9%e5%88%86%e7%b1%bb%e7%bb%9f%e8%ae%a1"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;项目开发：3&lt;/li&gt;
&lt;li&gt;文档文章：3&lt;/li&gt;
&lt;li&gt;日报：3&lt;/li&gt;
&lt;li&gt;Agent 日志：3&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="简短总结"&gt;简短总结&lt;a class="anchor" href="#%e7%ae%80%e7%9f%ad%e6%80%bb%e7%bb%93"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;今日内容以项目开发和文档为主，补充了近期的日报与日志，整体内容结构清晰，覆盖技术实践与工具使用。&lt;/p&gt;</description></item><item><title>2026.6.6</title><link>https://zel-forprogress.github.io/blog/daily/2026-06-06/</link><pubDate>Sat, 06 Jun 2026 00:00:00 +0000</pubDate><guid>https://zel-forprogress.github.io/blog/daily/2026-06-06/</guid><description>&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;现在agent开发的主流技术栈是：fastAPI写后端接口，next.js写前端UI，Langraph为编排框架，Langchain作为RAG组件库，milvus作为向量数据库，postgreSQL作为关系型数据库，MCP作为工具调用协议。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;为了提高向量的检索效率，向量数据库中还会存储元数据。在进行向量相似度的匹配之前，首先通过元数据筛选，缩小匹配范围，提升检索速度。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;python的类继承是通过“（父类）”来实现的，在括号中写明要继承的类。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;目标，先做一个自己的agent，跑起来，然后再做一个检测web，再往多agent靠。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;稀疏向量与稠密向量，稀疏向量中的绝大多数值都是0，并且向量中的每个值与词存在对应关系；而稠密向量中绝大多数的值都是非0（小数），一般用来“词汇”精确查询，但是没有语义识别能力，不能判断同义词；稠密向量中的值大部分没有意义，它只能整体来看其在向量空间的位置与哪些向量靠的距离比较近（一般语义相似），因此可以进行语义识别，但是不能精确识别。在实际的运行中一般结合这两种方式，即混合检索。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;RAG流程分两步，离线将文档切块、嵌入、建索引存入向量库；在线将用户问题向量化后检索相关片段，连同问题一起交给LLM生成答案。&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;</description></item><item><title>Agent 日志 - 2026-06-06</title><link>https://zel-forprogress.github.io/blog/agent/2026-06-06/</link><pubDate>Sat, 06 Jun 2026 00:00:00 +0000</pubDate><guid>https://zel-forprogress.github.io/blog/agent/2026-06-06/</guid><description>&lt;h1 id="agent-日志"&gt;Agent 日志&lt;a class="anchor" href="#agent-%e6%97%a5%e5%bf%97"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;h1 id="技术博客日报---2026-06-06"&gt;技术博客日报 - 2026-06-06&lt;a class="anchor" href="#%e6%8a%80%e6%9c%af%e5%8d%9a%e5%ae%a2%e6%97%a5%e6%8a%a5---2026-06-06"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;h2 id="今日更新概览"&gt;今日更新概览&lt;a class="anchor" href="#%e4%bb%8a%e6%97%a5%e6%9b%b4%e6%96%b0%e6%a6%82%e8%a7%88"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;今日新增内容包括 &lt;strong&gt;3个项目开发&lt;/strong&gt;（context_bridge、Ragent、12306）和 &lt;strong&gt;3篇文档&lt;/strong&gt;（外键优劣、REPL、虚拟环境区别），以及近期的每日总结和 Agent 日志。&lt;/p&gt;
&lt;h2 id="内容分类统计"&gt;内容分类统计&lt;a class="anchor" href="#%e5%86%85%e5%ae%b9%e5%88%86%e7%b1%bb%e7%bb%9f%e8%ae%a1"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;项目开发：3篇&lt;/li&gt;
&lt;li&gt;文档文章：3篇&lt;/li&gt;
&lt;li&gt;每日总结：3篇&lt;/li&gt;
&lt;li&gt;Agent 日志：3篇&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="简短总结"&gt;简短总结&lt;a class="anchor" href="#%e7%ae%80%e7%9f%ad%e6%80%bb%e7%bb%93"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;今日更新内容以项目开发和文档为主，涵盖技术实践与工具使用，适合查阅与学习。&lt;/p&gt;</description></item><item><title>Agent 日志 - 2026-06-05</title><link>https://zel-forprogress.github.io/blog/agent/2026-06-05/</link><pubDate>Fri, 05 Jun 2026 00:00:00 +0000</pubDate><guid>https://zel-forprogress.github.io/blog/agent/2026-06-05/</guid><description>&lt;h1 id="agent-日志"&gt;Agent 日志&lt;a class="anchor" href="#agent-%e6%97%a5%e5%bf%97"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;h1 id="技术博客每日总结日报"&gt;技术博客每日总结日报&lt;a class="anchor" href="#%e6%8a%80%e6%9c%af%e5%8d%9a%e5%ae%a2%e6%af%8f%e6%97%a5%e6%80%bb%e7%bb%93%e6%97%a5%e6%8a%a5"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;&lt;strong&gt;日期：2026-06-05&lt;/strong&gt;&lt;/p&gt;
&lt;h2 id="1-今日更新概览"&gt;1. 今日更新概览&lt;a class="anchor" href="#1-%e4%bb%8a%e6%97%a5%e6%9b%b4%e6%96%b0%e6%a6%82%e8%a7%88"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;今日更新包括三个项目开发（context_bridge、Ragent、12306），以及三篇文档内容（外键优劣、REPL、虚拟环境区别），还有近期的日报和Agent日志记录。&lt;/p&gt;
&lt;h2 id="2-内容分类统计"&gt;2. 内容分类统计&lt;a class="anchor" href="#2-%e5%86%85%e5%ae%b9%e5%88%86%e7%b1%bb%e7%bb%9f%e8%ae%a1"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;项目开发：3项&lt;/li&gt;
&lt;li&gt;文档说明：3篇&lt;/li&gt;
&lt;li&gt;日报：3篇&lt;/li&gt;
&lt;li&gt;Agent日志：3篇&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="3-简短总结"&gt;3. 简短总结&lt;a class="anchor" href="#3-%e7%ae%80%e7%9f%ad%e6%80%bb%e7%bb%93"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;今日内容以项目开发和文档为主，涵盖技术细节与日常记录，整体更新较为均衡。&lt;/p&gt;</description></item><item><title>Agent 日志 - 2026-06-04</title><link>https://zel-forprogress.github.io/blog/agent/2026-06-04/</link><pubDate>Thu, 04 Jun 2026 00:00:00 +0000</pubDate><guid>https://zel-forprogress.github.io/blog/agent/2026-06-04/</guid><description>&lt;h1 id="agent-日志"&gt;Agent 日志&lt;a class="anchor" href="#agent-%e6%97%a5%e5%bf%97"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;h1 id="技术博客每日总结日报"&gt;技术博客每日总结日报&lt;a class="anchor" href="#%e6%8a%80%e6%9c%af%e5%8d%9a%e5%ae%a2%e6%af%8f%e6%97%a5%e6%80%bb%e7%bb%93%e6%97%a5%e6%8a%a5"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;&lt;strong&gt;日期：2026-06-04&lt;/strong&gt;&lt;/p&gt;
&lt;h2 id="今日更新概览"&gt;今日更新概览&lt;a class="anchor" href="#%e4%bb%8a%e6%97%a5%e6%9b%b4%e6%96%b0%e6%a6%82%e8%a7%88"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;今日新增内容包括 &lt;strong&gt;3个项目开发&lt;/strong&gt;（context_bridge、Ragent、12306）和 &lt;strong&gt;3篇文档&lt;/strong&gt;（外键优劣、REPL、虚拟环境区别），以及近期的日报和 Agent 日志。&lt;/p&gt;
&lt;h2 id="内容分类统计"&gt;内容分类统计&lt;a class="anchor" href="#%e5%86%85%e5%ae%b9%e5%88%86%e7%b1%bb%e7%bb%9f%e8%ae%a1"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;项目开发：3&lt;/li&gt;
&lt;li&gt;文档：3&lt;/li&gt;
&lt;li&gt;日报：3&lt;/li&gt;
&lt;li&gt;Agent 日志：3&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="简短总结"&gt;简短总结&lt;a class="anchor" href="#%e7%ae%80%e7%9f%ad%e6%80%bb%e7%bb%93"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;今日内容以项目开发和实用文档为主，涵盖技术细节与工具使用，适合开发者参考。&lt;/p&gt;</description></item><item><title>Agent 日志 - 2026-06-03</title><link>https://zel-forprogress.github.io/blog/agent/2026-06-03/</link><pubDate>Wed, 03 Jun 2026 00:00:00 +0000</pubDate><guid>https://zel-forprogress.github.io/blog/agent/2026-06-03/</guid><description>&lt;h1 id="agent-日志"&gt;Agent 日志&lt;a class="anchor" href="#agent-%e6%97%a5%e5%bf%97"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;h1 id="技术博客日报---2026-06-03"&gt;技术博客日报 - 2026-06-03&lt;a class="anchor" href="#%e6%8a%80%e6%9c%af%e5%8d%9a%e5%ae%a2%e6%97%a5%e6%8a%a5---2026-06-03"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;h2 id="今日更新概览"&gt;今日更新概览&lt;a class="anchor" href="#%e4%bb%8a%e6%97%a5%e6%9b%b4%e6%96%b0%e6%a6%82%e8%a7%88"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;今日新增内容包括 &lt;strong&gt;3个项目开发&lt;/strong&gt;（context_bridge、Ragent、12306）和 &lt;strong&gt;3篇文档&lt;/strong&gt;（外键优劣、REPL、虚拟环境区别），以及多篇历史日报和 Agent 日志。&lt;/p&gt;
&lt;h2 id="内容分类统计"&gt;内容分类统计&lt;a class="anchor" href="#%e5%86%85%e5%ae%b9%e5%88%86%e7%b1%bb%e7%bb%9f%e8%ae%a1"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;项目开发：3项&lt;/li&gt;
&lt;li&gt;文档文章：3篇&lt;/li&gt;
&lt;li&gt;日报：3篇&lt;/li&gt;
&lt;li&gt;Agent 日志：3篇&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="简短总结"&gt;简短总结&lt;a class="anchor" href="#%e7%ae%80%e7%9f%ad%e6%80%bb%e7%bb%93"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;今日更新以项目开发和文档为主，内容涵盖技术实现与工具对比，适合查阅与学习。&lt;/p&gt;</description></item><item><title>2026.6.2</title><link>https://zel-forprogress.github.io/blog/daily/2026-06-02/</link><pubDate>Tue, 02 Jun 2026 00:00:00 +0000</pubDate><guid>https://zel-forprogress.github.io/blog/daily/2026-06-02/</guid><description>&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;因为现实世界中的信息是多元化的，不仅有文本，还有图像、音频、视频等，对多模态嵌入模型要求变得更高了，所谓的多模态嵌入模型就是将不同的信息源并入同一个向量空间，表达相似信息的信息源其向量非常接近。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;openAI的CLIP多模态嵌入模型是一个非常有影响力的模型，该模型的能力是建立在其进行了大量的图文对比的训练上的。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;huggingFace是一个拥有丰富模型的hub平台，用户可以在这里调用下载开源的模型&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;pip install -e . 命令的作用是将本地的代码当成依赖下载，其它代码便可以调用，前提是你的项目目录下存在一个 &lt;code&gt;setup.py&lt;/code&gt; 文件（传统方式）或 &lt;code&gt;pyproject.toml&lt;/code&gt; 文件（现代方式，常与 &lt;code&gt;setuptools&lt;/code&gt; 结合使用）。这个文件定义了包的名称、版本、依赖等信息。其中 -e是editable，其作用是建一个指向你当前项目目录的链接。所以，你对源代码做的任何修改都会立即生效，无需重新安装。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Pytorch是一个深度学习的框架&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;with&lt;/code&gt; 是 Python 中一个非常重要的语法，叫做上下文管理器。它的核心作用是自动管理资源，确保资源在使用后被正确释放，无论中间是否发生错误。&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;</description></item><item><title>Agent 日志 - 2026-06-02</title><link>https://zel-forprogress.github.io/blog/agent/2026-06-02/</link><pubDate>Tue, 02 Jun 2026 00:00:00 +0000</pubDate><guid>https://zel-forprogress.github.io/blog/agent/2026-06-02/</guid><description>&lt;h1 id="agent-日志"&gt;Agent 日志&lt;a class="anchor" href="#agent-%e6%97%a5%e5%bf%97"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;h1 id="技术博客每日总结日报---2026-06-02"&gt;技术博客每日总结日报 - 2026-06-02&lt;a class="anchor" href="#%e6%8a%80%e6%9c%af%e5%8d%9a%e5%ae%a2%e6%af%8f%e6%97%a5%e6%80%bb%e7%bb%93%e6%97%a5%e6%8a%a5---2026-06-02"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;h2 id="今日更新概览"&gt;今日更新概览&lt;a class="anchor" href="#%e4%bb%8a%e6%97%a5%e6%9b%b4%e6%96%b0%e6%a6%82%e8%a7%88"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;今日新增内容包括三个项目开发（context_bridge、Ragent、12306），以及三篇文档（外键优劣、交互式 REPL、虚拟环境区别），还有多篇历史日报和 Agent 日志。&lt;/p&gt;
&lt;h2 id="内容分类统计"&gt;内容分类统计&lt;a class="anchor" href="#%e5%86%85%e5%ae%b9%e5%88%86%e7%b1%bb%e7%bb%9f%e8%ae%a1"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;项目开发：3项&lt;/li&gt;
&lt;li&gt;文档文章：3篇&lt;/li&gt;
&lt;li&gt;日报：3篇&lt;/li&gt;
&lt;li&gt;Agent 日志：3条&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="简短总结"&gt;简短总结&lt;a class="anchor" href="#%e7%ae%80%e7%9f%ad%e6%80%bb%e7%bb%93"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;今日内容以项目开发和文档为主，涵盖技术细节与工具使用，整体内容聚焦于实践与知识积累。&lt;/p&gt;</description></item><item><title>2026.6.1</title><link>https://zel-forprogress.github.io/blog/daily/2026-06-01/</link><pubDate>Mon, 01 Jun 2026 00:00:00 +0000</pubDate><guid>https://zel-forprogress.github.io/blog/daily/2026-06-01/</guid><description>&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;上周没有更新是因为在处理实习辞职的事情，在周三的时候处理完之后就直接休息了一周，报复性休息，疯狂的玩游戏、吃不干净的食物、作息稍有混乱。以结果来看，没有休息好，反而有点累。因为上周打羽毛球，把腿伤到了，这周没有健身，也算是找了一个合适的理由。现在对这2个半月的实习做一个小总结吧：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;为什么辞职？&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;因为要期末考试了，要准备一下&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;项目完成，工作内容减少、重复、简单，对自己没有提升&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;与期望目标岗位或工作内容不一致，我想要往agent开发转&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;薪资想要进一步提升&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;其实这两个月技术上没有很大的进步，最主要是提升自己的见识了，当然这个是不同方面的。如公司内部是具体是怎么运行的，工资是怎么发的，处理同事关系，看一下别人是怎么使用各种ai工具的等等。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;当然还是掌握了一些专业知识的，比如对guthub的理解更加深刻，docker容器的使用，项目在云端服务器的部署，数据库存储过程等，ai工具在工作中的使用、办公软件飞书的使用等&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;当然最主要的是让我体会到了赚钱的不容易，我不想也不会过一辈子这样的为一日三餐奔走的生活，我开始了我的理财之路，希望有朝一日会尽快实现财富自由。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;谈一下我对AI发展的看法吧，我其实对现在的两种主流的看法都赞同，一种是不再需要手写代码，以结果为导向，功能没问题就可以（这里的侧重点是测试，大家以后都变成了测试工程师）；还有一种是对“彻底的AI开发”持反对意见，强调工程师还是要懂得代码的，要知道AI写了什么，与我们的期望一不一致，工程师要对自己提交的代码负责。对于第一种，现在有种反对意见是完全AI开发应用虽然看起来功能齐全，但是存在大量且严重的安全bug，甚至有大量的用户数据在互联网信息传递的过程中被泄露。&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Doker Desktop在windows使用的时候需要启用WSL（Windows SubSystem for Linux），原因是因为绝大多数的容器镜像都是为Linux环境设计的，因此Docker需要一个Linux环境来运行这些镜像。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;AMD 64架构又叫 x64，与ARM64架构有区别&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;所得等级攀升，指的是在通货膨胀的影响下，你名义的工资收入变多了，你成功进入了更高税收层次等级，但是你的实际购买力没有增加，结果交的更多了，到手的反而更少了。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;解字计划（jiezi）免费送大学生token，名额有限，可以了解一下：https://github.com/jiezi-ai/grant&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;SOCKS5是一个会话层转发请求到代理的协议；HTTPS是HTTP + TLS/SSL加密层，主要用于保护客户端与目标网站服务器之间的直接通信，防止数据在这个环节被窃听或篡改&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;</description></item><item><title>Agent 日志 - 2026-06-01</title><link>https://zel-forprogress.github.io/blog/agent/2026-06-01/</link><pubDate>Mon, 01 Jun 2026 00:00:00 +0000</pubDate><guid>https://zel-forprogress.github.io/blog/agent/2026-06-01/</guid><description>&lt;h1 id="agent-日志"&gt;Agent 日志&lt;a class="anchor" href="#agent-%e6%97%a5%e5%bf%97"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;h1 id="技术博客每日总结日报---2026-06-01"&gt;技术博客每日总结日报 - 2026-06-01&lt;a class="anchor" href="#%e6%8a%80%e6%9c%af%e5%8d%9a%e5%ae%a2%e6%af%8f%e6%97%a5%e6%80%bb%e7%bb%93%e6%97%a5%e6%8a%a5---2026-06-01"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;h2 id="今日更新概览"&gt;今日更新概览&lt;a class="anchor" href="#%e4%bb%8a%e6%97%a5%e6%9b%b4%e6%96%b0%e6%a6%82%e8%a7%88"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;今日新增内容包括三个项目开发（context_bridge、Ragent、12306），以及三篇文档（外键优劣、REPL、虚拟环境区别），还有多篇历史日报和Agent日志。&lt;/p&gt;
&lt;h2 id="内容分类统计"&gt;内容分类统计&lt;a class="anchor" href="#%e5%86%85%e5%ae%b9%e5%88%86%e7%b1%bb%e7%bb%9f%e8%ae%a1"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;项目开发：3篇&lt;/li&gt;
&lt;li&gt;文档文章：3篇&lt;/li&gt;
&lt;li&gt;日报：3篇&lt;/li&gt;
&lt;li&gt;Agent日志：3篇&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="简短总结"&gt;简短总结&lt;a class="anchor" href="#%e7%ae%80%e7%9f%ad%e6%80%bb%e7%bb%93"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;今日内容以项目开发和文档为主，涵盖技术细节与工具使用，整体更新较为集中。&lt;/p&gt;</description></item><item><title>Agent 日志 - 2026-05-31</title><link>https://zel-forprogress.github.io/blog/agent/2026-05-31/</link><pubDate>Sun, 31 May 2026 00:00:00 +0000</pubDate><guid>https://zel-forprogress.github.io/blog/agent/2026-05-31/</guid><description>&lt;h1 id="agent-日志"&gt;Agent 日志&lt;a class="anchor" href="#agent-%e6%97%a5%e5%bf%97"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;h1 id="技术博客每日总结日报"&gt;技术博客每日总结日报&lt;a class="anchor" href="#%e6%8a%80%e6%9c%af%e5%8d%9a%e5%ae%a2%e6%af%8f%e6%97%a5%e6%80%bb%e7%bb%93%e6%97%a5%e6%8a%a5"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;&lt;strong&gt;日期：2026-05-31&lt;/strong&gt;&lt;/p&gt;
&lt;h2 id="今日更新概览"&gt;今日更新概览&lt;a class="anchor" href="#%e4%bb%8a%e6%97%a5%e6%9b%b4%e6%96%b0%e6%a6%82%e8%a7%88"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;今日新增内容包括 &lt;strong&gt;3个项目的开发进展&lt;/strong&gt; 和 &lt;strong&gt;3篇文档说明&lt;/strong&gt;，涵盖技术实现与工具使用等内容。此外，还包含近期的 &lt;strong&gt;日志记录&lt;/strong&gt; 和 &lt;strong&gt;历史日报&lt;/strong&gt;。&lt;/p&gt;
&lt;h2 id="内容分类统计"&gt;内容分类统计&lt;a class="anchor" href="#%e5%86%85%e5%ae%b9%e5%88%86%e7%b1%bb%e7%bb%9f%e8%ae%a1"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;项目开发：3项（context_bridge、Ragent、12306）&lt;/li&gt;
&lt;li&gt;文档说明：3篇（外键优劣、REPL、虚拟环境区别）&lt;/li&gt;
&lt;li&gt;日志与日报：5条&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="简短总结"&gt;简短总结&lt;a class="anchor" href="#%e7%ae%80%e7%9f%ad%e6%80%bb%e7%bb%93"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;今日内容以项目开发和实用文档为主，帮助读者了解技术细节与工具选择。&lt;/p&gt;</description></item><item><title>Agent 日志 - 2026-05-30</title><link>https://zel-forprogress.github.io/blog/agent/2026-05-30/</link><pubDate>Sat, 30 May 2026 00:00:00 +0000</pubDate><guid>https://zel-forprogress.github.io/blog/agent/2026-05-30/</guid><description>&lt;h1 id="agent-日志"&gt;Agent 日志&lt;a class="anchor" href="#agent-%e6%97%a5%e5%bf%97"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;h1 id="技术博客日报---2026-05-30"&gt;技术博客日报 - 2026-05-30&lt;a class="anchor" href="#%e6%8a%80%e6%9c%af%e5%8d%9a%e5%ae%a2%e6%97%a5%e6%8a%a5---2026-05-30"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;h2 id="今日更新概览"&gt;今日更新概览&lt;a class="anchor" href="#%e4%bb%8a%e6%97%a5%e6%9b%b4%e6%96%b0%e6%a6%82%e8%a7%88"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;今日新增内容包括 &lt;strong&gt;context_bridge&lt;/strong&gt;、&lt;strong&gt;Ragent&lt;/strong&gt; 和 &lt;strong&gt;12306&lt;/strong&gt; 项目开发，以及三篇文档：外键优劣、交互式 REPL 和虚拟环境区别。此外还有近期的每日总结和 Agent 日志。&lt;/p&gt;
&lt;h2 id="内容分类统计"&gt;内容分类统计&lt;a class="anchor" href="#%e5%86%85%e5%ae%b9%e5%88%86%e7%b1%bb%e7%bb%9f%e8%ae%a1"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;项目开发：3&lt;/li&gt;
&lt;li&gt;文档：3&lt;/li&gt;
&lt;li&gt;每日总结：3&lt;/li&gt;
&lt;li&gt;Agent 日志：3&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="简短总结"&gt;简短总结&lt;a class="anchor" href="#%e7%ae%80%e7%9f%ad%e6%80%bb%e7%bb%93"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;今日更新以项目开发和文档为主，内容涵盖技术实践与工具使用，适合查阅与学习。&lt;/p&gt;</description></item><item><title>Agent 日志 - 2026-05-29</title><link>https://zel-forprogress.github.io/blog/agent/2026-05-29/</link><pubDate>Fri, 29 May 2026 00:00:00 +0000</pubDate><guid>https://zel-forprogress.github.io/blog/agent/2026-05-29/</guid><description>&lt;h1 id="agent-日志"&gt;Agent 日志&lt;a class="anchor" href="#agent-%e6%97%a5%e5%bf%97"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;h1 id="技术博客日报---2026-05-29"&gt;技术博客日报 - 2026-05-29&lt;a class="anchor" href="#%e6%8a%80%e6%9c%af%e5%8d%9a%e5%ae%a2%e6%97%a5%e6%8a%a5---2026-05-29"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;h2 id="今日更新概览"&gt;今日更新概览&lt;a class="anchor" href="#%e4%bb%8a%e6%97%a5%e6%9b%b4%e6%96%b0%e6%a6%82%e8%a7%88"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;今日更新包括三个项目开发（context_bridge、Ragent、12306），以及三篇文档（外键优劣、REPL、虚拟环境区别），还有多篇过往日报和Agent日志。&lt;/p&gt;
&lt;h2 id="内容分类统计"&gt;内容分类统计&lt;a class="anchor" href="#%e5%86%85%e5%ae%b9%e5%88%86%e7%b1%bb%e7%bb%9f%e8%ae%a1"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;项目开发：3项&lt;/li&gt;
&lt;li&gt;文档文章：3篇&lt;/li&gt;
&lt;li&gt;日报：3篇&lt;/li&gt;
&lt;li&gt;Agent日志：3条&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="简短总结"&gt;简短总结&lt;a class="anchor" href="#%e7%ae%80%e7%9f%ad%e6%80%bb%e7%bb%93"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;今日内容以项目开发和文档为主，覆盖技术实践与工具使用，适合查阅与学习。&lt;/p&gt;</description></item><item><title>Agent 日志 - 2026-05-28</title><link>https://zel-forprogress.github.io/blog/agent/2026-05-28/</link><pubDate>Thu, 28 May 2026 00:00:00 +0000</pubDate><guid>https://zel-forprogress.github.io/blog/agent/2026-05-28/</guid><description>&lt;h1 id="agent-日志"&gt;Agent 日志&lt;a class="anchor" href="#agent-%e6%97%a5%e5%bf%97"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;h1 id="技术博客日报---2026-05-28"&gt;技术博客日报 - 2026-05-28&lt;a class="anchor" href="#%e6%8a%80%e6%9c%af%e5%8d%9a%e5%ae%a2%e6%97%a5%e6%8a%a5---2026-05-28"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;h2 id="今日更新概览"&gt;今日更新概览&lt;a class="anchor" href="#%e4%bb%8a%e6%97%a5%e6%9b%b4%e6%96%b0%e6%a6%82%e8%a7%88"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;今日更新包括三个项目开发（context_bridge、Ragent、12306），以及三篇文档（外键优劣、交互式 REPL、虚拟环境区别），还有近期的每日总结和 Agent 日志。&lt;/p&gt;
&lt;h2 id="内容分类统计"&gt;内容分类统计&lt;a class="anchor" href="#%e5%86%85%e5%ae%b9%e5%88%86%e7%b1%bb%e7%bb%9f%e8%ae%a1"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;项目开发：3项&lt;/li&gt;
&lt;li&gt;文档笔记：3篇&lt;/li&gt;
&lt;li&gt;每日总结：3篇&lt;/li&gt;
&lt;li&gt;Agent 日志：3条&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="简短总结"&gt;简短总结&lt;a class="anchor" href="#%e7%ae%80%e7%9f%ad%e6%80%bb%e7%bb%93"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;今日内容以项目开发和文档为主，涵盖技术实践与工具使用，整体更新较为集中。&lt;/p&gt;</description></item><item><title>Agent 日志 - 2026-05-27</title><link>https://zel-forprogress.github.io/blog/agent/2026-05-27/</link><pubDate>Wed, 27 May 2026 00:00:00 +0000</pubDate><guid>https://zel-forprogress.github.io/blog/agent/2026-05-27/</guid><description>&lt;h1 id="agent-日志"&gt;Agent 日志&lt;a class="anchor" href="#agent-%e6%97%a5%e5%bf%97"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;h1 id="技术博客日报---2026-05-27"&gt;技术博客日报 - 2026-05-27&lt;a class="anchor" href="#%e6%8a%80%e6%9c%af%e5%8d%9a%e5%ae%a2%e6%97%a5%e6%8a%a5---2026-05-27"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;h2 id="今日更新概览"&gt;今日更新概览&lt;a class="anchor" href="#%e4%bb%8a%e6%97%a5%e6%9b%b4%e6%96%b0%e6%a6%82%e8%a7%88"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;今日更新包括三个项目开发（context_bridge、Ragent、12306），以及三篇文档（外键优劣、REPL、虚拟环境区别），还有几篇历史日报和Agent日志。&lt;/p&gt;
&lt;h2 id="内容分类统计"&gt;内容分类统计&lt;a class="anchor" href="#%e5%86%85%e5%ae%b9%e5%88%86%e7%b1%bb%e7%bb%9f%e8%ae%a1"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;项目开发：3&lt;/li&gt;
&lt;li&gt;文档文章：3&lt;/li&gt;
&lt;li&gt;日报：3&lt;/li&gt;
&lt;li&gt;Agent日志：3&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="简短总结"&gt;简短总结&lt;a class="anchor" href="#%e7%ae%80%e7%9f%ad%e6%80%bb%e7%bb%93"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;今日内容以项目开发和文档为主，涵盖技术细节与工具使用，适合深入学习与参考。&lt;/p&gt;</description></item><item><title>Ragent项目开发</title><link>https://zel-forprogress.github.io/blog/project/ragent%E9%A1%B9%E7%9B%AE%E5%BC%80%E5%8F%91/</link><pubDate>Wed, 27 May 2026 00:00:00 +0000</pubDate><guid>https://zel-forprogress.github.io/blog/project/ragent%E9%A1%B9%E7%9B%AE%E5%BC%80%E5%8F%91/</guid><description>&lt;p&gt;Ragent（&lt;a href="https://nageoffer.com/ragent"&gt;官方介绍链接&lt;/a&gt;）是一个面向企业场景的 Agentic RAG 平台：&lt;strong&gt;从文档入库&lt;/strong&gt;、&lt;strong&gt;向量索引&lt;/strong&gt;到&lt;strong&gt;多路检索&lt;/strong&gt;、&lt;strong&gt;意图识别&lt;/strong&gt;、&lt;strong&gt;MCP 工具调用&lt;/strong&gt;和&lt;strong&gt;流式问答&lt;/strong&gt;，形成完整闭环。定位是 Java 后端开发者学习/落地 AI 应用的开源参考实现，而不是「调 API + 向量库」的 Demo。&lt;/p&gt;
&lt;h3 id="技术栈"&gt;技术栈&lt;a class="anchor" href="#%e6%8a%80%e6%9c%af%e6%a0%88"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&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;Spring Boot 3.5.7 (Java 17)&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;向量数据库&lt;/td&gt;
					&lt;td&gt;Milvus 2.6.6&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;文档解析&lt;/td&gt;
					&lt;td&gt;Apache Tika 3.2.3&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;ORM&lt;/td&gt;
					&lt;td&gt;MyBatis-Plus 3.5.14&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;对象存储&lt;/td&gt;
					&lt;td&gt;AWS S3&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;认证授权&lt;/td&gt;
					&lt;td&gt;Sa-Token 1.43.0&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;缓存/分布式锁&lt;/td&gt;
					&lt;td&gt;Redisson 4.0.0&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;消息队列&lt;/td&gt;
					&lt;td&gt;RocketMQ 2.3.5&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;MCP协议&lt;/td&gt;
					&lt;td&gt;MCP SDK 1.1.2&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;前端&lt;/td&gt;
					&lt;td&gt;React + TypeScript + Vite&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="项目模块"&gt;项目模块&lt;a class="anchor" href="#%e9%a1%b9%e7%9b%ae%e6%a8%a1%e5%9d%97"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;ragent/
├── bootstrap/ # 业务启动模块（核心业务逻辑）
├── framework/ # 通用基础设施层（与业务无关）
├── infra-ai/ # AI基础设施层（屏蔽模型供应商差异）
├── mcp-server/ # MCP服务器模块
└── frontend/ # React前端（约18000行代码）&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="核心特性"&gt;核心特性&lt;a class="anchor" href="#%e6%a0%b8%e5%bf%83%e7%89%b9%e6%80%a7"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;多路检索并行 + 后处理流水线&lt;/strong&gt;&lt;/p&gt;</description></item><item><title>Agent 日志 - 2026-05-26</title><link>https://zel-forprogress.github.io/blog/agent/2026-05-26/</link><pubDate>Tue, 26 May 2026 00:00:00 +0000</pubDate><guid>https://zel-forprogress.github.io/blog/agent/2026-05-26/</guid><description>&lt;h1 id="agent-日志"&gt;Agent 日志&lt;a class="anchor" href="#agent-%e6%97%a5%e5%bf%97"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;今日更新概览&lt;br&gt;
今日更新了多个项目开发内容，包括 context_bridge、Ragent 和 12306 项目。同时，文档方面涉及外键使用、REPL 交互、虚拟环境工具对比等。此外，还更新了近期的日报和 Agent 日志。&lt;/p&gt;
&lt;p&gt;内容分类统计&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;项目开发：3 项&lt;/li&gt;
&lt;li&gt;文档资料：3 篇&lt;/li&gt;
&lt;li&gt;日报：3 篇&lt;/li&gt;
&lt;li&gt;Agent 日志：3 篇&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;简短总结&lt;br&gt;
今日内容以项目开发和文档整理为主，涵盖技术细节与日常记录，整体更新较为全面。&lt;/p&gt;</description></item><item><title>Agent 日志 - 2026-05-25</title><link>https://zel-forprogress.github.io/blog/agent/2026-05-25/</link><pubDate>Mon, 25 May 2026 00:00:00 +0000</pubDate><guid>https://zel-forprogress.github.io/blog/agent/2026-05-25/</guid><description>&lt;h1 id="agent-日志"&gt;Agent 日志&lt;a class="anchor" href="#agent-%e6%97%a5%e5%bf%97"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;h1 id="技术博客日报---2026-05-25"&gt;技术博客日报 - 2026-05-25&lt;a class="anchor" href="#%e6%8a%80%e6%9c%af%e5%8d%9a%e5%ae%a2%e6%97%a5%e6%8a%a5---2026-05-25"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;h2 id="今日更新概览"&gt;今日更新概览&lt;a class="anchor" href="#%e4%bb%8a%e6%97%a5%e6%9b%b4%e6%96%b0%e6%a6%82%e8%a7%88"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;今日更新包括三个项目开发（context_bridge、Ragent、12306），以及三篇文档（外键优劣、交互式 REPL、虚拟环境区别），还有近期的每日总结和 Agent 日志。&lt;/p&gt;
&lt;h2 id="内容分类统计"&gt;内容分类统计&lt;a class="anchor" href="#%e5%86%85%e5%ae%b9%e5%88%86%e7%b1%bb%e7%bb%9f%e8%ae%a1"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;项目开发：3项&lt;/li&gt;
&lt;li&gt;文档：3篇&lt;/li&gt;
&lt;li&gt;每日总结：3篇&lt;/li&gt;
&lt;li&gt;Agent 日志：3篇&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="简短总结"&gt;简短总结&lt;a class="anchor" href="#%e7%ae%80%e7%9f%ad%e6%80%bb%e7%bb%93"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;今日内容以项目开发和文档为主，涵盖技术细节与日常记录，整体保持稳定更新节奏。&lt;/p&gt;</description></item><item><title>Agent 日志 - 2026-05-24</title><link>https://zel-forprogress.github.io/blog/agent/2026-05-24/</link><pubDate>Sun, 24 May 2026 00:00:00 +0000</pubDate><guid>https://zel-forprogress.github.io/blog/agent/2026-05-24/</guid><description>&lt;h1 id="agent-日志"&gt;Agent 日志&lt;a class="anchor" href="#agent-%e6%97%a5%e5%bf%97"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;h1 id="技术博客日报---2026-05-24"&gt;技术博客日报 - 2026-05-24&lt;a class="anchor" href="#%e6%8a%80%e6%9c%af%e5%8d%9a%e5%ae%a2%e6%97%a5%e6%8a%a5---2026-05-24"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;h2 id="今日更新概览"&gt;今日更新概览&lt;a class="anchor" href="#%e4%bb%8a%e6%97%a5%e6%9b%b4%e6%96%b0%e6%a6%82%e8%a7%88"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;今日新增内容包括三个项目开发（context_bridge、Ragent、12306），以及三篇文档（外键优劣、交互式 REPL、虚拟环境区别），还有多篇日常记录和 Agent 日志。&lt;/p&gt;
&lt;h2 id="内容分类统计"&gt;内容分类统计&lt;a class="anchor" href="#%e5%86%85%e5%ae%b9%e5%88%86%e7%b1%bb%e7%bb%9f%e8%ae%a1"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;项目开发：3项&lt;/li&gt;
&lt;li&gt;文档文章：3篇&lt;/li&gt;
&lt;li&gt;日常记录：3篇&lt;/li&gt;
&lt;li&gt;Agent 日志：3篇&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="简短总结"&gt;简短总结&lt;a class="anchor" href="#%e7%ae%80%e7%9f%ad%e6%80%bb%e7%bb%93"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;今日内容以项目开发和文档为主，涵盖技术细节与日常进展，整体更新较为均衡。&lt;/p&gt;</description></item><item><title>Agent 日志 - 2026-05-23</title><link>https://zel-forprogress.github.io/blog/agent/2026-05-23/</link><pubDate>Sat, 23 May 2026 00:00:00 +0000</pubDate><guid>https://zel-forprogress.github.io/blog/agent/2026-05-23/</guid><description>&lt;h1 id="agent-日志"&gt;Agent 日志&lt;a class="anchor" href="#agent-%e6%97%a5%e5%bf%97"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;h1 id="技术博客日报---2026-05-23"&gt;技术博客日报 - 2026-05-23&lt;a class="anchor" href="#%e6%8a%80%e6%9c%af%e5%8d%9a%e5%ae%a2%e6%97%a5%e6%8a%a5---2026-05-23"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;h2 id="今日更新概览"&gt;今日更新概览&lt;a class="anchor" href="#%e4%bb%8a%e6%97%a5%e6%9b%b4%e6%96%b0%e6%a6%82%e8%a7%88"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;今日更新包括三个项目开发：context_bridge、Ragent 和 12306，以及三篇文档：外键优劣、交互式 REPL 和虚拟环境区别。此外还有近期的每日总结和 Agent 日志。&lt;/p&gt;
&lt;h2 id="内容分类统计"&gt;内容分类统计&lt;a class="anchor" href="#%e5%86%85%e5%ae%b9%e5%88%86%e7%b1%bb%e7%bb%9f%e8%ae%a1"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;项目开发：3项&lt;/li&gt;
&lt;li&gt;文档文章：3篇&lt;/li&gt;
&lt;li&gt;每日总结：3篇&lt;/li&gt;
&lt;li&gt;Agent 日志：3篇&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="简短总结"&gt;简短总结&lt;a class="anchor" href="#%e7%ae%80%e7%9f%ad%e6%80%bb%e7%bb%93"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;今日内容以项目开发和文档为主，涵盖技术实践与工具使用，适合深入学习与参考。&lt;/p&gt;</description></item><item><title>2026.5.22</title><link>https://zel-forprogress.github.io/blog/daily/2026-05-22/</link><pubDate>Fri, 22 May 2026 00:00:00 +0000</pubDate><guid>https://zel-forprogress.github.io/blog/daily/2026-05-22/</guid><description>&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;《穷爸爸富爸爸》图书火了以后，作者又出版了很多“富爸爸”系列的图书，如：《富人如何变富》，该作者还成了一个财商教育公司“富爸爸公司&amp;mdash;The Rich Dad Company”。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;道琼斯工业指数是美国传统行业(金融、工业)的龙头企业股票的集合，涵盖面非常窄，反映大型传统蓝筹股(蓝筹股是具有稳定的盈余记录，能定期分派较优厚的股息，业绩优良的公司的普通股票，也被称为&amp;quot;绩优股&amp;quot;。它们是投资者投资的安全和可靠的选择，因为它们的价格相对稳定，收益也比较可靠。)；而标普500指的是美国各行各业代表性企业股票的合集，涵盖面非常广，可以反应美国经济的变化；纳斯达克100指的是在纳斯达克上市的top100创新科技能力最强企业的股票集合。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;“高位钝化”是指技术指标（MACD、RSI等）在高位失去了参考意义（变得迟钝），通常暗示动能衰竭、面临回调。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;杀跌指的是股票在下跌的时候，大家因为恐慌情绪纷纷抛出股票导致股价下降势头越来越迅猛。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;腾讯马维斯（Marvis）上线了，号称是操作系统级别的ai助手，其实体验下来没有太多惊艳的地方，与主流的Codex与CLaude Code并没有很大的区别。唯一让我比较感兴趣的是手机端可以指挥桌面端干活，codex也有与好像是与chatGPT搭配。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;恒生科技指数，号称“港版纳斯达克”。聚焦头部的30家头部港股上市的科技公司（腾讯、阿里、美团、小米、中芯国际、理想汽车），2026年6月纳入智谱、MINIMAX（AI新贵），但是最近股价在下降。&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;</description></item><item><title>Agent 日志 - 2026-05-22</title><link>https://zel-forprogress.github.io/blog/agent/2026-05-22/</link><pubDate>Fri, 22 May 2026 00:00:00 +0000</pubDate><guid>https://zel-forprogress.github.io/blog/agent/2026-05-22/</guid><description>&lt;h1 id="agent-日志"&gt;Agent 日志&lt;a class="anchor" href="#agent-%e6%97%a5%e5%bf%97"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;今日更新概览&lt;br&gt;
今日共更新 10 条内容，包括 3 个项目开发和 3 篇文档，以及 4 天的日报和 Agent 日志。&lt;/p&gt;
&lt;p&gt;内容分类统计&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;项目开发：3 条（context_bridge、Ragent、12306）&lt;/li&gt;
&lt;li&gt;文档：3 条（外键优劣、REPL、虚拟环境区别）&lt;/li&gt;
&lt;li&gt;日报：4 条（5.18 至 5.20）&lt;/li&gt;
&lt;li&gt;Agent 日志：3 条（5.19 至 5.21）&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;简短总结&lt;br&gt;
今日更新以项目开发和文档为主，日报和日志记录持续进行，内容结构清晰，便于查阅。&lt;/p&gt;</description></item><item><title>Agent 日志 - 2026-05-21</title><link>https://zel-forprogress.github.io/blog/agent/2026-05-21/</link><pubDate>Thu, 21 May 2026 00:00:00 +0000</pubDate><guid>https://zel-forprogress.github.io/blog/agent/2026-05-21/</guid><description>&lt;h1 id="agent-日志"&gt;Agent 日志&lt;a class="anchor" href="#agent-%e6%97%a5%e5%bf%97"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;h1 id="技术博客日报---2026-05-21"&gt;技术博客日报 - 2026-05-21&lt;a class="anchor" href="#%e6%8a%80%e6%9c%af%e5%8d%9a%e5%ae%a2%e6%97%a5%e6%8a%a5---2026-05-21"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;h2 id="今日更新概览"&gt;今日更新概览&lt;a class="anchor" href="#%e4%bb%8a%e6%97%a5%e6%9b%b4%e6%96%b0%e6%a6%82%e8%a7%88"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;今日新增内容包括三个项目开发记录：context_bridge、Ragent 和 12306，以及三篇文档：外键优劣、交互式 REPL 和虚拟环境区别。此外，还包含三天的日常总结和 Agent 日志。&lt;/p&gt;
&lt;h2 id="内容分类统计"&gt;内容分类统计&lt;a class="anchor" href="#%e5%86%85%e5%ae%b9%e5%88%86%e7%b1%bb%e7%bb%9f%e8%ae%a1"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;项目开发：3&lt;/li&gt;
&lt;li&gt;文档文章：3&lt;/li&gt;
&lt;li&gt;日常总结：3&lt;/li&gt;
&lt;li&gt;Agent 日志：3&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="简短总结"&gt;简短总结&lt;a class="anchor" href="#%e7%ae%80%e7%9f%ad%e6%80%bb%e7%bb%93"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;今日内容以项目开发和文档为主，涵盖技术细节与日常记录，整体内容结构清晰，便于查阅。&lt;/p&gt;</description></item><item><title>2026.5.20</title><link>https://zel-forprogress.github.io/blog/daily/2026-05-20/</link><pubDate>Wed, 20 May 2026 00:00:00 +0000</pubDate><guid>https://zel-forprogress.github.io/blog/daily/2026-05-20/</guid><description>&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;纳斯达克是美国的一个证券交易所，很多科技巨头在这里上市，如拼多多，京东，百度等中概股（中国公司，但是在美国上市）。是全球科技创新的代名词。我们常说等我买纳斯达克的意思其实是买纳斯达克100指数的基金，从纳斯达克市场中挑选出100个最大的科技公司。国内无法直接购买美股股票，但是可以通过购买QDII（Qualified Domestic Institution Investor，合格境内机构投资者）基金，对应的基金公司会那拿着我们的人民币，兑换成美元后，去买纳斯达克100，然后在纳斯达克市场获利后，将美元兑换成人民币，然后把你对应的获利分配给你。为什么建议定投纳斯达克，是因为纳斯达克代表着全球科技巨头，非常具有潜力，虽然短期内会有波动，但长期来是呈现上升趋势的。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;标普500与纳斯达克100的区别是，标普500涵盖美国各行业500个企业，代表美国整体股价的变化，纳斯达克是科技巨头的股价变化。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;利空是不好的消息容易导致股票下降，利好是好消息，容易导致股票上升。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;套牢的意思是，你买的入的看好的股票一直在降价，亏损了不舍得买，被困住了。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;三板市场指的是的地方，一板市场是沪深主板，二板市场是创业板（成长型公司）&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;MACD指数是看这只股票涨与跌的动能强弱，用来辅助看股票涨跌，找到买卖点。最好搭配其它指数一起。&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;</description></item><item><title>Agent 日志 - 2026-05-20</title><link>https://zel-forprogress.github.io/blog/agent/2026-05-20/</link><pubDate>Wed, 20 May 2026 00:00:00 +0000</pubDate><guid>https://zel-forprogress.github.io/blog/agent/2026-05-20/</guid><description>&lt;h1 id="agent-日志"&gt;Agent 日志&lt;a class="anchor" href="#agent-%e6%97%a5%e5%bf%97"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;h1 id="技术博客日报---2026-05-20"&gt;技术博客日报 - 2026-05-20&lt;a class="anchor" href="#%e6%8a%80%e6%9c%af%e5%8d%9a%e5%ae%a2%e6%97%a5%e6%8a%a5---2026-05-20"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;h2 id="今日更新概览"&gt;今日更新概览&lt;a class="anchor" href="#%e4%bb%8a%e6%97%a5%e6%9b%b4%e6%96%b0%e6%a6%82%e8%a7%88"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;今日新增内容包括三个项目开发（context_bridge、Ragent、12306），以及三篇文档（外键优劣、REPL、虚拟环境区别）和三篇日报与日志。&lt;/p&gt;
&lt;h2 id="内容分类统计"&gt;内容分类统计&lt;a class="anchor" href="#%e5%86%85%e5%ae%b9%e5%88%86%e7%b1%bb%e7%bb%9f%e8%ae%a1"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;项目开发：3篇&lt;/li&gt;
&lt;li&gt;文档文章：3篇&lt;/li&gt;
&lt;li&gt;日报/日志：3篇&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="简短总结"&gt;简短总结&lt;a class="anchor" href="#%e7%ae%80%e7%9f%ad%e6%80%bb%e7%bb%93"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;今日更新以项目开发和文档为主，涵盖技术细节与日常记录，内容全面且实用。&lt;/p&gt;</description></item><item><title>2026.5.19</title><link>https://zel-forprogress.github.io/blog/daily/2026-05-19/</link><pubDate>Tue, 19 May 2026 00:00:00 +0000</pubDate><guid>https://zel-forprogress.github.io/blog/daily/2026-05-19/</guid><description>&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;飞书机器人与飞书应用都可以通过webhook响应外部触发，只不过侧重点不一样。例如指定机器人在特定情况回复指定的信息。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;A股普通股票的最小单位为股，想要买入，最少买1手=100股，卖出可零散股。今天下午沪深300ETF回涨。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;长江存储与长鑫存储是国内存储芯片的巨头，分别在外存（NAND闪存）与内存芯片（DRAM）上实力强劲，两家公司近期准备上市。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;飞书表格与md格式的表格不一致，可以通过飞书提供专门的api来获取。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;一般RAG固定大小分块的实际流程是这样的，首先统一规格化，将多余的\r，空白字符，特殊控制符去掉；从本文的开头开始，按照ChuckSize大小进确定TargetEnd，为了保证语义，会进行边界划分，在overlapSize的范围内，对分界线回退，按照标准的优先级确定新的分界点，如果没有合适的分界点，会使用TargetEnd。然后将这些分好块的加入chucklist等待向量化。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;三大运营商利用自己强大的基础设施，退出来token套餐服务，一定程度上促进了股票的上涨。但是因为套餐模型来质量不确定、价格较高对于c端的吸引力不强，可能会转向B端发展。&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;</description></item><item><title>Agent 日志 - 2026-05-19</title><link>https://zel-forprogress.github.io/blog/agent/2026-05-19/</link><pubDate>Tue, 19 May 2026 00:00:00 +0000</pubDate><guid>https://zel-forprogress.github.io/blog/agent/2026-05-19/</guid><description>&lt;h1 id="agent-日志"&gt;Agent 日志&lt;a class="anchor" href="#agent-%e6%97%a5%e5%bf%97"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;h1 id="技术博客日报-2026-05-19"&gt;技术博客日报 2026-05-19&lt;a class="anchor" href="#%e6%8a%80%e6%9c%af%e5%8d%9a%e5%ae%a2%e6%97%a5%e6%8a%a5-2026-05-19"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;h2 id="今日更新概览"&gt;今日更新概览&lt;a class="anchor" href="#%e4%bb%8a%e6%97%a5%e6%9b%b4%e6%96%b0%e6%a6%82%e8%a7%88"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;今日新增内容包括三个项目开发（context_bridge、Ragent、12306），以及三篇文档（外键优劣、REPL、虚拟环境区别）。此外，更新了近期的每日总结与 Agent 日志。&lt;/p&gt;
&lt;h2 id="内容分类统计"&gt;内容分类统计&lt;a class="anchor" href="#%e5%86%85%e5%ae%b9%e5%88%86%e7%b1%bb%e7%bb%9f%e8%ae%a1"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;项目开发：3&lt;/li&gt;
&lt;li&gt;文档文章：3&lt;/li&gt;
&lt;li&gt;每日总结：3&lt;/li&gt;
&lt;li&gt;Agent 日志：3&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="简短总结"&gt;简短总结&lt;a class="anchor" href="#%e7%ae%80%e7%9f%ad%e6%80%bb%e7%bb%93"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;今日内容以项目开发和文档为主，覆盖技术实践与工具使用，持续积累知识与开发经验。&lt;/p&gt;</description></item><item><title>2026.5.18</title><link>https://zel-forprogress.github.io/blog/daily/2026-05-18/</link><pubDate>Mon, 18 May 2026 00:00:00 +0000</pubDate><guid>https://zel-forprogress.github.io/blog/daily/2026-05-18/</guid><description>&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;MIME (Multipurpose Internet Mail Extensions )，多用途网络邮件扩展，最初是邮件扩展，现在的作用是在网络中标识文件/资源的媒体类型（content-Type）不只是邮件，如pdf，word，docx等。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;cline使用的时候需要自己配置一些信息，mimo API模型的上下文窗口为1百万，1M=1000k，需要注意的是在codex中plus版的context大小为254k。使用api调用上下文大小同样支持100万。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;温度temperature影响模型稳定性，其值在0-1之间，越接近0越稳定与，每次问同样的问题，ai回答是稳定的，越接近1，在同样的情况下，ai的回答越富有变化，具有创造性，可以根据不同的需求来调整该值。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;股票开户后需要在下一个交易日，才能买卖股票。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;rag系统的一般流程是：读取文件字节流-获取文件原始数据-切块-语义增强-向量化-存入向量数据库&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;《太白金星有点烦》&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;我在此之前没有看过西游记的原著，只零星看过86版的电视剧。在此默认电视剧与原著所讲故事情节一致，而这本书圆满到，足以让我认为西游记背后就是如此。小时候只当这是一个普普通通的故事来看，想不到这其中还埋藏着这么多的弯弯绕绕。我经常都长篇小说500万字左右的故事，因此当我读完了这篇只有13万字的短片小说，感觉意犹未尽，但是短短13万字却比很多长篇大论的小说要讲的清晰。读完这本书，最大的收获是我们平时一定要尝尝思考，当然利己主义未必不可取。&lt;/p&gt;</description></item><item><title>Agent 日志 - 2026-05-18</title><link>https://zel-forprogress.github.io/blog/agent/2026-05-18/</link><pubDate>Mon, 18 May 2026 00:00:00 +0000</pubDate><guid>https://zel-forprogress.github.io/blog/agent/2026-05-18/</guid><description>&lt;h1 id="agent-日志"&gt;Agent 日志&lt;a class="anchor" href="#agent-%e6%97%a5%e5%bf%97"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;h1 id="技术博客每日总结日报"&gt;技术博客每日总结日报&lt;a class="anchor" href="#%e6%8a%80%e6%9c%af%e5%8d%9a%e5%ae%a2%e6%af%8f%e6%97%a5%e6%80%bb%e7%bb%93%e6%97%a5%e6%8a%a5"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;&lt;strong&gt;日期：2026-05-18&lt;/strong&gt;&lt;/p&gt;
&lt;h2 id="1-今日更新概览"&gt;1. 今日更新概览&lt;a class="anchor" href="#1-%e4%bb%8a%e6%97%a5%e6%9b%b4%e6%96%b0%e6%a6%82%e8%a7%88"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;今日新增内容包括三个项目开发（context_bridge、Ragent、12306），以及三篇文档（外键优劣、REPL、虚拟环境区别），还包含几篇历史日报和Agent日志。&lt;/p&gt;
&lt;h2 id="2-内容分类统计"&gt;2. 内容分类统计&lt;a class="anchor" href="#2-%e5%86%85%e5%ae%b9%e5%88%86%e7%b1%bb%e7%bb%9f%e8%ae%a1"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;项目开发：3项&lt;/li&gt;
&lt;li&gt;文档笔记：3篇&lt;/li&gt;
&lt;li&gt;日报记录：3篇&lt;/li&gt;
&lt;li&gt;Agent日志：3条&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="3-简短总结"&gt;3. 简短总结&lt;a class="anchor" href="#3-%e7%ae%80%e7%9f%ad%e6%80%bb%e7%bb%93"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;今日内容以项目开发和文档整理为主，涵盖技术细节与工具使用，整体内容结构清晰，便于查阅与回顾。&lt;/p&gt;</description></item><item><title>2026.5.17</title><link>https://zel-forprogress.github.io/blog/daily/2026-05-17/</link><pubDate>Sun, 17 May 2026 00:00:00 +0000</pubDate><guid>https://zel-forprogress.github.io/blog/daily/2026-05-17/</guid><description>&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;想要将你知识库中的飞书文档导出来，需要在飞书开发平台创建一个应用然后赋予其相应的权限以及机器人功能。在飞书群中建立一个群聊，然后将该机器人加入到群聊中。随后再将你要导出的飞书知识库的管理成员中添加该机器人所在的群聊。随后可以通过该应用调用飞书相关的api，以此来导出对应的文档。飞书提供可以导出pdf md word等格式的api。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;SSE是基于http协议实现长连接，服务端单向推送，是服务器与客户端长时间建立连接，服务端向客户端持续发送消息，直到消息发送完毕。HTTP是短连接，单次请求响应。webSocket是全双工双向长连接。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;cursor可以自己配置第三方的api来使用，但是有一个缺点是agent每月有使用次数的限制，大约在15次左右。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;使用了这么久的ClaudeCode IDE插件的感触是只会执行任务不会总结，每次执行完不知道它是怎么操作的，与codex有明显的差距。可以试一下装一个让其每次执行完任务总结的skill来试一下。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;证券公司开户，在提供了一些列的证明材料后，需要一个工作日的时间来进行审核。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;余额宝的利率不是固定的，会随着整体市场利率而调整。&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;</description></item><item><title>Agent 日志 - 2026-05-17</title><link>https://zel-forprogress.github.io/blog/agent/2026-05-17/</link><pubDate>Sun, 17 May 2026 00:00:00 +0000</pubDate><guid>https://zel-forprogress.github.io/blog/agent/2026-05-17/</guid><description>&lt;h1 id="agent-日志"&gt;Agent 日志&lt;a class="anchor" href="#agent-%e6%97%a5%e5%bf%97"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;h1 id="技术博客日报---2026-05-17"&gt;技术博客日报 - 2026-05-17&lt;a class="anchor" href="#%e6%8a%80%e6%9c%af%e5%8d%9a%e5%ae%a2%e6%97%a5%e6%8a%a5---2026-05-17"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;h2 id="今日更新概览"&gt;今日更新概览&lt;a class="anchor" href="#%e4%bb%8a%e6%97%a5%e6%9b%b4%e6%96%b0%e6%a6%82%e8%a7%88"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;今日更新包括 Ragent 项目学习笔记、context_bridge 和 Ragent 项目开发，以及三篇文档内容：外键优劣、REPL 交互、虚拟环境区别。此外还有三天的日常记录和 Agent 日志。&lt;/p&gt;
&lt;h2 id="内容分类统计"&gt;内容分类统计&lt;a class="anchor" href="#%e5%86%85%e5%ae%b9%e5%88%86%e7%b1%bb%e7%bb%9f%e8%ae%a1"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;项目相关：3篇&lt;/li&gt;
&lt;li&gt;文档笔记：3篇&lt;/li&gt;
&lt;li&gt;日常记录：3篇&lt;/li&gt;
&lt;li&gt;Agent 日志：3篇&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="简短总结"&gt;简短总结&lt;a class="anchor" href="#%e7%ae%80%e7%9f%ad%e6%80%bb%e7%bb%93"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;今日更新以项目开发和文档笔记为主，涵盖技术细节与工具使用，内容较为集中。&lt;/p&gt;</description></item><item><title>2026.5.15</title><link>https://zel-forprogress.github.io/blog/daily/2026-05-15/</link><pubDate>Sat, 16 May 2026 00:00:00 +0000</pubDate><guid>https://zel-forprogress.github.io/blog/daily/2026-05-15/</guid><description>&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;苹果移动设备codex土区充值流程，注册苹果账号-&amp;gt;购买一个礼品卡兑换码-&amp;gt;更换苹果移动设备的地址为土耳-&amp;gt;在苹果商店中兑换礼品卡-&amp;gt;下载chatgpt移动端-&amp;gt;登录你的账号-&amp;gt;升级plus在缴费的时候可以使用积分购买。&lt;/p&gt;
&lt;p&gt;注意苹果账号如果刚刚注册，最好等一天，在使用礼品卡不然充不上，不然你的账号会出发苹果账号的风控，导致余额冻结。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;对象存储系统，与传统的文件存储系统不一致，没有层次结构。只有每个存储对象具有一个唯一的key标识，每个对象对象之间没有复杂的关系。在对象存储系统中，顶级的存储概念叫“桶”（bucket），对象存储在桶中。MinIO是一个比较有名的对象存储系统。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;敏感信息（邮箱、密钥、密码）需存储在仓库 Settings → Secrets and variables → Actions（仓库级Secrets） 中；核心逻辑：Secrets加密存储、代码中不可明文查看，Workflow可通过环境变量调用，避免私有信息硬编码暴露在代码里。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;github的actions功能是提供自动化，让你的项目自己执行一些动作，但是需要在仓库.github/workflows/目录下创建YAML格式的WorkFlow文件，来说明你的自动化任务，触发条件等。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;简历投官网竞争比较激烈（很多大佬），简历容易被刷，如果有内推码尽量使用内推码，&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;codex的skill的组成：agent文件里面放置着codex的UI如何展示该skill，scripts脚本文件，reference文件描述如何执行该skill（需要注意什么），SKILL.md文件，最主要的文件该文件是必须的，描述skill是做什么。&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;</description></item><item><title>Agent 日志 - 2026-05-16</title><link>https://zel-forprogress.github.io/blog/agent/2026-05-16/</link><pubDate>Sat, 16 May 2026 00:00:00 +0000</pubDate><guid>https://zel-forprogress.github.io/blog/agent/2026-05-16/</guid><description>&lt;h1 id="agent-日志"&gt;Agent 日志&lt;a class="anchor" href="#agent-%e6%97%a5%e5%bf%97"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;今日更新概览&lt;br&gt;
今日更新了 Ragent 项目学习笔记，以及 2026-05-14 和 2026-05-15 的 Agent 日志内容。&lt;/p&gt;
&lt;p&gt;内容分类统计&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;学习笔记：1 篇&lt;/li&gt;
&lt;li&gt;日报：1 篇&lt;/li&gt;
&lt;li&gt;Agent 日志：2 篇&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;简短总结&lt;br&gt;
今日更新内容以学习和日志为主，涵盖项目笔记与日常记录，内容结构清晰，便于查阅。&lt;/p&gt;</description></item><item><title>Agent 日志 - 2026-05-15</title><link>https://zel-forprogress.github.io/blog/agent/2026-05-15/</link><pubDate>Fri, 15 May 2026 00:00:00 +0000</pubDate><guid>https://zel-forprogress.github.io/blog/agent/2026-05-15/</guid><description>&lt;h1 id="agent-日志"&gt;Agent 日志&lt;a class="anchor" href="#agent-%e6%97%a5%e5%bf%97"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;h1 id="技术博客每日总结日报---2026-05-15"&gt;技术博客每日总结日报 - 2026-05-15&lt;a class="anchor" href="#%e6%8a%80%e6%9c%af%e5%8d%9a%e5%ae%a2%e6%af%8f%e6%97%a5%e6%80%bb%e7%bb%93%e6%97%a5%e6%8a%a5---2026-05-15"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;h2 id="今日更新概览"&gt;今日更新概览&lt;a class="anchor" href="#%e4%bb%8a%e6%97%a5%e6%9b%b4%e6%96%b0%e6%a6%82%e8%a7%88"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;今日无新增内容，主要更新为昨日（2026-05-14）的日报和 Agent 日志。&lt;/p&gt;
&lt;h2 id="内容分类统计"&gt;内容分类统计&lt;a class="anchor" href="#%e5%86%85%e5%ae%b9%e5%88%86%e7%b1%bb%e7%bb%9f%e8%ae%a1"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;文档类：2篇（用户指南、快速开始）&lt;/li&gt;
&lt;li&gt;日报类：1篇（2026-05-14）&lt;/li&gt;
&lt;li&gt;日志类：1篇（Agent 日志 - 2026-05-14）&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="简短总结"&gt;简短总结&lt;a class="anchor" href="#%e7%ae%80%e7%9f%ad%e6%80%bb%e7%bb%93"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;今日内容更新较少，主要围绕文档和历史日报整理，保持信息的连续性和可追溯性。&lt;/p&gt;</description></item><item><title>2026.5.14</title><link>https://zel-forprogress.github.io/blog/daily/2026-05-14/</link><pubDate>Thu, 14 May 2026 00:00:00 +0000</pubDate><guid>https://zel-forprogress.github.io/blog/daily/2026-05-14/</guid><description>&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;一般提供使用java编写项目的部署服务，都会需要先绑定一个visa卡（visa是一个国际银行卡清算组织）&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;github提供pages功能，可以方便的将自己github的一些静态网页资源部署，并且通过action 部署，来启动自动化部署（一旦github仓库修改就会自动开启部署）&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;hugo是一个使用go语言编写的高性能静态网站生成器的服务，比较快速。hugo book是hugo的一种mode，其网站的布局非常简洁，是现代常见的一种网页布局，左侧是菜单项与搜索栏。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;deepseekTUI（Text-based User Interface，文本用户界面）是一款针对于deepseek模型的CLI agent，CLI具有比较友好的界面。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;codex土区充值（土耳其），一些落后地区购买同一订阅所需金额较少，因此有些人通过一些手段来赚取中间价。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;传统RAG技术存在每次检索拼接上下文消耗大量token，理解慢，成本高。RAG开发者研究出一种新的技术（newql），通过提前编译知识库，结构化预处理，减少运行时消耗动态token量，提升推理速度，降低成本。&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;</description></item><item><title>Agent 日志 - 2026-05-14</title><link>https://zel-forprogress.github.io/blog/agent/2026-05-14/</link><pubDate>Thu, 14 May 2026 00:00:00 +0000</pubDate><guid>https://zel-forprogress.github.io/blog/agent/2026-05-14/</guid><description>&lt;h1 id="agent-日志"&gt;Agent 日志&lt;a class="anchor" href="#agent-%e6%97%a5%e5%bf%97"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;h2 id="执行任务"&gt;执行任务&lt;a class="anchor" href="#%e6%89%a7%e8%a1%8c%e4%bb%bb%e5%8a%a1"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;监控 GitHub 仓库更新&lt;/li&gt;
&lt;li&gt;自动构建和部署网站&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="分析结果"&gt;分析结果&lt;a class="anchor" href="#%e5%88%86%e6%9e%90%e7%bb%93%e6%9e%9c"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;网站构建成功&lt;/li&gt;
&lt;li&gt;所有页面正常渲染&lt;/li&gt;
&lt;li&gt;部署流程运行正常&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="建议"&gt;建议&lt;a class="anchor" href="#%e5%bb%ba%e8%ae%ae"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;可以考虑添加更多自动化测试&lt;/li&gt;
&lt;li&gt;建议定期备份配置文件&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>2026.5.13</title><link>https://zel-forprogress.github.io/blog/daily/2026-05-13/</link><pubDate>Wed, 13 May 2026 00:00:00 +0000</pubDate><guid>https://zel-forprogress.github.io/blog/daily/2026-05-13/</guid><description>&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;cloudflare（主要免费部署产品是 Cloudflare Pages 和 Workers）与render，都可以免费部署项目，但是前者的缺点是不可以部署java项目，后者可以通过docker部署java项目（需要新增一个dockerFile文件来说明），部署完后如果guthub又有新的提交后项目会自动重新更新，但是免费版在请求的时候有速度限制，尤其是项目冷却后重新加载时非常慢。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;rocketMQ，阿里开发的用来处理高并发请求的中间件。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;minIO（RustFS）是开源的对象存储系统，完全兼容AWS的s3协议。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Claude IDE插件可以通过设置，开启最高权限，是claude在工作的时候不用每次都询问用户是否同意操作，浪费时间。设置选项为：Allow Dangerously Skip Permissions 。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;李代桃僵的意思是另外的人来代替原本该受处罚的人处罚，带人受过，投桃报李，意思是一个人给予了另一个人好处，这个人做出相应的回报&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;飞书的知识库不能直接导出，如果想要导出，通过飞书开放平台创建自建应用，申请 &lt;code&gt;wiki:document:readonly&lt;/code&gt; 等权限，然后调用 API 批量导出。&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;</description></item><item><title>2026.5.11</title><link>https://zel-forprogress.github.io/blog/daily/2026-05-11/</link><pubDate>Tue, 12 May 2026 00:00:00 +0000</pubDate><guid>https://zel-forprogress.github.io/blog/daily/2026-05-11/</guid><description>&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Qt框架是用c语言编写的，是一个功能很多图形界面框架。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;上证指数，深证成指与创业板指，这三个指数是对A股的不同纬度方向的涨跌展示，其中上证指数指的是上海证券交易所股票的总体涨跌，深证成指，指的是深圳证券交易所的500只代表性大盘股涨跌情况，创业板指大多是科创，成长型企业。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;IPO（Initial Public Offering）首次公开募资，等同于上市。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;买的股票降价了，但是你还没有卖出去，没有产生实际的亏损，叫做浮亏。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;余额宝只有在自己转入余额宝中的余额被确定的时候，才会开始产生利息。余额宝其实是一个货币基金产品，之所以会给你利息，是因为他把大家的钱去做银行存款、短期国债登低风险投资去赚钱，从而把转到钱的一部分给大家，以此来支付给用户利息。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;沪深300ETF（exchange traded fund），是一种交易指数基金，买一份相当于买了很多的上市公司的股票。&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;</description></item><item><title>2026.5.12</title><link>https://zel-forprogress.github.io/blog/daily/2026-05-12/</link><pubDate>Tue, 12 May 2026 00:00:00 +0000</pubDate><guid>https://zel-forprogress.github.io/blog/daily/2026-05-12/</guid><description>&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;S3指的是Amazon sample storage service objection，与阿里云的OSS（objection storage service）一样，都是云对象存储服务。与网盘（文件存储）不一样的是，S3存储是以对象的形式存在，并且提供了标准的http与https访问路径。文件存储存在层级结构（文件夹），但是对象存储没有，它是一个超大的存储柜，每个文件都是是一个独立的对象，存在唯一的key（文件名）。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;女娲skill，可以通过这个skill来简易的蒸馏一个其它skill。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;npx命令是临时把远程npm官方仓库中的包下载到本地使用一下，使用完就就会自动删除缓存，不会污染本地环境。当然它会先检查本地中有没有，没有它就会使用远程的。例如，npx skill（s） add “skill路径（比如你的github上skill所在的仓库）”&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;github仓库不能使用中文命名&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;bitget会检查你的ip地址，部分地区不提供服务&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;通过蒸馏出来的skill，给不同的agent应用上，其回答问题的风格非常像被蒸馏的人，借此可以搭建一个聊天软件，只不过这个聊天软件中的人都是带有不同skill的agent，可以单独聊也可以建立一个群聊。&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;</description></item><item><title>2026.5.8</title><link>https://zel-forprogress.github.io/blog/daily/2026-05-08/</link><pubDate>Sat, 09 May 2026 00:00:00 +0000</pubDate><guid>https://zel-forprogress.github.io/blog/daily/2026-05-08/</guid><description>&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;github发布release的过程，进入你的仓库项目，新建一个release，进入新建release的界面，选择一个tag（一般是版本号如v0.1.0，没有就新创建一个），然后填写release note更新说明，以及release title，然后上传项目打包好的exe、SetUp等可执行安装包。我的项目是通过npm run pack 等脚本命令建立的setup可执行文件，打包产物作为附件上传。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;transformer框架的自注意机制的发明，解决了为大模型的发展瓶颈，以前是静态词向量/静态上下文，每个词的意思都是固定的，比如苹果理解为水果苹果的话，苹果公司就会被理解为水果苹果公司。所谓的自注意机制，就是使得大模型具有了可以根据上下文来推断某个词的语义的能力（动态上下文）。苹果好吃，这里的苹果是水果，苹果公司在这种情况下就会被理解为著名的苹果公司。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;多模态模型发展的必要性。为了使得大模型能统一理解文字、图片、视频等信息，引入了多模态模型，其实它们是一种嵌入模型，将上面的信息变成同一纬度的的向量存入向量数据库中，根据向量相似度匹配判断跨模态语义关联，比如“一个可爱的狗”的文字与一张描述“一个可爱狗”的图片，两者生成得向量空间距离很近，语义相似度极高。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;嵌入模型的训练方式，对比学习训练，掩码预学习训练，多模态对齐预训练。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;对了切片方式除了固定字符切片，递归字符切片与语义切片还有向量聚类切片。语义切片是在语义跳跃点（根据向量距离来判断，距离越近语义越接近，越远越语义越不接近，在语义距离大于一定距离处即语义跳跃点）处进行切片；而向量聚类切片的意思是，先把所有的文本片段全部转化为向量，然后进行一次全局的向量相似比较，用聚类算法自动把语义接近聚成一类，每一类就是一个分片。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;语义跳跃的意思是两个向量之间的相似度十分弱，也就是语义不接近，产生语义跳跃，适合作为切点。&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;</description></item><item><title>2026.5.9</title><link>https://zel-forprogress.github.io/blog/daily/2026-05-09/</link><pubDate>Sat, 09 May 2026 00:00:00 +0000</pubDate><guid>https://zel-forprogress.github.io/blog/daily/2026-05-09/</guid><description>&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;微软提供了一个Windows UI Annotation，微软内置的系统辅助功能API，允许程序读取系统上的任何UI元素文本，包括浏览器网页。我们可以通过这个api来使得我们的程序可以读取用户正在浏览的网页的内容。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;文本分块还有一个策略是基于文本结构的分块，将机构化的文档如md文档，按照已有的结构进行分片，如按照一级标题分片；但是这里村存在一个问题是，有些部分的内容过长可能会导致，分片后长度仍然超出目标chunkSize，还需要再分片。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;小米mimo模型不同套餐的baseURL的地址不一样，需要注意一下。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;丰富giuhub的个人简介部分是通过创建一个同名仓库，然后再在该仓库的下面创建一个readme文件，然后这个文件的内容就会展示在个人profile上方区域。&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;</description></item><item><title>2026.5.7</title><link>https://zel-forprogress.github.io/blog/daily/2026-05-07/</link><pubDate>Thu, 07 May 2026 00:00:00 +0000</pubDate><guid>https://zel-forprogress.github.io/blog/daily/2026-05-07/</guid><description>&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;codex登录新增手机号验证，可能是为了防止批量注册账号来嫖取免费额度。+86大陆手机号目前不支持被检测，会报错。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;codex的插件-HyperFrames，可以通过它来制作视频。其原理是把HTML+JS+CSS网页制成mp4格式的视频。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;RAG在垂直领域的应用已经落后了，依靠向量相似度进行匹配，一定会存在语义模糊的情况。KAG技术（Knowledge-Augment-Generation）知识图谱（结构化数据）+向量检索双重引擎，在专业垂直领域比RAG强。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;api中转站-rkapi，可以在ccswitch中配置中转站兼容chatgpt等模型提供方的url与apikey，来调claude与chatpgt官方模型，没有plan计划，按调用token量计费。&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;</description></item><item><title>2026.5.6</title><link>https://zel-forprogress.github.io/blog/daily/2026-05-06/</link><pubDate>Wed, 06 May 2026 00:00:00 +0000</pubDate><guid>https://zel-forprogress.github.io/blog/daily/2026-05-06/</guid><description>&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;windsurf的对话记录的存储格式为pb（protocol buffer 一种二进制数据交换格式，跨语言平台）数据文件，不能直接读取。必须要有windsurf的proto定义，才能反序列化解析。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;langchain存在三种分片策略，固定字符分片，递归字符分片以及语义分片。其中langchain的固定字符分片，是指先，按照制定分隔符（比如换行）直接分片，当分片大小小于chunkSize时，直接将该切片当做一个chunk，继续下一个段落分片的判断。当分片的大小大于chunkSize的时候，会直接将大于chunkSize的那些字符丢失，然后当做一个chunk，还有一点是为了不丢失语义，它有在不同切片之间存在overlapSize大小的可重叠字符；下一个是递归字符分片，它会在一个字符列表中遍历首先使用优先级最高的字符，当字符列表中的字符可以分片，就选择这个字符首先进行分片，一般这个字符切出来切片会有大于chunkSize的切片存在，那就对这个切片继续进行下一等级的字符进行切片，直至大小合适；还有一个是语义切片，依赖Embedding模型，按照语义切分，语义完整性最好，但是开销最大。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;我的项目中的阈值的意思是当上下文token量达到规定token量的百分比的时候自动执行一次上下文总结。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;web3指的是web发展的第三阶段，我理解的不同阶段是指的数据而言，web1阶段用户只能看静态网页，不产生数据；web2阶段也就是现在的大部分网页，用户在web上的行为可以产生数据，但是数据的所有方归该网站的所有者；web3则是自己的数据归自己。web3钱包就是指，用户自己管理自己的资金数据，而不依托于第三方平台。bitget是一个虚拟货币交易平台，在这里可以使用web3钱包，或者它自己的资金平台进行交易。&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;</description></item><item><title>2026.5.2</title><link>https://zel-forprogress.github.io/blog/daily/2026-05-02/</link><pubDate>Sat, 02 May 2026 00:00:00 +0000</pubDate><guid>https://zel-forprogress.github.io/blog/daily/2026-05-02/</guid><description>&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;base64，可以将一些二进制数据（图片，视频等）转成dataURL编码字符串，方便存储与获取。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;claudeCode的官方原生服务一般需要账号登录后才可以使用，不管是ClaudeCode CLI，IDE插件还是desktop。CLI与IDE插件可以通过CCSwitch来使用第三方的API服务，来绕过登录，直接使用claude code。而desktop可以通过启动它的开发者模式来使用cowork配置第三方api服务，进而可以绕过它的登录校验。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;curl是一个可以向发送api/网络请求的工具，兼容很多协议如http，https，ftp等&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;</description></item><item><title>curl命令</title><link>https://zel-forprogress.github.io/blog/wendang/curl%E5%91%BD%E4%BB%A4/</link><pubDate>Sat, 02 May 2026 00:00:00 +0000</pubDate><guid>https://zel-forprogress.github.io/blog/wendang/curl%E5%91%BD%E4%BB%A4/</guid><description>&lt;p&gt;&lt;code&gt;curl&lt;/code&gt; 是一个非常强大的命令行工具，它用于与服务器交换数据。通过 &lt;code&gt;curl&lt;/code&gt;，你可以向服务器发送 HTTP 请求，下载或上传文件，甚至与 API 进行交互。它支持多种协议，如 HTTP、HTTPS、FTP、FTPS、SFTP、SMTP 等等。&lt;/p&gt;
&lt;h3 id="基本语法"&gt;基本语法：&lt;a class="anchor" href="#%e5%9f%ba%e6%9c%ac%e8%af%ad%e6%b3%95"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;curl &lt;span style="color:#f92672"&gt;[&lt;/span&gt;选项&lt;span style="color:#f92672"&gt;]&lt;/span&gt; &lt;span style="color:#f92672"&gt;[&lt;/span&gt;URL&lt;span style="color:#f92672"&gt;]&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="常见用途"&gt;常见用途：&lt;a class="anchor" href="#%e5%b8%b8%e8%a7%81%e7%94%a8%e9%80%94"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;获取网页内容&lt;/strong&gt;:&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-plaintext" data-lang="plaintext"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;curl http://example.com&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;这条命令将会获取 &lt;code&gt;example.com&lt;/code&gt; 网站的 HTML 内容并显示在终端上。&lt;/p&gt;
&lt;ol start="2"&gt;
&lt;li&gt;&lt;strong&gt;下载文件&lt;/strong&gt;:&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-plaintext" data-lang="plaintext"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;curl -O https://example.com/file.zip&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;使用 &lt;code&gt;-O&lt;/code&gt; 选项可以将文件下载到本地并保留原文件名。&lt;/p&gt;
&lt;ol start="3"&gt;
&lt;li&gt;&lt;strong&gt;发送 POST 请求&lt;/strong&gt;:&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-plaintext" data-lang="plaintext"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;curl -X POST -d &amp;#34;username=user&amp;amp;password=pass&amp;#34; http://example.com/login&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;这条命令向 &lt;code&gt;example.com/login&lt;/code&gt; 发送一个 POST 请求，数据为 &lt;code&gt;username=user&amp;amp;password=pass&lt;/code&gt;。&lt;/p&gt;
&lt;ol start="4"&gt;
&lt;li&gt;&lt;strong&gt;上传文件&lt;/strong&gt;:&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-plaintext" data-lang="plaintext"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;curl -X POST -F &amp;#34;file=@/path/to/file&amp;#34; http://example.com/upload&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;使用 &lt;code&gt;-F&lt;/code&gt; 选项可以发送文件，&lt;code&gt;@&lt;/code&gt; 后跟文件路径表示上传的文件。&lt;/p&gt;
&lt;ol start="5"&gt;
&lt;li&gt;&lt;strong&gt;获取响应头&lt;/strong&gt;:&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-plaintext" data-lang="plaintext"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;curl -I http://example.com&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;code&gt;-I&lt;/code&gt; 选项只获取响应的头部信息。&lt;/p&gt;
&lt;ol start="6"&gt;
&lt;li&gt;&lt;strong&gt;发送自定义请求头&lt;/strong&gt;:&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-plaintext" data-lang="plaintext"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;curl -H &amp;#34;Authorization: Bearer your_token&amp;#34; http://example.com/data&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;使用 &lt;code&gt;-H&lt;/code&gt; 选项可以添加自定义的请求头，这里用于设置 &lt;code&gt;Authorization&lt;/code&gt; 头。&lt;/p&gt;
&lt;ol start="7"&gt;
&lt;li&gt;&lt;strong&gt;跟随重定向&lt;/strong&gt;:&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-plaintext" data-lang="plaintext"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;curl -L http://example.com&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;code&gt;-L&lt;/code&gt; 选项使得 &lt;code&gt;curl&lt;/code&gt; 自动跟随服务器返回的重定向。&lt;/p&gt;</description></item><item><title>2026.4.30</title><link>https://zel-forprogress.github.io/blog/daily/2026-04-30/</link><pubDate>Thu, 30 Apr 2026 00:00:00 +0000</pubDate><guid>https://zel-forprogress.github.io/blog/daily/2026-04-30/</guid><description>&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;今天想了一个项目context-bridge项目。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Tailwind css是一个原子化css框架，内置预设样式类名，通过在元素的class属性中添加相应名称，从而给该元素添加对应的css样式效果。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;next.js是一个可以通过一个js或ts语言来编写前后端的react全栈框架。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Electron是一个跨端桌面客户端开发框架通过js语言来编写，可以将web应用打包成windows或者mac桌面客户端。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;python语言中，函数末尾的-&amp;gt;是非必须的，用于提高代码可读性以及方便静态检查，在编译后会被忽略，与ts中的：如出一辙。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;所谓skill，就是给大模型回答的时候设定一个规则，让其按照这个规则来回答、解决问题。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;所谓MCP（model context protocol）是给大模型的一个接口，让其拥有接入外部工具的能力，比如playweight，就是让大模型拥有自己浏览网页的能力。&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;</description></item><item><title>context_bridge项目开发</title><link>https://zel-forprogress.github.io/blog/project/context_bridge%E9%A1%B9%E7%9B%AE%E5%BC%80%E5%8F%91/</link><pubDate>Thu, 30 Apr 2026 00:00:00 +0000</pubDate><guid>https://zel-forprogress.github.io/blog/project/context_bridge%E9%A1%B9%E7%9B%AE%E5%BC%80%E5%8F%91/</guid><description>&lt;p&gt;&lt;strong&gt;&lt;code&gt;技术栈：React+TS+FastAPI+TailWind CSS&lt;/code&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;h2 id="-前端部分用户看到和交互的界面"&gt;🎨 前端部分：用户看到和交互的界面&lt;a class="anchor" href="#-%e5%89%8d%e7%ab%af%e9%83%a8%e5%88%86%e7%94%a8%e6%88%b7%e7%9c%8b%e5%88%b0%e5%92%8c%e4%ba%a4%e4%ba%92%e7%9a%84%e7%95%8c%e9%9d%a2"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="react--界面的积木工厂"&gt;React —— 界面的“积木工厂”&lt;a class="anchor" href="#react--%e7%95%8c%e9%9d%a2%e7%9a%84%e7%a7%af%e6%9c%a8%e5%b7%a5%e5%8e%82"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;是什么：一个用于构建用户界面的 JavaScript 库，由 Facebook 开发。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;通俗理解：它让你像搭积木一样，把网页拆分成一个个独立、可复用的组件（比如一个按钮、一个输入框、整个聊天窗口）。当数据变化时，React 会自动高效地更新需要变化的部分，不需要手动操作整个网页。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;为什么用它：开发效率高、组件化、生态极其丰富、大厂背书。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="typescript-ts--javascript-的严格教官"&gt;TypeScript (TS) —— JavaScript 的“严格教官”&lt;a class="anchor" href="#typescript-ts--javascript-%e7%9a%84%e4%b8%a5%e6%a0%bc%e6%95%99%e5%ae%98"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;是什么：在 JavaScript 的基础上增加了静态类型检查。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;通俗理解：写 JS 时如果变量类型弄错（比如把数字当字符串用），可能要等到运行时报错才发现。TS 在你写代码的时候就划红线提醒你，并且提供智能补全。就像给 JS 语言加了一套“安检系统”，大型项目里能减少大量低级错误。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;为什么加它：让代码更健壮、更易维护、团队协作更顺畅。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="tailwind-css--原子化的样式工具箱"&gt;Tailwind CSS —— “原子化”的样式工具箱&lt;a class="anchor" href="#tailwind-css--%e5%8e%9f%e5%ad%90%e5%8c%96%e7%9a%84%e6%a0%b7%e5%bc%8f%e5%b7%a5%e5%85%b7%e7%ae%b1"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;是什么：一个实用优先的 CSS 框架。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;通俗理解：传统 CSS 是自己起名字、写一大段样式。Tailwind 提供大量小工具类（如 &lt;code&gt;p-4&lt;/code&gt; 代表内边距、&lt;code&gt;bg-blue-500&lt;/code&gt; 代表背景色），你直接在 HTML 标签上组合这些类名，不用离开 HTML 文件就能快速布局。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;为什么用它：开发速度极快、最终 CSS 文件体积小（未使用的样式会被清除）、样式一致性容易保证。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="-后端部分处理数据和业务逻辑"&gt;🖥️ 后端部分：处理数据和业务逻辑&lt;a class="anchor" href="#-%e5%90%8e%e7%ab%af%e9%83%a8%e5%88%86%e5%a4%84%e7%90%86%e6%95%b0%e6%8d%ae%e5%92%8c%e4%b8%9a%e5%8a%a1%e9%80%bb%e8%be%91"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="fastapi--高性能的-python-api-框架"&gt;FastAPI —— 高性能的 Python API 框架&lt;a class="anchor" href="#fastapi--%e9%ab%98%e6%80%a7%e8%83%bd%e7%9a%84-python-api-%e6%a1%86%e6%9e%b6"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;是什么：一个基于 Python 的现代 Web 框架，专门用来快速构建 API（应用程序接口）。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;通俗理解：你可以把它想象成一个“数据服务员”：前端 React 向它请求数据（比如“/users/123”），它去数据库查到用户信息，包装成 JSON 格式返回给前端。它之所以叫“Fast”，是因为性能极高（基于 Starlette 和 Pydantic），而且自带交互式 API 文档。&lt;/p&gt;</description></item><item><title>MCP Server</title><link>https://zel-forprogress.github.io/blog/wendang/mcp-server/</link><pubDate>Thu, 30 Apr 2026 00:00:00 +0000</pubDate><guid>https://zel-forprogress.github.io/blog/wendang/mcp-server/</guid><description>&lt;p&gt;MCP Server 是 &lt;strong&gt;Model Context Protocol&lt;/strong&gt; 的缩写，是 Anthropic 推出的一个开放协议，让 AI 模型可以调用外部工具。&lt;/p&gt;
&lt;h2 id="简单理解"&gt;简单理解&lt;a class="anchor" href="#%e7%ae%80%e5%8d%95%e7%90%86%e8%a7%a3"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-plaintext" data-lang="plaintext"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;传统方式：
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;你 ──打字──&amp;gt; Claude ──回答──&amp;gt; 你
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;（Claude 只能聊天，不能操作外部世界）
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;MCP 方式：
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;你 ──提问──&amp;gt; Claude ──调用工具──&amp;gt; MCP Server ──执行──&amp;gt; 返回结果
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; │
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ├── 读写文件
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ├── 查询数据库
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ├── 调用API
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; └── 任何你能编程实现的事&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;MCP 就是一个&lt;strong&gt;标准化的插件系统&lt;/strong&gt;。你写一个 Python/TypeScript 脚本，声明它提供哪些工具，Agent 就能在对话中自动调用这些工具。类似于给浏览器写扩展插件，只不过是给 AI Agent 写的。&lt;/p&gt;</description></item><item><title>Next.js</title><link>https://zel-forprogress.github.io/blog/wendang/next.js/</link><pubDate>Thu, 30 Apr 2026 00:00:00 +0000</pubDate><guid>https://zel-forprogress.github.io/blog/wendang/next.js/</guid><description>&lt;p&gt;Next.js 是一个把 React 从纯前端库升级为全栈应用框架的生产力工具，让你通过文件即路由、服务端组件和开箱即用的优化，简单高效地构建现代 Web 应用。&lt;/p&gt;
&lt;p&gt;使用 Next.js，你可以用 JavaScript/TypeScript 这一种语言，在同一个项目里同时编写：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;前端：React 组件（UI 交互、页面渲染）&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;后端：API Routes、Server Actions、数据获取、数据库查询等&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="具体体现"&gt;具体体现：&lt;a class="anchor" href="#%e5%85%b7%e4%bd%93%e4%bd%93%e7%8e%b0"&gt;#&lt;/a&gt;&lt;/h3&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;Next.js 方式&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;语言&lt;/td&gt;
					&lt;td&gt;前端 JS + 后端（Java/Go/PHP等）&lt;/td&gt;
					&lt;td&gt;统一用 JavaScript/TypeScript&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;tr&gt;
					&lt;td&gt;接口&lt;/td&gt;
					&lt;td&gt;需要定义 REST/GraphQL，通过 HTTP 调用&lt;/td&gt;
					&lt;td&gt;直接导入函数或调用 Server Action，无需手动写接口&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;数据获取&lt;/td&gt;
					&lt;td&gt;前端 fetch → 后端 → 返回 JSON&lt;/td&gt;
					&lt;td&gt;服务端组件里直接 await db.query()&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;</description></item><item><title>TailwindCSS与传统CSS</title><link>https://zel-forprogress.github.io/blog/wendang/tailwindcss%E4%B8%8E%E4%BC%A0%E7%BB%9Fcss/</link><pubDate>Thu, 30 Apr 2026 00:00:00 +0000</pubDate><guid>https://zel-forprogress.github.io/blog/wendang/tailwindcss%E4%B8%8E%E4%BC%A0%E7%BB%9Fcss/</guid><description>&lt;h2 id="-场景创建一个用户卡片"&gt;🎯 场景：创建一个用户卡片&lt;a class="anchor" href="#-%e5%9c%ba%e6%99%af%e5%88%9b%e5%bb%ba%e4%b8%80%e4%b8%aa%e7%94%a8%e6%88%b7%e5%8d%a1%e7%89%87"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;假设你需要做一个这样的用户卡片：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;白色背景、圆角、阴影&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;内边距、外边距&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;标题大号加粗、文字灰色&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;按钮蓝色背景、白色文字、圆角&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="-传统-css-写法"&gt;📝 传统 CSS 写法&lt;a class="anchor" href="#-%e4%bc%a0%e7%bb%9f-css-%e5%86%99%e6%b3%95"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;你先要写一个 CSS 文件：&lt;/p&gt;
&lt;p&gt;&lt;code&gt;/* styles.css */&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;.card {&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt; background-color: white;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt; border-radius: 8px;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt; box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt; padding: 20px;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt; margin: 16px;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt; max-width: 300px;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;}&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;.title {&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt; font-size: 24px;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt; font-weight: bold;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt; color: #374151;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt; margin-bottom: 12px;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;}&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;.button {&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt; background-color: #3b82f6;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt; color: white;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt; padding: 8px 16px;&lt;/code&gt;&lt;/p&gt;</description></item><item><title>交互式 REPL</title><link>https://zel-forprogress.github.io/blog/wendang/%E4%BA%A4%E4%BA%92%E5%BC%8F-repl/</link><pubDate>Thu, 30 Apr 2026 00:00:00 +0000</pubDate><guid>https://zel-forprogress.github.io/blog/wendang/%E4%BA%A4%E4%BA%92%E5%BC%8F-repl/</guid><description>&lt;p&gt;交互式 REPL 是编程环境中一个非常实用的工具。这四个字母分别代表：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;R (Read，读取)：读取用户输入的代码或表达式。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;E (Eval，求值)：对读取的内容进行计算或执行。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;P (Print，打印)：显示求值的结果。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;L (Loop，循环)：重复以上过程，等待下一个输入。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;简单来说，REPL 就像一个“对话式”的代码运行环境。你输入一句代码，它立刻给你一句结果，然后等待你继续输入。&lt;/p&gt;
&lt;h3 id="一个直观的类比计算器"&gt;一个直观的类比：计算器&lt;a class="anchor" href="#%e4%b8%80%e4%b8%aa%e7%9b%b4%e8%a7%82%e7%9a%84%e7%b1%bb%e6%af%94%e8%ae%a1%e7%ae%97%e5%99%a8"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;普通的编程是“写完整本书再翻看”，而 REPL 就像用计算器：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;你按下 &lt;code&gt;2 + 3&lt;/code&gt;（读取）&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;计算器显示 &lt;code&gt;5&lt;/code&gt;（求值并打印）&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;你还可以继续按 &lt;code&gt;* 4&lt;/code&gt;（循环）&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="与普通运行代码的区别"&gt;与普通运行代码的区别&lt;a class="anchor" href="#%e4%b8%8e%e6%99%ae%e9%80%9a%e8%bf%90%e8%a1%8c%e4%bb%a3%e7%a0%81%e7%9a%84%e5%8c%ba%e5%88%ab"&gt;#&lt;/a&gt;&lt;/h3&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;交互式 REPL&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&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;tr&gt;
					&lt;td&gt;状态&lt;/td&gt;
					&lt;td&gt;每次运行都是全新的开始&lt;/td&gt;
					&lt;td&gt;变量、函数会一直保留，可逐步测试&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;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;</description></item><item><title>2026.4.29</title><link>https://zel-forprogress.github.io/blog/daily/2026-04-29/</link><pubDate>Wed, 29 Apr 2026 00:00:00 +0000</pubDate><guid>https://zel-forprogress.github.io/blog/daily/2026-04-29/</guid><description>&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;langchain中的两个template： 普通模板与fewshot模板都有invoke与format方法（继承自父亲）。其中invoke方法的能力比format方法强一点，其返回的类型不是字符串，而经过format处理后返回的是字符串。invoke的返回值可以用于chain。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;小米的百亿token计划已通过，在自己申请计划的邮箱所绑定的账号，下发了standard套餐（1个月-1亿token），自己在ccswitch配置了兼容Anthropic接口xiaomi模型的快捷切换方式，使用了该套餐专属的apikey以及baseurl，使用的是mimo-v2.5 pro，感觉比较不错。现在在使用windsurf的claudecode插件来调用该模型，因为在ccswitch中设置了，直接切换即可。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;下载使用opencode，来调用xiaomiMimo模型感觉极差。它这个软件编排架构极差，因为问一个简单的问题回答的速度都很慢。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;使用谷歌的ai agent -Antigravity（“反重力”名字感觉感觉有点意思）里面可以使用gimini模型，但是这个软件对地区的限制比较多，自己一直登不上自google账号，因此放弃使用该agent。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;claudecode-learn的github项目（简单介绍如何快速搭建一个类似于claudecode的外壳）自己又过了一遍chapter1，其主要的思想是，一个循环一个bash就是一个agent。具体的流程是这样的，用户提问，进入循环调用模型，直到系统不调用tool时才退出循环，否则继续执行循环调用tool，并且将调用的tool返回的结果，加入到新的用户提问中，继续调用大模型，重复以上的过程，直到不调用tool。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;粤语中以h开头的音节，通常都不发h声母。&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;</description></item><item><title>2026.4.28</title><link>https://zel-forprogress.github.io/blog/daily/2026-04-28/</link><pubDate>Tue, 28 Apr 2026 00:00:00 +0000</pubDate><guid>https://zel-forprogress.github.io/blog/daily/2026-04-28/</guid><description>&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;langchain大模型开发，嵌入式模型的调用使用embed（将分片数据转成向量数据并存入向量数据库中）与llm、chat模型使用的stream、invoke不一样。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;CCSwitch是一个方便agent更换所调用模型的应用（只需要你选择你agent对应的模型供应商，可以选择官方可以选择第三方的供应商，然后需要你提供的只有apikey）&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;小米mimo模型，现在有一个百亿级token计划，需要自己申请（官方会根据自己的条件进行筛选）。Mimo-v2的模型能力比肩deepseek-v4，甚至超越，属于第一梯队开源大模型。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;transformer是大语言模型的核心基础框架构，属于深度学习神经网络架构 ，如opus，chatgpt等主流模型均基于transformer的编码器，解码器结构迭代开发。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;uv、venv、conda在创建虚拟环境上的区别，uv比较快速（新一代技术适合纯python项目），venv适合快速上手，conda可以创建如python，c++等语言的虚拟环境，适合大型科学数据分析项目。&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;</description></item><item><title>OCR</title><link>https://zel-forprogress.github.io/blog/wendang/ocr/</link><pubDate>Tue, 28 Apr 2026 00:00:00 +0000</pubDate><guid>https://zel-forprogress.github.io/blog/wendang/ocr/</guid><description>&lt;p&gt;&lt;strong&gt;OCR&lt;/strong&gt; 在“&lt;strong&gt;OCR语言设置&lt;/strong&gt;”中的全称是：&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Optical Character Recognition中文名称&lt;/strong&gt;：&lt;strong&gt;光学字符识别&lt;/strong&gt;（也常称为文字识别）&lt;/p&gt;
&lt;h3 id="简单解释什么是-ocr"&gt;简单解释什么是 OCR？&lt;a class="anchor" href="#%e7%ae%80%e5%8d%95%e8%a7%a3%e9%87%8a%e4%bb%80%e4%b9%88%e6%98%af-ocr"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;OCR 是一种&lt;strong&gt;人工智能 + 图像处理技术&lt;/strong&gt;，它的主要功能是：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;从&lt;strong&gt;图片、扫描件、照片、PDF 图像&lt;/strong&gt;中，自动识别出里面的&lt;strong&gt;文字&lt;/strong&gt;。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;把图像里的文字转换成&lt;strong&gt;可编辑、可搜索、可复制&lt;/strong&gt;的机器可读文本。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;常见应用场景&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;把纸质文档扫描后转成可编辑的 Word&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;识别身份证、发票、名片上的文字&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;提取图片里的文字（例如截图、书本照片）&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;视频字幕识别&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;文档数字化处理（企业常用）&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;PDF 转可搜索 PDF&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="ocr语言设置是什么意思"&gt;“OCR语言设置”是什么意思？&lt;a class="anchor" href="#ocr%e8%af%ad%e8%a8%80%e8%ae%be%e7%bd%ae%e6%98%af%e4%bb%80%e4%b9%88%e6%84%8f%e6%80%9d"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;OCR语言设置&lt;/strong&gt; 是指你在使用 OCR 功能时，&lt;strong&gt;告诉系统当前要识别的文字主要是什么语言&lt;/strong&gt;。&lt;/p&gt;
&lt;p&gt;为什么要设置语言？&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;不同语言的文字特征差别很大（例如中文是方块字，英文是字母，阿拉伯文是连笔）。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;设置正确的语言可以&lt;strong&gt;大幅提高识别准确率&lt;/strong&gt;，减少错别字。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;如果不设置，很多 OCR 工具会默认使用英文，导致中文、日文、韩文等识别效果很差。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;常见语言代码示例&lt;/strong&gt;（不同工具略有差异）：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;chi_sim 或 zh → 简体中文&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;chi_tra 或 zh-TW → 繁体中文&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;eng → 英文&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;jpn → 日文&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;kor → 韩文&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;auto 或留空 → 自动检测语言（部分高级工具支持）&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Transformer</title><link>https://zel-forprogress.github.io/blog/wendang/transformer/</link><pubDate>Tue, 28 Apr 2026 00:00:00 +0000</pubDate><guid>https://zel-forprogress.github.io/blog/wendang/transformer/</guid><description>&lt;h4 id="-transformer-是什么"&gt;&lt;strong&gt;① Transformer 是什么？&lt;/strong&gt;&lt;a class="anchor" href="#-transformer-%e6%98%af%e4%bb%80%e4%b9%88"&gt;#&lt;/a&gt;&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;全称：&lt;strong&gt;Transformer 架构&lt;/strong&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;它是目前几乎所有大语言模型（ChatGPT、Llama、Qwen、DeepSeek 等）的&lt;strong&gt;核心骨架&lt;/strong&gt;。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;主要特点：抛弃了传统的 RNN、LSTM，完全使用 &lt;strong&gt;Self-Attention（自注意力机制）&lt;/strong&gt; 来处理序列数据。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;优点：并行计算能力强，能很好地捕捉长距离依赖关系。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;简单说：&lt;strong&gt;Transformer 是一种强大的神经网络结构&lt;/strong&gt;。&lt;/p&gt;
&lt;h4 id="-bert-是什么"&gt;&lt;strong&gt;② BERT 是什么？&lt;/strong&gt;&lt;a class="anchor" href="#-bert-%e6%98%af%e4%bb%80%e4%b9%88"&gt;#&lt;/a&gt;&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;BERT = &lt;strong&gt;Bidirectional Encoder Representations from Transformers&lt;/strong&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;中文：&lt;strong&gt;基于 Transformer 的双向编码器表示&lt;/strong&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;BERT 是 Google 在 2018 年发布的&lt;strong&gt;预训练语言模型&lt;/strong&gt;，它&lt;strong&gt;使用了 Transformer 中的 Encoder（编码器）部分&lt;/strong&gt;。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;BERT 的最大创新是&lt;strong&gt;双向理解&lt;/strong&gt;：它能同时看一个词的左边和右边上下文（而之前的模型大多只能看一边）。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;BERT 一经发布就大幅刷新了各种 NLP 任务的记录，后来几乎所有现代语言模型都受到了它的影响。&lt;/p&gt;
&lt;h4 id="-"&gt;&lt;strong&gt;③ [CLS] 是什么？为什么会出现？&lt;/strong&gt;&lt;a class="anchor" href="#-"&gt;#&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;[CLS]&lt;/strong&gt; 是 “&lt;strong&gt;Class&lt;/strong&gt;” 的缩写，中文常称为 &lt;strong&gt;分类标记&lt;/strong&gt; 或 &lt;strong&gt;句首标记&lt;/strong&gt;。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;它的作用是：&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;在 BERT 处理文本时，会在&lt;strong&gt;输入文本的最前面&lt;/strong&gt;自动加上一个特殊的 Token：[CLS]。&lt;/p&gt;
&lt;p&gt;例如输入句子：&lt;/p&gt;
&lt;p&gt;“今天天气很好”&lt;/p&gt;
&lt;p&gt;经过 Tokenizer 处理后变成：&lt;/p&gt;
&lt;p&gt;[CLS] 今 天 天 气 很 好&lt;/p&gt;
&lt;p&gt;BERT 的 Transformer 编码器会对整个序列（包括 [CLS]）进行处理。&lt;/p&gt;</description></item><item><title>uv、conda、python（venv）创建虚拟环境的区别</title><link>https://zel-forprogress.github.io/blog/wendang/uvcondapythonvenv%E5%88%9B%E5%BB%BA%E8%99%9A%E6%8B%9F%E7%8E%AF%E5%A2%83%E7%9A%84%E5%8C%BA%E5%88%AB/</link><pubDate>Tue, 28 Apr 2026 00:00:00 +0000</pubDate><guid>https://zel-forprogress.github.io/blog/wendang/uvcondapythonvenv%E5%88%9B%E5%BB%BA%E8%99%9A%E6%8B%9F%E7%8E%AF%E5%A2%83%E7%9A%84%E5%8C%BA%E5%88%AB/</guid><description>&lt;h1 id="python-自己的虚拟环境venv"&gt;&lt;strong&gt;Python 自己的虚拟环境（venv）&lt;/strong&gt;&lt;a class="anchor" href="#python-%e8%87%aa%e5%b7%b1%e7%9a%84%e8%99%9a%e6%8b%9f%e7%8e%af%e5%a2%83venv"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;h1 id="uv强烈推荐了解的新工具"&gt;&lt;strong&gt;uv（强烈推荐了解的新工具）&lt;/strong&gt;&lt;a class="anchor" href="#uv%e5%bc%ba%e7%83%88%e6%8e%a8%e8%8d%90%e4%ba%86%e8%a7%a3%e7%9a%84%e6%96%b0%e5%b7%a5%e5%85%b7"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;h1 id="condaanaconda--miniconda"&gt;&lt;strong&gt;Conda（Anaconda / Miniconda）&lt;/strong&gt;&lt;a class="anchor" href="#condaanaconda--miniconda"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;&lt;strong&gt;实际使用建议（2026 年）&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;纯 Python 项目&lt;/strong&gt;（Web 后端、脚本、自动化、学习等）→ &lt;strong&gt;强烈推荐 uv&lt;/strong&gt; 它目前是速度和体验最好的选择，很多人都已经“删掉 conda 改用 uv”了。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;数据科学 / 机器学习 / 需要 GPU&lt;/strong&gt; → &lt;strong&gt;继续用 Conda（或 micromamba / pixi）&lt;/strong&gt; 因为 uv 还无法完美替代 conda 处理非 Python 二进制依赖。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;极简主义&lt;/strong&gt; → 直接用 &lt;strong&gt;venv + pip&lt;/strong&gt;（或 venv + uv pip）。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>2026.4.27</title><link>https://zel-forprogress.github.io/blog/daily/2026-04-27/</link><pubDate>Mon, 27 Apr 2026 00:00:00 +0000</pubDate><guid>https://zel-forprogress.github.io/blog/daily/2026-04-27/</guid><description>&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;RAG主要的用处是建立企业内部的知识问答库，安全，但是为什么不能用那些agent呢？我能想到的一点是快而且花费低。RAG的一大缺点是，回复存在偏差，因为其在存储的时候是分片存储的，因此可能会将一段话拆片存储，导致语义缺失，因此查询出来的信息可能是存在错误的。但是相较下，agent因为react范式的存在，它会循环多次，使回答的更准确，但是它也因此满并且token花费多。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;github的codespace与腾讯的cloudcode，是指在云上的编辑器，一切在云上，终端是linux命令。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;codex的自动化任务是本地化的，不会云端同步，即同一个账号的自动化任务，在不同的设备上不一致。所谓的自动化任务，就是定时自动发给codex一个固定的命令让其执行。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;linux的命令：vim 编辑，输入i进入编辑模式，按Esc退出，进入命令模式，输入：wq保存并退出，：！强制退出不保存&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;</description></item><item><title>2026.4.25</title><link>https://zel-forprogress.github.io/blog/daily/2026-04-25/</link><pubDate>Sat, 25 Apr 2026 00:00:00 +0000</pubDate><guid>https://zel-forprogress.github.io/blog/daily/2026-04-25/</guid><description>&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;agent开发，一般指两个方面的开发：一种是指对大模型进行开发；另一种是harness开发,指可以辅助大模型完成任务的工具的开发（大部分agent开发指的是这个）。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;/li&gt;
&lt;/ol&gt;</description></item><item><title>2026.4.20</title><link>https://zel-forprogress.github.io/blog/daily/2026-04-20/</link><pubDate>Fri, 24 Apr 2026 00:00:00 +0000</pubDate><guid>https://zel-forprogress.github.io/blog/daily/2026-04-20/</guid><description>&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;java“是一次编写，处处运行”，是得益于它的JVM虚拟机，java为不同的操作系统编写了不同的jvm，同一份字节码在不同的平台上运行的结果一致。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;可以使用本地的数据库可视化工具，连接docker容器中的mysql、redis等。需要注意的是连接的端口是宿主机映射端口。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;JIT（just in time）即时编译技术，先将原本的java代码编译成字节码（.class文件），然后字节码需要在jvm中解释成机器码，这是一般的运行过程。而JIT会将hot spot代码解释成机器码后缓存（常驻内存），下一次需要用到这个代码直接使用即可。随着编译次数的增多，这里的热点代码会逐渐精确，从而出现越运行越快速的现象。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Oracle JDK 闭源商业版，OpenJDK 官方开源版。&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;</description></item><item><title>2026.4.21</title><link>https://zel-forprogress.github.io/blog/daily/2026-04-21/</link><pubDate>Fri, 24 Apr 2026 00:00:00 +0000</pubDate><guid>https://zel-forprogress.github.io/blog/daily/2026-04-21/</guid><description>&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;布尔值，虽然一个bit即可表示，但仍会占用1个字节，8个bit，大大浪费了空间。用整数(int/long)的每一个二进制位(bit) 分别代表一个布尔状态，用二进制位掩码+位运算，把多个布尔压缩进一个整数里，&amp;raquo;只是用来定位某一位的工具&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;shardingSphere是aphache下的分布式数据库中间件，其主要的作用是让应用层的sql可以在经过分库分表后仍然可以正常使用，不必因为分库分表的原因而改动sql语句。原理是它会把你原本的sql语句变成SQL解析、路由到对应库表、改写执行、最后合并结果。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;分库分表即横向扩展数据库，相比于纵向提升单机硬件，横向扩展更加灵活。其出现的背景是，随着数据库的使用，一张表的记录数量可能会越来越多，在每次查询同一条记录的时间会变长，单表数据量过大时，原因是索引树高度增加、IO开销变大、单机性能瓶颈导致查询变慢，而非索引本身问题。所以这时可以采取分库分表策略。比如对于一张table的一个数值字段对2取余，值为0记录的存在schem0中，值为1的记录存在schema2中。这样可以缓解服务器的压力，提高sql执行速度。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;在mysql数据库中root用户创建的数据库，表等默认情况下其它用户是不可见的，除非root用户给予权限。&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;</description></item><item><title>2026.4.24</title><link>https://zel-forprogress.github.io/blog/daily/2026-04-24/</link><pubDate>Fri, 24 Apr 2026 00:00:00 +0000</pubDate><guid>https://zel-forprogress.github.io/blog/daily/2026-04-24/</guid><description>&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;为了开发，langchain提供了官方python SDK，直接使用pip即可安装，然后即可进行python代码的开发，快速进行大模型相关开发&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;再进行RAG开发的时候，主要会遇到三类模型：LLM，聊天模型以及embedding（嵌入）模型，其中LLM是基底（根据用户的问题，回复最可能的文本回答，无上下文记忆），而聊天模型是在其基础，天然支持多轮对话与上下文记忆（豆包，qwen等）；嵌入模型主要用在将非结构化的数据转为高密度向量存入向量数据库中，方便计算机理解与操作。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;rebase操作，首先会将还未与远程分支合并的提交暂存，然后将远程分支的修改拉去到本地，然后将暂存的修改取出，生成一个新的提交（即使代码更改与原来的更改一模一样）。rebase操作可能会出现冲突，这时候git rebase操作会中止，解决完冲突后，git add .使git知道冲突已解决，然后使用git rebase -continue，继续合并下一个提交，因为rebase 操作时可能会有很多的提交。如果需要中止rebase 执行git rebase &amp;ndash;abort&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;api代理的使用主体是客户端，api反向代理得使用主体是服务器。api代理，是指将客户端的请求不能达到目标服务器，通过代理服务器的中转发给目标服务器，这会隐藏客户端的ip地址，主要应用如VPN；api反向代理指的是，服务端为了隐藏自己的ip地址或者为了解决跨域的问题或者分流的问题，使用了一个中间服务器，使客户端不再直接服务器发送请求，而是通过请求中间服务器，使其将请求发送到目标服务器，此外这个还可以实现负载均衡：目标服务器一般会存在多个，中间服务器这个时候会通过根据多个因素算法计算将请求发送给合适的目标服务器。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;使用VPN时流量的转发途径：自己设备-隧道加密-内网网关（学校/公司网关）-国内运营商-vpn节点服务器-请求目标网址的服务器&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;api中转站：请求-中转站（具有自己的网址）-目标服务商&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;</description></item><item><title>Api代理与反向代理</title><link>https://zel-forprogress.github.io/blog/wendang/api%E4%BB%A3%E7%90%86%E4%B8%8E%E5%8F%8D%E5%90%91%E4%BB%A3%E7%90%86/</link><pubDate>Fri, 24 Apr 2026 00:00:00 +0000</pubDate><guid>https://zel-forprogress.github.io/blog/wendang/api%E4%BB%A3%E7%90%86%E4%B8%8E%E5%8F%8D%E5%90%91%E4%BB%A3%E7%90%86/</guid><description>&lt;h1 id="一句话区别"&gt;一句话区别&lt;a class="anchor" href="#%e4%b8%80%e5%8f%a5%e8%af%9d%e5%8c%ba%e5%88%ab"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;API代理（正向代理）&lt;/strong&gt;：帮“客户端”去访问API&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;API反向代理&lt;/strong&gt;：帮“服务器”接收请求&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h1 id="-一api代理正向代理"&gt;🧩 一、API代理（正向代理）&lt;a class="anchor" href="#-%e4%b8%80api%e4%bb%a3%e7%90%86%e6%ad%a3%e5%90%91%e4%bb%a3%e7%90%86"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;👉 核心：&lt;strong&gt;代理的是“你（客户端）”&lt;/strong&gt;&lt;/p&gt;
&lt;h3 id="-场景理解"&gt;📌 场景理解&lt;a class="anchor" href="#-%e5%9c%ba%e6%99%af%e7%90%86%e8%a7%a3"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;你访问一个国外API，但是：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;被墙 / 网络限制&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;或者你不想暴露自己IP&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;于是你用一个代理服务器帮你访问。&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id="-流程"&gt;🧭 流程&lt;a class="anchor" href="#-%e6%b5%81%e7%a8%8b"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;你 → 代理服务器 → 真实API → 返回结果&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id="-类比"&gt;🍔 类比&lt;a class="anchor" href="#-%e7%b1%bb%e6%af%94"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;你找“代购”帮你买东西&lt;/p&gt;
&lt;p&gt;👉 店家根本不知道是你买的，只知道代购&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id="-特点"&gt;📌 特点&lt;a class="anchor" href="#-%e7%89%b9%e7%82%b9"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;API服务器不知道真实客户端是谁&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;代理是给“客户端”用的&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;常见：VPN、HTTP代理&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h1 id="-二api反向代理你刚刚问的那个"&gt;🧩 二、API反向代理（你刚刚问的那个）&lt;a class="anchor" href="#-%e4%ba%8capi%e5%8f%8d%e5%90%91%e4%bb%a3%e7%90%86%e4%bd%a0%e5%88%9a%e5%88%9a%e9%97%ae%e7%9a%84%e9%82%a3%e4%b8%aa"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;👉 核心：&lt;strong&gt;代理的是“服务器”&lt;/strong&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id="-流程-1"&gt;🧭 流程&lt;a class="anchor" href="#-%e6%b5%81%e7%a8%8b-1"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;客户端 → 反向代理服务器 → 真实API服务器 → 返回结果&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id="-类比-1"&gt;🍔 类比&lt;a class="anchor" href="#-%e7%b1%bb%e6%af%94-1"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;你去餐厅点餐：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;你只看到前台（反向代理）&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;后面有多少厨房（真实服务器）你不知道&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h3 id="-特点-1"&gt;📌 特点&lt;a class="anchor" href="#-%e7%89%b9%e7%82%b9-1"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;客户端不知道真实API在哪&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;反代是“服务器对外的门面”&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;常见：负载均衡、网关&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h1 id="-三核心区别对比"&gt;⚔️ 三、核心区别对比&lt;a class="anchor" href="#-%e4%b8%89%e6%a0%b8%e5%bf%83%e5%8c%ba%e5%88%ab%e5%af%b9%e6%af%94"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;对比点&lt;/th&gt;
					&lt;th&gt;API代理（正向）&lt;/th&gt;
					&lt;th&gt;API反向代理&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&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;tr&gt;
					&lt;td&gt;谁在用&lt;/td&gt;
					&lt;td&gt;客户端主动使用&lt;/td&gt;
					&lt;td&gt;服务端部署&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;真实API是否暴露&lt;/td&gt;
					&lt;td&gt;暴露给代理&lt;/td&gt;
					&lt;td&gt;被隐藏&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;典型用途&lt;/td&gt;
					&lt;td&gt;翻墙、隐藏IP&lt;/td&gt;
					&lt;td&gt;网关、负载均衡、跨域&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;h1 id="-四一个特别关键的理解重点"&gt;💡 四、一个特别关键的理解（重点！）&lt;a class="anchor" href="#-%e5%9b%9b%e4%b8%80%e4%b8%aa%e7%89%b9%e5%88%ab%e5%85%b3%e9%94%ae%e7%9a%84%e7%90%86%e8%a7%a3%e9%87%8d%e7%82%b9"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;👉 判断方法：&lt;/p&gt;</description></item><item><title>git知识</title><link>https://zel-forprogress.github.io/blog/wendang/git%E7%9F%A5%E8%AF%86/</link><pubDate>Fri, 24 Apr 2026 00:00:00 +0000</pubDate><guid>https://zel-forprogress.github.io/blog/wendang/git%E7%9F%A5%E8%AF%86/</guid><description>&lt;h1 id="一-命令"&gt;一、 命令&lt;a class="anchor" href="#%e4%b8%80-%e5%91%bd%e4%bb%a4"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;h2 id="rebase"&gt;rebase&lt;a class="anchor" href="#rebase"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;rebase&lt;/code&gt; 会生成全新的提交哈希，导致本地历史与远程历史产生“分叉”。Git 默认禁止非快进（non-fast-forward）推送，因此必须用强制推送来明确告诉远程：“我要用新历史替换旧历史”。&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id="-详细原理拆解"&gt;📖 详细原理拆解&lt;a class="anchor" href="#-%e8%af%a6%e7%bb%86%e5%8e%9f%e7%90%86%e6%8b%86%e8%a7%a3"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;h4 id="为什么-rebase-会改写历史"&gt;为什么 &lt;code&gt;rebase&lt;/code&gt; 会改写历史？&lt;a class="anchor" href="#%e4%b8%ba%e4%bb%80%e4%b9%88-rebase-%e4%bc%9a%e6%94%b9%e5%86%99%e5%8e%86%e5%8f%b2"&gt;#&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;Git 中每个提交的唯一标识是一个 SHA 哈希值（如 &lt;code&gt;a1b2c3d&lt;/code&gt;）。这个哈希不是随机生成的，而是由以下信息共同计算得出：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;提交内容（diff）&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;作者/提交者信息&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;时间戳&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;父提交的哈希值 ← 关键！&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;当你执行 &lt;code&gt;git rebase main&lt;/code&gt; 时，Git 底层实际在做：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;把你分支上的提交临时保存为“补丁”&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;把当前分支指针移到最新的 &lt;code&gt;main&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;逐个重新应用补丁，生成全新的提交&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;因为新提交的父提交变成了 &lt;code&gt;main&lt;/code&gt; 的最新提交，所以即使代码内容一模一样，计算出的哈希值也会全部改变。旧提交并没有被“修改”，而是被新提交替换，历史线因此被重写。&lt;/p&gt;
&lt;h4 id="为什么普通-git-push-会失败"&gt;为什么普通 &lt;code&gt;git push&lt;/code&gt; 会失败？&lt;a class="anchor" href="#%e4%b8%ba%e4%bb%80%e4%b9%88%e6%99%ae%e9%80%9a-git-push-%e4%bc%9a%e5%a4%b1%e8%b4%a5"&gt;#&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;假设远程分支历史是&lt;/p&gt;
&lt;p&gt;main: A ─ B ─ C&lt;/p&gt;
&lt;p&gt;你的分支: └─ D ─ E （远程记录）&lt;/p&gt;
&lt;p&gt;你本地 rebase 后，历史变成了&lt;/p&gt;
&lt;p&gt;main: A ─ B ─ C&lt;/p&gt;
&lt;p&gt;你的分支: └─ D&amp;rsquo;─ E&amp;rsquo; （本地新哈希，D&amp;rsquo;/E&amp;rsquo; 内容同 D/E 但哈希不同）&lt;/p&gt;
&lt;p&gt;当你执行普通 &lt;code&gt;git push&lt;/code&gt; 时，Git 会检查：&lt;code&gt;远程分支的末端（E）是不是本地分支末端（E'）的祖先？&lt;/code&gt;
答案是 &lt;strong&gt;否&lt;/strong&gt;。Git 认为这是一次“&lt;strong&gt;非快进更新&lt;/strong&gt;”，出于防误覆盖的安全机制，会直接拒绝推送并报错：&lt;/p&gt;</description></item><item><title>2026.4.23</title><link>https://zel-forprogress.github.io/blog/daily/2026-04-23/</link><pubDate>Thu, 23 Apr 2026 00:00:00 +0000</pubDate><guid>https://zel-forprogress.github.io/blog/daily/2026-04-23/</guid><description>&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;langchain是开发agent的框架，包括prompt工程管理，大模型统一接口封装调用 ，对话记忆模块，工具调用链逻辑，链式执行逻辑等&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;RAG即Retrieval Augumented Generation，检索内容增强，可以避免模型幻觉（胡乱回答）、模型回答的内容不是最新实时的，私有知识库无法接入等问题。其步骤一般是：RAG分在线与离线两部分，离线部分会不断的将本地知识库新增内容，embedding进入向量数据库（转成数字形式，方便计算机理解与检索）；用户提问后，会将用户问题也向量化与向量数据库中的内容做对比，检索出最为匹配的数据；然后将检索出来的数据与用户的问题整理成新的prompt词；最后将新的prompt发给LLM，然后等待LLM回答。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;chatgpt-image2模型出世，抖音热点&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Anthropic 的最强模型现在是opus 4.7（但是多调侃该模型大量蒸馏，融合其它模型，回答变得不可靠）&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;agent是一个将多模态模型作为大脑来做规划，可以选择合适的skill来执行任务，如果现在tool解决不了问题，还可调用外部工具MCP。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;阿里的灵光，现在有一个激励创作闪应用的活动，具有现金奖励。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;MQ，为了应对高并发场景，生产者的请求，可先放置在消息队列中，消费者不必同一时间处理那么多的请求，而是可以尽力而为，处理不了的就在消息队列中等待。这样生产者也就不必一直等待消费者，等消费者完成后通知生产者即可。如下单与发货，两者相互独立，只处理与自己相关的事情即可。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;docker image 类似于软件的安装包，包含了安装一个软件所需的全部。容器是运行这些软件的实例。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;RustFS，指的是一个用Rust语言编写的，可快速搭建一个高性能的fileSystem的框架。&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;</description></item><item><title>12306项目开发</title><link>https://zel-forprogress.github.io/blog/project/12306%E9%A1%B9%E7%9B%AE%E5%BC%80%E5%8F%91/</link><pubDate>Wed, 22 Apr 2026 00:00:00 +0000</pubDate><guid>https://zel-forprogress.github.io/blog/project/12306%E9%A1%B9%E7%9B%AE%E5%BC%80%E5%8F%91/</guid><description>&lt;h1 id="一知识记录"&gt;一、知识记录&lt;a class="anchor" href="#%e4%b8%80%e7%9f%a5%e8%af%86%e8%ae%b0%e5%bd%95"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;h2 id="yarn前端包管理工具介绍"&gt;Yarn（前端包管理工具）介绍&lt;a class="anchor" href="#yarn%e5%89%8d%e7%ab%af%e5%8c%85%e7%ae%a1%e7%90%86%e5%b7%a5%e5%85%b7%e4%bb%8b%e7%bb%8d"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;全称为Yarn Package Manager（Yet Another Resource Negotiator 的缩写），是JavaScript / Node.js 的包管理器，用于管理项目依赖（类似于 &lt;strong&gt;npm&lt;/strong&gt;）。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;核心特点（相比 npm 的优势）&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;安装速度更快&lt;/strong&gt;：并行下载 + 离线缓存机制。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;更安全可靠&lt;/strong&gt;：生成 yarn.lock 文件，锁定所有依赖的精确版本，保证“一次安装，到处一致”。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;支持 Workspaces&lt;/strong&gt;：特别适合大型 monorepo 项目（一个仓库管理多个子包）。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;安装过程更干净&lt;/strong&gt;：输出信息简洁，错误提示友好。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;其他实用功能&lt;/strong&gt;：零安装模式（Plug&amp;rsquo;n&amp;rsquo;Play）、更好的依赖冲突解决等。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;常用命令对比&lt;/strong&gt;（与 npm）：&lt;/p&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;操作&lt;/th&gt;
					&lt;th&gt;npm 命令&lt;/th&gt;
					&lt;th&gt;Yarn 命令&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;安装依赖&lt;/td&gt;
					&lt;td&gt;npm install&lt;/td&gt;
					&lt;td&gt;yarn 或 yarn install&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;添加依赖&lt;/td&gt;
					&lt;td&gt;npm install xxx&lt;/td&gt;
					&lt;td&gt;yarn add xxx&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;添加开发依赖&lt;/td&gt;
					&lt;td&gt;npm install xxx &amp;ndash;save-dev&lt;/td&gt;
					&lt;td&gt;yarn add xxx -D&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;全局安装&lt;/td&gt;
					&lt;td&gt;npm install -g xxx&lt;/td&gt;
					&lt;td&gt;yarn global add xxx&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;删除依赖&lt;/td&gt;
					&lt;td&gt;npm uninstall xxx&lt;/td&gt;
					&lt;td&gt;yarn remove xxx&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;npm是Node.js的默认包管理器，当你安装Node.js时，npm会自动安装；yarn 是Facebook开发的替代npm的包管理器，需要单独安装：&lt;code&gt;npm install -g yarn&lt;/code&gt;。 两者功能相同：都用于管理JavaScript/Node.js项目的依赖包，都读取同一个 package.json 文件。&lt;/p&gt;</description></item><item><title>HTT状态码</title><link>https://zel-forprogress.github.io/blog/wendang/htt%E7%8A%B6%E6%80%81%E7%A0%81/</link><pubDate>Wed, 22 Apr 2026 00:00:00 +0000</pubDate><guid>https://zel-forprogress.github.io/blog/wendang/htt%E7%8A%B6%E6%80%81%E7%A0%81/</guid><description>&lt;h3 id="-1xx-informational信息性"&gt;🟢 1xx Informational（信息性）&lt;a class="anchor" href="#-1xx-informational%e4%bf%a1%e6%81%af%e6%80%a7"&gt;#&lt;/a&gt;&lt;/h3&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;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;100&lt;/td&gt;
					&lt;td&gt;Continue&lt;/td&gt;
					&lt;td&gt;继续&lt;/td&gt;
					&lt;td&gt;服务器已接收请求头，客户端可继续发送请求体&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;101&lt;/td&gt;
					&lt;td&gt;Switching Protocols&lt;/td&gt;
					&lt;td&gt;切换协议&lt;/td&gt;
					&lt;td&gt;同意升级协议（如 HTTP → WebSocket）&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;103&lt;/td&gt;
					&lt;td&gt;Early Hints&lt;/td&gt;
					&lt;td&gt;早期提示&lt;/td&gt;
					&lt;td&gt;提前返回部分响应头（如预加载 CSS/JS，提升首屏性能）&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="-2xx-success成功"&gt;🟢 2xx Success（成功）&lt;a class="anchor" href="#-2xx-success%e6%88%90%e5%8a%9f"&gt;#&lt;/a&gt;&lt;/h3&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;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;200&lt;/td&gt;
					&lt;td&gt;OK&lt;/td&gt;
					&lt;td&gt;成功&lt;/td&gt;
					&lt;td&gt;请求正常完成，返回响应体&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;201&lt;/td&gt;
					&lt;td&gt;Created&lt;/td&gt;
					&lt;td&gt;已创建&lt;/td&gt;
					&lt;td&gt;请求成功并创建新资源（常用于 POST）&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;202&lt;/td&gt;
					&lt;td&gt;Accepted&lt;/td&gt;
					&lt;td&gt;已接受&lt;/td&gt;
					&lt;td&gt;请求已入队/异步处理中，结果稍后获取&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;204&lt;/td&gt;
					&lt;td&gt;No Content&lt;/td&gt;
					&lt;td&gt;无内容&lt;/td&gt;
					&lt;td&gt;请求成功，但无返回体（常用于 DELETE/PUT）&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;206&lt;/td&gt;
					&lt;td&gt;Partial Content&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="-3xx-redirection重定向"&gt;🟡 3xx Redirection（重定向）&lt;a class="anchor" href="#-3xx-redirection%e9%87%8d%e5%ae%9a%e5%90%91"&gt;#&lt;/a&gt;&lt;/h3&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;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;301&lt;/td&gt;
					&lt;td&gt;Moved Permanently&lt;/td&gt;
					&lt;td&gt;永久重定向&lt;/td&gt;
					&lt;td&gt;资源已永久迁移，建议更新书签/SEO权重转移&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;302&lt;/td&gt;
					&lt;td&gt;Found&lt;/td&gt;
					&lt;td&gt;临时重定向&lt;/td&gt;
					&lt;td&gt;资源临时迁移，默认将请求方法转为 GET&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;303&lt;/td&gt;
					&lt;td&gt;See Other&lt;/td&gt;
					&lt;td&gt;查看其他地址&lt;/td&gt;
					&lt;td&gt;明确指示客户端用 GET 访问新 URL（防重复提交）&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;304&lt;/td&gt;
					&lt;td&gt;Not Modified&lt;/td&gt;
					&lt;td&gt;未修改&lt;/td&gt;
					&lt;td&gt;缓存有效，客户端使用本地缓存（条件请求命中）&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;307&lt;/td&gt;
					&lt;td&gt;Temporary Redirect&lt;/td&gt;
					&lt;td&gt;临时重定向&lt;/td&gt;
					&lt;td&gt;保持原请求方法不变（替代 302 的严格场景）&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;308&lt;/td&gt;
					&lt;td&gt;Permanent Redirect&lt;/td&gt;
					&lt;td&gt;永久重定向&lt;/td&gt;
					&lt;td&gt;保持原请求方法不变的永久跳转（替代 301）&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="-4xx-client-error客户端错误"&gt;🟠 4xx Client Error（客户端错误）&lt;a class="anchor" href="#-4xx-client-error%e5%ae%a2%e6%88%b7%e7%ab%af%e9%94%99%e8%af%af"&gt;#&lt;/a&gt;&lt;/h3&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;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;400&lt;/td&gt;
					&lt;td&gt;Bad Request&lt;/td&gt;
					&lt;td&gt;错误请求&lt;/td&gt;
					&lt;td&gt;参数缺失、JSON 格式错误、语法无效&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;401&lt;/td&gt;
					&lt;td&gt;Unauthorized&lt;/td&gt;
					&lt;td&gt;未授权&lt;/td&gt;
					&lt;td&gt;未登录或凭证无效，需重新认证&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;403&lt;/td&gt;
					&lt;td&gt;Forbidden&lt;/td&gt;
					&lt;td&gt;禁止访问&lt;/td&gt;
					&lt;td&gt;已认证但权限不足，或被策略/IP 拦截&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;404&lt;/td&gt;
					&lt;td&gt;Not Found&lt;/td&gt;
					&lt;td&gt;未找到&lt;/td&gt;
					&lt;td&gt;请求的路径或资源不存在&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;405&lt;/td&gt;
					&lt;td&gt;Method Not Allowed&lt;/td&gt;
					&lt;td&gt;方法不允许&lt;/td&gt;
					&lt;td&gt;使用了不支持的 HTTP 方法（如 GET 调 POST 接口）&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;408&lt;/td&gt;
					&lt;td&gt;Request Timeout&lt;/td&gt;
					&lt;td&gt;请求超时&lt;/td&gt;
					&lt;td&gt;客户端发送请求过慢，服务器主动断开&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;409&lt;/td&gt;
					&lt;td&gt;Conflict&lt;/td&gt;
					&lt;td&gt;冲突&lt;/td&gt;
					&lt;td&gt;请求与当前资源状态冲突（如并发修改、重复创建）&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;413&lt;/td&gt;
					&lt;td&gt;Payload Too Large&lt;/td&gt;
					&lt;td&gt;请求体过大&lt;/td&gt;
					&lt;td&gt;上传文件/数据超过服务器或框架限制&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;415&lt;/td&gt;
					&lt;td&gt;Unsupported Media Type&lt;/td&gt;
					&lt;td&gt;不支持的媒体类型&lt;/td&gt;
					&lt;td&gt;Content-Type 不被服务端接受&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;422&lt;/td&gt;
					&lt;td&gt;Unprocessable Entity&lt;/td&gt;
					&lt;td&gt;无法处理的实体&lt;/td&gt;
					&lt;td&gt;格式正确但业务校验失败（API 常用）&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;429&lt;/td&gt;
					&lt;td&gt;Too Many Requests&lt;/td&gt;
					&lt;td&gt;请求过多&lt;/td&gt;
					&lt;td&gt;触发限流/频率限制，需等待后重试&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;451&lt;/td&gt;
					&lt;td&gt;Unavailable For Legal Reasons&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="-5xx-server-error服务器错误"&gt;🔴 5xx Server Error（服务器错误）&lt;a class="anchor" href="#-5xx-server-error%e6%9c%8d%e5%8a%a1%e5%99%a8%e9%94%99%e8%af%af"&gt;#&lt;/a&gt;&lt;/h3&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;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;500&lt;/td&gt;
					&lt;td&gt;Internal Server Error&lt;/td&gt;
					&lt;td&gt;内部服务器错误&lt;/td&gt;
					&lt;td&gt;服务端代码抛异常、未捕获错误、配置故障&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;501&lt;/td&gt;
					&lt;td&gt;Not Implemented&lt;/td&gt;
					&lt;td&gt;未实现&lt;/td&gt;
					&lt;td&gt;服务器不支持该请求方法或功能&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;502&lt;/td&gt;
					&lt;td&gt;Bad Gateway&lt;/td&gt;
					&lt;td&gt;错误网关&lt;/td&gt;
					&lt;td&gt;反向代理/网关收到上游无效响应（如 PHP-FPM 崩溃、后端重启）&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;503&lt;/td&gt;
					&lt;td&gt;Service Unavailable&lt;/td&gt;
					&lt;td&gt;服务不可用&lt;/td&gt;
					&lt;td&gt;服务器过载、维护中、依赖服务宕机（常配合 Retry-After）&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;504&lt;/td&gt;
					&lt;td&gt;Gateway Timeout&lt;/td&gt;
					&lt;td&gt;网关超时&lt;/td&gt;
					&lt;td&gt;上游服务器未在限定时间内响应（常见于慢 SQL、外部 API 超时）&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;状态码&lt;/p&gt;</description></item><item><title>GC（Garbage Collection）、栈与堆</title><link>https://zel-forprogress.github.io/blog/wendang/gcgarbage-collection%E6%A0%88%E4%B8%8E%E5%A0%86/</link><pubDate>Tue, 21 Apr 2026 00:00:00 +0000</pubDate><guid>https://zel-forprogress.github.io/blog/wendang/gcgarbage-collection%E6%A0%88%E4%B8%8E%E5%A0%86/</guid><description>&lt;h1 id="一堆heap与栈stack"&gt;一、堆（Heap）与栈（Stack）&lt;a class="anchor" href="#%e4%b8%80%e5%a0%86heap%e4%b8%8e%e6%a0%88stack"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;Heap（堆）和 Stack（栈）都在内存中，它们是同一块物理内存（电脑的 RAM）被划分出来的两个不同用途的区域。一个是快速&lt;strong&gt;自动回收&lt;/strong&gt;的&lt;strong&gt;小区&lt;/strong&gt;（栈），另一个是存放大对象、需要 GC 打扫的&lt;strong&gt;大区&lt;/strong&gt;（堆）。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;场景&lt;/strong&gt;：你写了一个方法，叫 买东西()：&lt;/p&gt;
&lt;p&gt;Java&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-plaintext" data-lang="plaintext"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;void 买东西() { 
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; int 钱 = 1000; *// ← 这就是“栈”上的东西* 
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; String 购物车 = new String(&amp;#34;苹果&amp;#34;); *// ← 这就是“堆”上的东西*
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&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;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;栈（上下铺）发生了什么？&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;系统立刻在栈上给你分配一个小空间。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;把 钱 = 1000 这个临时变量放进去。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;方法开始执行……&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;方法一结束（买完东西了），栈上的 钱 &lt;strong&gt;立刻自动消失&lt;/strong&gt;，空间马上回收。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;特点&lt;/strong&gt;：快、自动、干净，像住酒店，退房就走。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;堆（大小区）发生了什么？&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;new String(&amp;ldquo;苹果&amp;rdquo;) 这句话会在&lt;strong&gt;堆&lt;/strong&gt;上申请一个大房间。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;“苹果”这个对象就住在堆里。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;即使 买东西() 方法结束了，只要还有其他地方拿着“购物车”这个钥匙（引用），这个“苹果”对象就&lt;strong&gt;继续住在堆里&lt;/strong&gt;。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;只有当&lt;strong&gt;没有任何人再用它&lt;/strong&gt;时，垃圾回收器（GC）才会过来把它清理掉。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;特点&lt;/th&gt;
					&lt;th&gt;栈（Stack）&lt;/th&gt;
					&lt;th&gt;堆（Heap）&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;存放什么&lt;/td&gt;
					&lt;td&gt;基本类型变量、对象引用、方法参数&lt;/td&gt;
					&lt;td&gt;真正 new 出来的对象&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;内存大小&lt;/td&gt;
					&lt;td&gt;很小（几 MB 到几十 MB）&lt;/td&gt;
					&lt;td&gt;很大（几百 MB 到几十 GB）&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;tr&gt;
					&lt;td&gt;是否有碎片&lt;/td&gt;
					&lt;td&gt;没有（严格按顺序进出）&lt;/td&gt;
					&lt;td&gt;有（会产生内存碎片，靠 GC 整理）&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;tr&gt;
					&lt;td&gt;出错时提示&lt;/td&gt;
					&lt;td&gt;栈溢出（StackOverflowError）&lt;/td&gt;
					&lt;td&gt;堆内存不足（OutOfMemoryError）&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;谁来清理&lt;/td&gt;
					&lt;td&gt;方法结束，系统自动清理&lt;/td&gt;
					&lt;td&gt;垃圾回收器（GC）自动清理&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;总结：&lt;/p&gt;</description></item><item><title>2026.4.19</title><link>https://zel-forprogress.github.io/blog/daily/2026-04-19/</link><pubDate>Sun, 19 Apr 2026 00:00:00 +0000</pubDate><guid>https://zel-forprogress.github.io/blog/daily/2026-04-19/</guid><description>&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;prompt工程，使用恰当的提问方式有助于大模型的问题回答&amp;mdash;比如：举例子，分步骤，定身份。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;docker容器里面运行的应用，有两个端口，一个是本地环境监听端口（宿主机端口），另一个是docker容器内网端口，两个监听的端口号不一定一致。配置文件永远写容器内端口。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;如果容器内有数据库要运行sql脚本，必须先把这个sql文件添加到docker容器该数据库内部，然后才可以执行该sql脚本。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;npm是下载nodejs自带的包管理工具，yarn是第三方包管理工具。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;12306项目运行起来的过程，让ai生成docker-compose文件，运行它生成一个该项目可以运行的后端容器环境，然后使用mvn命令编译该项目，并生成一个的jar包，切换到该jar包所在目录，运行java -jar命令，启动该后端，前端页面另启。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;修改create fatal页面的bug&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;调整页面UI，增加两个空白占位符，强制换行与其它框体对齐&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;地址栏换行，调用文本框公共组件，讲地址栏的内容强制切片，每行最多30个字符，传给后端的数据形式是：完整地址内容，切片地址内容addr1，addr2 ，……&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;默认值问题&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&amp;hellip;&amp;hellip;.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;</description></item><item><title>2026.4.17</title><link>https://zel-forprogress.github.io/blog/daily/2026-04-17/</link><pubDate>Fri, 17 Apr 2026 00:00:00 +0000</pubDate><guid>https://zel-forprogress.github.io/blog/daily/2026-04-17/</guid><description>&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;使用openAI的SDK可方便的调用兼容openAI接口协议的第三方大模型，因为大部分api provider都兼容openAI的SDK规则。可以自定义模型输出的方式是否为流式输出&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;NoSql，非关系型数据库最早先的定义是not only sql，意味着也存在可以使用sql语句来使用非关系型数据库的情况。Nosql型数据库，主要分key-value类型，文档类型，图类型等。NoSql数据库天生适合分布式场景，拿MongoDB Altas来举例，其使用分布式集群，在不同的节点中存储数据，其特点具有数据冗余（一份数据可以存储多份，以防丢失），数据分片sharding（大量的数据，一个节点存储不下，可以选择一个分片键自动按范围/哈希拆分海量数据，分布到不同的集群节点，例如年份2025的放到节点A，年份2026的放置到节点B）。这些特性的存在是的这种非关系型数据库非常方便横向扩展（增加集群中的节点数量），而传统的关系性数据库和横向扩展非常困难（其实也可以主从、分库分表横向扩展，只是比NoSQL麻烦很多），其一般采取的扩容方式是纵向扩展（升级单机配置）。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;字符编码解码，电脑只能理解二进制数据，而我们的现实世界中的字符它是理解不了的，因此为了让电脑理解，便有了字符编码，将字符与二进制编码一一对应，例如a-01100001；字符解码即找到字符的二进制编码。比较著名的编码方式有ASCLL，通常用一个字节（8个bit，实际上是7个bit）来对英文字符与特殊符号进行编码，因为开发较早，不支持英文以外的字符。后来各个国家开发可以兼容自己的开发编码方式，如兼容汉字的GBK等。但是这些编码方式各不相同，即同一个二进制编码可能对应着不同的字符。为了解决这个情况，出现了unicode编码，因为有些编码方式没有区分不同字符使用的字节数量，会浪费存储空间。后面出现了可随字符的不同，使用不同字节数量的编码方式UTF-8（可用字节数为1-4）UTF-16（2-4字节），UTF-32（4字节）。在mysql数据库中，存在DBMS层级、数据库、表、字段四种层级的编码方式，其编码的优先级越来越高。需要注意的是，mysql数据库种存在的utf-8并不是真正的utf-8而是utf-8mb3（most bytes ），utf-8mb4才是真正的utf—8。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;maven项目中如果存在mvnw文件，则不强制用户安装maven。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;winget是windows方便用户使用命令下载软件的的快捷命令。与npm不同得地方在于一个是系统层级下载软件，一个是代码层面的下载依赖。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Docker主要的作用保证环境的一致性。&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;</description></item><item><title>NoSql数据库</title><link>https://zel-forprogress.github.io/blog/wendang/nosql%E6%95%B0%E6%8D%AE%E5%BA%93/</link><pubDate>Fri, 17 Apr 2026 00:00:00 +0000</pubDate><guid>https://zel-forprogress.github.io/blog/wendang/nosql%E6%95%B0%E6%8D%AE%E5%BA%93/</guid><description>&lt;h1 id="一定义"&gt;&lt;strong&gt;一、定义&lt;/strong&gt;&lt;a class="anchor" href="#%e4%b8%80%e5%ae%9a%e4%b9%89"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;**NoSQL **的全称最早是 Not Only SQL（不仅仅是 SQL），意思是它不强制使用关系型数据库的 SQL 语法，而是提供更灵活的方式来操作数据。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;我们不能&lt;/strong&gt;在大多数 NoSQL 里直接复制关系型数据库的复杂 SQL（如带 JOIN、多表事务、外键约束等）。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;但很多现代 NoSQL 提供了 &lt;strong&gt;SQL-like&lt;/strong&gt; 或 &lt;strong&gt;SQL 兼容层&lt;/strong&gt;，让熟悉 SQL 的开发者上手更容易。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h1 id="二特性"&gt;二、特性&lt;a class="anchor" href="#%e4%ba%8c%e7%89%b9%e6%80%a7"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;**NoSQL **数据库被设计成天生支持分布式，这是它与传统关系型数据库（SQL）最大的区别之一&lt;/p&gt;
&lt;h4 id="1-分布式distributed"&gt;1. &lt;strong&gt;分布式（Distributed）&lt;/strong&gt;&lt;a class="anchor" href="#1-%e5%88%86%e5%b8%83%e5%bc%8fdistributed"&gt;#&lt;/a&gt;&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;意思是：数据库不是跑在一台服务器上，而是&lt;strong&gt;自动分布在多台服务器（节点）上&lt;/strong&gt;组成一个集群。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;为什么需要分布式？&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;单台服务器的 CPU、内存、磁盘、网络总有上限（垂直扩展贵且有瓶颈）。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;当数据量达到 TB/PB 级、并发达到百万级时，必须把压力分散到多台机器上。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;NoSQL 的优势&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;自动处理节点加入/退出、故障转移。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;支持高可用（一台机器挂了，其他机器还能继续服务）。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;读写性能可以随着机器数量线性增长。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="2-数据分片sharding--data-partitioning"&gt;2. &lt;strong&gt;数据分片（Sharding / Data Partitioning）&lt;/strong&gt;&lt;a class="anchor" href="#2-%e6%95%b0%e6%8d%ae%e5%88%86%e7%89%87sharding--data-partitioning"&gt;#&lt;/a&gt;&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;分片&lt;/strong&gt;就是把一份大数据“切成小块”（shards），然后把这些小块分散存储到不同的服务器上。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;怎么切？&lt;/strong&gt; 常见规则：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;按键哈希分片&lt;/strong&gt;（Hash Sharding）：根据用户ID、订单ID 等字段取哈希值，取模后决定放到哪个节点（最常用）。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;范围分片&lt;/strong&gt;（Range Sharding）：按时间、ID 范围划分（如 2025 年数据放节点A，2026 年放节点B）。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;好处&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;每个节点只管自己的一小部分数据，查询和写入更快。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;容易水平扩展：数据太多？再加几台机器，系统自动把数据重新分片。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;NoSQL 天生支持&lt;/strong&gt;：MongoDB 有自动分片（Auto-Sharding），Cassandra 通过一致性哈希环实现分片，DynamoDB 完全自动管理分片。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="3-数据冗余data-redundancy--replication"&gt;3. &lt;strong&gt;数据冗余（Data Redundancy / Replication）&lt;/strong&gt;&lt;a class="anchor" href="#3-%e6%95%b0%e6%8d%ae%e5%86%97%e4%bd%99data-redundancy--replication"&gt;#&lt;/a&gt;&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;为了高可用，同一份数据会在多个节点上&lt;strong&gt;复制多份&lt;/strong&gt;（通常 3 份或更多）。&lt;/p&gt;</description></item><item><title>使用外键的优劣</title><link>https://zel-forprogress.github.io/blog/wendang/%E4%BD%BF%E7%94%A8%E5%A4%96%E9%94%AE%E7%9A%84%E4%BC%98%E5%8A%A3/</link><pubDate>Fri, 17 Apr 2026 00:00:00 +0000</pubDate><guid>https://zel-forprogress.github.io/blog/wendang/%E4%BD%BF%E7%94%A8%E5%A4%96%E9%94%AE%E7%9A%84%E4%BC%98%E5%8A%A3/</guid><description>&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;一句话总结就是&lt;/strong&gt;：使用外键可以保证数据安全、一致，降低开发难度；但是在对于高并发、分布式的场景的场景，使用外键意味着每次的sql都会产生额外的外键检查，加大了数据库的负担，降低了速度。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;实际开发中的做法:&lt;/strong&gt;
&lt;strong&gt;开发环境 / 测试环境&lt;/strong&gt;：加上外键，便于发现数据问题。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;生产环境&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;核心业务表（用户、订单、商品等强关联表）保留外键。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;高并发、大数据量表去掉外键，在应用层或通过消息队列 + 定时任务保证一致性。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;替代方案&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;应用层校验 + 事务&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;数据库触发器（Trigger）（部分复杂场景可补充或替代外键的约束，但同样存在性能和维护成本）&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;异步任务 + 最终一致性（最常用高并发方案）&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;使用**软删除（soft delete）**避免真实删除带来的级联问题（&lt;strong&gt;增加一个字段来判断其是或否被删除&lt;/strong&gt;）&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Windows平台下AutoHotKey、PowerShell与VBScript的对比</title><link>https://zel-forprogress.github.io/blog/wendang/windows%E5%B9%B3%E5%8F%B0%E4%B8%8Bautohotkeypowershell%E4%B8%8Evbscript%E7%9A%84%E5%AF%B9%E6%AF%94/</link><pubDate>Thu, 22 Jan 2026 00:00:00 +0000</pubDate><guid>https://zel-forprogress.github.io/blog/wendang/windows%E5%B9%B3%E5%8F%B0%E4%B8%8Bautohotkeypowershell%E4%B8%8Evbscript%E7%9A%84%E5%AF%B9%E6%AF%94/</guid><description>&lt;p&gt;首先来总结一下这三种脚本分别最适合的方向：
&lt;strong&gt;AutoHotKey&lt;/strong&gt;：桌面交互自动化&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Powershell&lt;/strong&gt;：系统管理与复杂自动化&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;VBSript&lt;/strong&gt;：老旧系统兼容与极简操作&lt;/p&gt;
&lt;h1 id="autohotkey"&gt;&lt;strong&gt;AutoHotKey&lt;/strong&gt;&lt;a class="anchor" href="#autohotkey"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;最终目的：使用快捷键来简化人们的&lt;strong&gt;手动操作（如鼠标点击，键盘输入）&lt;/strong&gt;。&lt;/p&gt;
&lt;p&gt;&lt;em&gt;使用方式&lt;/em&gt;：&lt;/p&gt;
&lt;p&gt;首先下载AutoHotKey到我们的电脑上。&lt;/p&gt;
&lt;p&gt;在本地&lt;strong&gt;按照AutoHotKey的语法&lt;/strong&gt;编写完ahk脚本文件后，双击后，启动脚本文件，其加载后常驻后台，热键随时可用，几乎&lt;strong&gt;零延迟&lt;/strong&gt;。&lt;/p&gt;
&lt;p&gt;&lt;img src="https://open.feishu.cn/open-apis/drive/v1/medias/Xn9YbVaZFo2J4kxPuqyc11LVnTf/download" alt="image" /&gt;&lt;/p&gt;
&lt;p&gt;然后就可以使用&lt;strong&gt;快捷键&lt;/strong&gt;来使用该脚本文件编写的任务。&lt;/p&gt;
&lt;p&gt;具体任务：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;可以自定义全局热键来实现任务（&lt;strong&gt;最常用的用途&lt;/strong&gt;）。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;例如：我编写了一个使用快捷键“ctrl+J”即可弹窗展来示目标任务的.ahk文件，编写保存完该脚本后，直接双击该脚本文件，然后可以在全局使用快捷键“ctrl+J”来调用脚本文件实现任务。&lt;/p&gt;
&lt;p&gt;&lt;img src="https://open.feishu.cn/open-apis/drive/v1/medias/MxpZbUnfEoPNsgxZXWqcNKtCnM9/download" alt="image" /&gt;&lt;/p&gt;
&lt;p&gt;下面的所有任务，也都是编写脚本定义一个来执行该脚本的快捷键；双击该脚本后，该脚本就会常驻后台。然后使用快捷键执行任务。&lt;/p&gt;
&lt;ol start="2"&gt;
&lt;li&gt;重复操作自动化&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;例如：自动填写网页表单（固定输入账号 / 密码）；游戏 / 办公中重复点击某位置（也是使用自定义的快捷键来调用）&lt;/p&gt;
&lt;ol start="3"&gt;
&lt;li&gt;窗口精细化控制&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;例如：一键关闭所有弹窗；指定窗口置顶 / 隐藏 / 调整大小；多窗口分屏排列（如左边浏览器、右边记事本）。&lt;/p&gt;
&lt;ol start="4"&gt;
&lt;li&gt;轻量 GUI 小工具开发&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;例如：编写无编译的快捷启动面板（点击按钮打开不同工具）。&lt;/p&gt;
&lt;p&gt;&lt;img src="https://open.feishu.cn/open-apis/drive/v1/medias/AdaRbXqg1oQe3qxCXxOcshUVnzh/download" alt="image" /&gt;&lt;/p&gt;
&lt;ol start="5"&gt;
&lt;li&gt;系统轻量操作辅助&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;例如：屏蔽键盘某按键；修改鼠标滚轮速度；自动切换输入法。&lt;/p&gt;
&lt;h1 id="powershell"&gt;&lt;strong&gt;PowerShell&lt;/strong&gt;&lt;a class="anchor" href="#powershell"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;&lt;em&gt;使用方式：&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;无需下载，windows自带，在powershell终端输入命令使用，或者将整个文件保存为.ps1然后在终端使用&lt;code&gt;./name.ps1&lt;/code&gt;命令来执行该powershell文件。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;文件操作（类似于Linux中的文件操作）&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;例如：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;找出桌面最近7天修改的文件并按大小排序：&lt;code&gt;ls ~/Desktop -File -Recurse | ? { $_.LastWriteTime -gt (Get-Date).AddDays(-7) } | sort Length -Descending&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src="https://open.feishu.cn/open-apis/drive/v1/medias/KcYYbBPkHohYQ3x3bAZc5kaFnug/download" alt="image" /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;批量改文件的后缀名&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;快速查看文件的内容&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;使用cat命令查看文件中固定行数的内容&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;找出所有 .ps1 脚本里包含 &amp;ldquo;api_key&amp;rdquo; 的行：&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;code&gt;sls *.ps1 -Pattern &amp;quot;api_key&amp;quot; -List&lt;/code&gt;&lt;/p&gt;</description></item></channel></rss>