<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[showyoui的博客]]></title><description><![CDATA[Fake it till you make it!]]></description><link>https://blog.youkuaiyun.com/showyoui</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; showyoui]]></copyright><item><title><![CDATA[认识 pi：当注意力成为最贵的资源，我选择了一个“什么都没有“的 agent]]></title><link>https://blog.youkuaiyun.com/showyoui/article/details/170054317</link><guid>https://blog.youkuaiyun.com/showyoui/article/details/170054317</guid><author>showyoui</author><pubDate>Thu, 05 Nov 2026 06:15:00 +0800</pubDate><description><![CDATA[在AI技术日益普及的今天，真正稀缺的是自主思考与注意力。本文作者作为SRE，深感多任务切换带来的“注意力缴税”之痛，遂基于极简代理框架pi，开发自定义extension，实现会话状态自动记录与恢复。pi内核轻量、扩展深入、支持多入口与树状会话结构，使其成为可定制的智能底盘。通过将重复记忆负担交由agent处理，作者有效释放了自身注意力，提升效率。下文将深入解析pi的扩展机制。]]></description><category></category></item><item><title><![CDATA[【pi agent】pi 1.0 的 MCP 方案:把工具 schema 挡在上下文之外]]></title><link>https://blog.youkuaiyun.com/showyoui/article/details/167498119</link><guid>https://blog.youkuaiyun.com/showyoui/article/details/167498119</guid><author>showyoui</author><pubDate>Sat, 10 Oct 2026 23:38:30 +0800</pubDate><description><![CDATA[pi 1.0 的 MCP 方案通过“暴露分级”与“codemode 沙箱”实现工具 schema 与结果的上下文隔离。默认 codemode 模式下，98 个工具的 schema 不进入 tools 数组或对话历史，模型仅通过脚本搜索调用，大幅降低上下文开销。结果在 QuickJS 沙箱中处理，仅摘要返回，有效控制 token 消耗。四种暴露方式（codemode、deferred、direct、hidden）灵活适配不同场景，兼顾安全性与效率，真正实现“把工具 schema 挡在上下文之外”。]]></description><category></category></item><item><title><![CDATA[一次被 Istio 误导的连通性测试]]></title><link>https://blog.youkuaiyun.com/showyoui/article/details/164107709</link><guid>https://blog.youkuaiyun.com/showyoui/article/details/164107709</guid><author>showyoui</author><pubDate>Thu, 27 Aug 2026 09:45:00 +0800</pubDate><description><![CDATA[尤其在做迁移前的连通性测试时，一定要确认请求最终连的是不是目标 IP，否则很容易被 Istio 的域名路由误导。因为这个 k8s 集群环境是前人搭建的，而且缺少代码管理和文档描述，依据对 istio 缺乏理解，所以在排查过程中绕了好几道弯，才定位到这个特殊的 SE 配置。恰恰相反，它让 Istio 按域名解析出当前后端，而当前后端还是老 IP，于是测到的是老 IP 的连通性。里的域名，解析出了这个域名当前的后端 IP——还是老 IP。所以这次成功的请求，实际连接的是老 IP，不是我们想测的新 IP。]]></description><category></category></item><item><title><![CDATA[K8s 集群迁移踩坑：Istio 升级后 nginx 403]]></title><link>https://blog.youkuaiyun.com/showyoui/article/details/163615762</link><guid>https://blog.youkuaiyun.com/showyoui/article/details/163615762</guid><author>showyoui</author><pubDate>Sun, 09 Aug 2026 21:31:10 +0800</pubDate><description><![CDATA[同一份 nginx 配置，老集群正常，新集群 403。排查到最后发现新集群的 Istio sidecar 连接应用时使用127.0.0.6，而 nginx 的可信来源和白名单只覆盖了127.0.0.1。]]></description><category></category></item><item><title><![CDATA[一次 GKE Sidecar 场景下的连通性排查实录]]></title><link>https://blog.youkuaiyun.com/showyoui/article/details/160934944</link><guid>https://blog.youkuaiyun.com/showyoui/article/details/160934944</guid><author>showyoui</author><pubDate>Sat, 09 May 2026 22:13:57 +0800</pubDate><description><![CDATA[Kubernetes集群网络问题排查经验总结：针对Pod访问内网443端口时部分成功、部分超时的现象，通过控制变量法排除了节点、namespace等干扰因素，发现关键差异在于sidecar注入状态。排查揭示透明代理场景下&quot;nc -vz&quot;显示open并不代表端到端连通，需结合curl等真实请求验证。通过节点抓包确认SYN包已发出但无回包，最终定位问题在集群外部网络路径（ACL/防火墙或回程路由问题）。总结出5点核心经验：控制变量测试、慎用nc工具、优先真实请求、抓包定位边界、节点本机验证，]]></description><category></category></item><item><title><![CDATA[Agent Skills：让 AI 助手具备专业技能的新范式]]></title><link>https://blog.youkuaiyun.com/showyoui/article/details/157224931</link><guid>https://blog.youkuaiyun.com/showyoui/article/details/157224931</guid><author>showyoui</author><pubDate>Thu, 22 Jan 2026 06:45:00 +0800</pubDate><description><![CDATA[摘要： Agent Skills是一种轻量级开放格式，可将通用AI助手转变为特定领域的专家。它通过标准化&quot;技能包&quot;（包含SKILL.md核心文件、可执行代码、参考文档和资源）来扩展AI的专业能力。相比传统prompt，Agent Skills具有结构化组织、渐进式加载、可执行代码和跨平台兼容等优势。其核心工作原理采用渐进式披露策略，仅在需要时加载相关技能内容，既节省资源又提升效率。企业可用其封装组织知识和工作流程，实现专业能力的可复用和团队共享。创建Skill只需三步：建立目录、编写SK]]></description><category></category></item><item><title><![CDATA[深入理解 Kubernetes 探针：Liveness, Readiness 与 Startup]]></title><link>https://blog.youkuaiyun.com/showyoui/article/details/155169182</link><guid>https://blog.youkuaiyun.com/showyoui/article/details/155169182</guid><author>showyoui</author><pubDate>Mon, 24 Nov 2025 06:30:00 +0800</pubDate><description><![CDATA[Kubernetes探针是确保容器可靠性的关键机制，主要包括三种类型：存活探针(livenessProbe)检测容器是否僵死并在失败时重启容器；就绪探针(readinessProbe)判断容器是否准备好接收流量，失败时从服务中移除Pod；启动探针(startupProbe)保护启动缓慢的应用，在成功前禁用其他探针。每种探针支持exec、httpGet、tcpSocket和gRPC四种检查方式，并可配置延迟、频率等参数。合理组合使用这些探针能构建具备自愈能力的云原生应用，其中startupProbe适用于慢启]]></description><category></category></item><item><title><![CDATA[掌握 Gemini CLI：自定义命令 (Slash Commands)]]></title><link>https://blog.youkuaiyun.com/showyoui/article/details/153834375</link><guid>https://blog.youkuaiyun.com/showyoui/article/details/153834375</guid><author>showyoui</author><pubDate>Fri, 24 Oct 2025 17:32:02 +0800</pubDate><description><![CDATA[简单来说，gemini-cli是一个让你通过命令行与 Gemini Pro 模型进行交互的工具。你可以用它来提问、生成代码、翻译文本、总结内容，几乎可以完成你在网页版 Gemini 上做的任何事情。对于开发者而言，这意味着可以将 AI 的能力无缝集成到日常的开发工作流中，无需离开终端这个舒适区。用你喜欢的编辑器打开通过斜杠命令，特别是其集成的 shell 执行能力，gemini-cli不再仅仅是一个简单的问答工具，它蜕变成了一个可以深度融入你个人工作流的、可编程的智能开发平台。]]></description><category></category></item><item><title><![CDATA[dataclass 装饰器: 停止编写样板代码]]></title><link>https://blog.youkuaiyun.com/showyoui/article/details/152732412</link><guid>https://blog.youkuaiyun.com/showyoui/article/details/152732412</guid><author>showyoui</author><pubDate>Thu, 09 Oct 2025 06:30:00 +0800</pubDate><description><![CDATA[仅仅一个装饰器和几个类型提示，我们就免费获得了之前需要手动编写的所有功能。类的定义本身就成了一份清晰的数据结构文档。如果你还在手动编写那些数据类，是时候停下来，试试这个优雅的“魔法”了。创建不可变对象的好处是，它能保证数据的稳定性，并且由于其哈希值是固定的，可以把它安全地放进。一个简单的、纯粹用来存放数据的容器。它提供了一系列开箱即用的“超能力”，让我们可以轻松定制类的行为。这很乏味，容易出错，而且坦白说，很无聊。的瑞士军刀，它能对每个字段进行细致入微的控制。如果你这么写，所有的。)、能进行值比较 (]]></description><category></category></item><item><title><![CDATA[LangGraph Retrieval: Query Analysis 高质量检索的基础]]></title><link>https://blog.youkuaiyun.com/showyoui/article/details/152092135</link><guid>https://blog.youkuaiyun.com/showyoui/article/details/152092135</guid><author>showyoui</author><pubDate>Fri, 26 Sep 2025 06:30:00 +0800</pubDate><description><![CDATA[检索增强生成（RAG）应用中，检索质量是影响稳定性的关键因素。查询分析（Query Analysis）作为检索前的重要环节，通过将自然语言问题转换为更易检索的查询形式，解决&quot;准、全、稳&quot;问题。其核心方法包括查询重写（如多路提问、问题分解）和查询构造（如自然语言转SQL/图查询）。检索系统通过统一接口支持词法/向量/结构化等多种存储方式，便于混合检索与结果合并。典型应用场景包括文本问答（向量检索+多查询）、结构化数据（Text-to-SQL）等。实践表明，结合查询分析与混合检索技术（如BM]]></description><category></category></item><item><title><![CDATA[LangGraph Persistence : Graph的状态快照]]></title><link>https://blog.youkuaiyun.com/showyoui/article/details/152050896</link><guid>https://blog.youkuaiyun.com/showyoui/article/details/152050896</guid><author>showyoui</author><pubDate>Thu, 25 Sep 2025 06:15:00 +0800</pubDate><description><![CDATA[LangGraph持久化机制解析 LangGraph通过检查点（checkpoint）实现状态持久化，支持流程恢复、分支探索和人工干预。核心概念包括线程（thread）标识运行轨迹，检查点保存状态快照（含配置、元数据和节点值）。提供内存、SQLite和Postgres三种存储方案，支持JSON序列化和AES加密。典型应用场景包括对话记忆保持、长流程中断恢复和调试审计。通过thread_id关联检查点，开发者可读取历史状态或从任意节点分叉执行。建议生产环境使用Postgres存储并启用加密，关键节点设置人工确]]></description><category></category></item><item><title><![CDATA[LangChain Messages ：构建对话应用的基石]]></title><link>https://blog.youkuaiyun.com/showyoui/article/details/151974441</link><guid>https://blog.youkuaiyun.com/showyoui/article/details/151974441</guid><author>showyoui</author><pubDate>Tue, 23 Sep 2025 06:15:00 +0800</pubDate><description><![CDATA[摘要： LangChain的消息机制为对话式应用开发提供了标准化工具，包含多种核心消息类型：SystemMessage（设定AI行为）、HumanMessage（用户输入）、AIMessage（AI回复）、ToolMessage（工具反馈）和AIMessageChunk（流式输出）。通过角色标识、内容载体和元数据三要素，开发者能统一处理对话流程，支持多模态交互和外部工具调用。最佳实践包括精简系统消息、优化对话历史管理、利用元数据监控及流式交互优化。LangChain的消息体系简化了不同模型的接口差异，是构建]]></description><category></category></item><item><title><![CDATA[浅析 Redis 的 AOF 和 SnapShot]]></title><link>https://blog.youkuaiyun.com/showyoui/article/details/151725342</link><guid>https://blog.youkuaiyun.com/showyoui/article/details/151725342</guid><author>showyoui</author><pubDate>Thu, 18 Sep 2025 06:00:00 +0800</pubDate><description><![CDATA[Redis持久化机制包括AOF日志和RDB快照两种方式。AOF以日志形式记录所有写操作，提供更高持久性，但文件较大；RDB是二进制快照，恢复速度快但可能丢失数据。Redis 4.0后支持两者结合：AOF重写时在开头加入RDB快照，既保证持久性又提升恢复速度。生产环境推荐同时启用两种方式，实现数据安全与性能的平衡。]]></description><category></category></item><item><title><![CDATA[TiDB 扩容中的几个 peer 指标解读]]></title><link>https://blog.youkuaiyun.com/showyoui/article/details/151724730</link><guid>https://blog.youkuaiyun.com/showyoui/article/details/151724730</guid><author>showyoui</author><pubDate>Tue, 16 Sep 2025 06:15:00 +0800</pubDate><description><![CDATA[本文介绍了TiDB分布式数据库中的关键监控指标，帮助理解数据迁移和存储管理的核心概念。文章重点解析了Peer迁移过程中的四个关键指标：pending-peer-region-count、learner-peer-region-count、extra-peer-region-count和undersized-region-count，说明它们在不同迁移阶段的变化规律和正常波动范围。同时指出了这些指标持续高位时可能预示的问题，如网络瓶颈、节点过载或调度问题，为TiDB集群的维护和问题排查提供了重要参考。通过监控]]></description><category></category></item><item><title><![CDATA[uv：用 Rust 重写的极速 Python 包管理器]]></title><link>https://blog.youkuaiyun.com/showyoui/article/details/151589711</link><guid>https://blog.youkuaiyun.com/showyoui/article/details/151589711</guid><author>showyoui</author><pubDate>Fri, 12 Sep 2025 06:15:00 +0800</pubDate><description><![CDATA[摘要： uv 是由 Astral 开发的 Python 统一项目管理工具，旨在替代 pip、virtualenv、poetry 等多工具组合。其核心优势包括：极速性能（Rust 实现+并行下载）、一站式管理（包安装、依赖锁定、虚拟环境、Python 版本控制等）、低迁移成本（兼容 pip 命令）。支持通过 uv init 快速初始化项目，uv run 自动调用虚拟环境，uv.lock 确保跨平台依赖一致性，并集成脚本工具（uvx）和 Python 版本管理（uv python）。适用于新项目快速启动、CI/]]></description><category></category></item><item><title><![CDATA[聊聊为啥RAG偏爱专用向量数据库]]></title><link>https://blog.youkuaiyun.com/showyoui/article/details/151334390</link><guid>https://blog.youkuaiyun.com/showyoui/article/details/151334390</guid><author>showyoui</author><pubDate>Tue, 09 Sep 2025 06:30:00 +0800</pubDate><description><![CDATA[摘要 RAG系统采用向量数据库而非传统数据库的核心原因在于语义检索需求。向量数据库专为高维向量相似性搜索设计，能理解查询的语义而非仅匹配关键词，解决了传统数据库在语义搜索上的不足。关系型数据库擅长结构化数据精确查询但无法处理语义，非关系型数据库虽支持全文搜索但仍基于关键词匹配。向量数据库通过将语言理解转化为数学向量距离计算，实现了高效的语义检索，成为RAG系统中检索环节的最优解。]]></description><category></category></item><item><title><![CDATA[如何理解 LLM：看完 Karpathy 的 Deep Dive 之后]]></title><link>https://blog.youkuaiyun.com/showyoui/article/details/151296112</link><guid>https://blog.youkuaiyun.com/showyoui/article/details/151296112</guid><author>showyoui</author><pubDate>Mon, 08 Sep 2025 06:15:00 +0800</pubDate><description><![CDATA[本文梳理了大型语言模型(LLM)的核心概念和工作原理。LLM是基于Transformer的自回归模型，通过预测下一个token来生成文本。训练分为三个阶段：预训练(学习语言统计规律)、监督微调(学习指令遵循)和强化学习对齐(优化人类偏好)。模型将输入文本切分为token，通过神经网络计算概率分布，采用不同解码策略生成输出。对话能力来自于将历史记录作为上下文输入。文章指出，模型性能不仅取决于规模，更依赖微调和对齐策略，而token处理是影响模型表现和成本的关键因素。]]></description><category></category></item><item><title><![CDATA[Python类深度学习：Names、Objects、Scopes与Namespaces]]></title><link>https://blog.youkuaiyun.com/showyoui/article/details/151085699</link><guid>https://blog.youkuaiyun.com/showyoui/article/details/151085699</guid><author>showyoui</author><pubDate>Tue, 02 Sep 2025 06:00:00 +0800</pubDate><description><![CDATA[本文深入解析了Python中类的四大基础概念：对象、名称、命名空间和作用域。对象是Python中一切的基础，每个对象都有身份、类型和值三个特征；名称是对象的标签而非容器；命名空间是名称到对象的映射，分为内置、全局和本地三种；作用域决定了名称的访问规则。文章通过代码示例展示了这些概念的实际应用，并揭示了类本身也是对象，其命名空间包含类变量和实例变量。理解这些底层概念是掌握Python类的基础。]]></description><category></category></item><item><title><![CDATA[Python 的 `__all__` 变量：控制模块导出的正确姿势]]></title><link>https://blog.youkuaiyun.com/showyoui/article/details/150936032</link><guid>https://blog.youkuaiyun.com/showyoui/article/details/150936032</guid><author>showyoui</author><pubDate>Thu, 28 Aug 2025 06:15:00 +0800</pubDate><description><![CDATA[__all__ 是 Python 模块的特殊变量，用于控制 from module import * 时导出的名称。它是一个字符串列表，明确声明模块的公开接口。主要特点： 当使用 import * 时，只有 __all__ 列出的名称会被导入 在包（package）的 __init__.py 中特别有用，可以控制包的导出内容 即使没有前缀下划线，未列入 __all__ 的公开函数也不会被导入 __all__ 也常被用作模块的 API 文档声明 实际建议： 避免使用 import *（可能导致命名冲突和可读性]]></description><category></category></item><item><title><![CDATA[Python 模块（Modules）]]></title><link>https://blog.youkuaiyun.com/showyoui/article/details/150872719</link><guid>https://blog.youkuaiyun.com/showyoui/article/details/150872719</guid><author>showyoui</author><pubDate>Wed, 27 Aug 2025 06:30:00 +0800</pubDate><description><![CDATA[Python模块是代码组织和复用的基本单元，本质是一个.py文件附带独立命名空间。模块解决代码复用、命名隔离和项目结构问题，通过import机制加载时会创建缓存.pyc文件加速后续导入。使用时应注意：1)优先使用完整模块名导入避免命名冲突 2)通过if __name__ == '__main__'区分模块是被导入还是直接运行 3)合理组织项目结构，使用包(init.py)管理复杂模块 4)避免循环导入和污染全局命名空间。开发时可用importlib.reload()调试，但不适合生产环境。最佳实践包括使用绝]]></description><category></category></item></channel></rss>