<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" 
  xmlns:content="http://purl.org/rss/1.0/modules/content/"
  xmlns:wfw="http://wellformedweb.org/CommentAPI/"
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xmlns:atom="http://www.w3.org/2005/Atom"
  xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
  xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
>
  <channel>
    <title><![CDATA[Jacin Blog]]></title>
    <atom:link href="https://jacin.me/feed.xml" rel="self" type="application/rss+xml" />
    <link>https://jacin.me</link>
    <description><![CDATA[一名深度 AI 应用开发者的技术博客，分享大模型开发、Python 后端、RAG、Agent、部署运维与工程实践经验。]]></description>
    <language>zh-CN</language>
    <lastBuildDate>Wed, 20 May 2026 19:13:20 GMT</lastBuildDate>
    
    <item>
      <title><![CDATA[【转载】Harness不是目的，知识才是护城河]]></title>
      <link>https://jacin.me/posts/转载harness不是目的知识才是护城河</link>
      <guid isPermaLink="false">https://jacin.me/posts/转载harness不是目的知识才是护城河</guid>
      <pubDate>Mon, 27 Apr 2026 15:58:16 GMT</pubDate>
      <description><![CDATA[这篇转载摘录讨论的是 Harness Engineering 与 Agent 工作流建设中的长期价值判断：Agent、Harness、工作流编排和具体框架都只是驾驭模型的手段，真正可积累的资产是团队在业务交付中形成的领域知识。内容将 Harness Engineering 概括为上下文工程、架构约束和持续治理三支柱，强调通过记忆管理、检索注入、Agent 编排、状态机或 DAG 流程、安全边界、质量门禁等方式，让模型在复杂任务中稳定执行。文章进一步指出，工作流形态、调度模式和模型能力都会快速变化，但领域模型、架构决策、业务规则、已知陷阱和最佳实践不会因工具换代而失效。为避免知识库沦为平台依赖，文中倾向采用 Git + Markdown 管理团队知识，并给出 team-knowledge.git 目录和个人偏好、团队约定、技术知识、业务知识、项目知识五层存储划分。它特别强调知识闭环：工作流启动时消费已有知识，结束后沉淀新经验，同时通过引用追踪、成熟度提升、自动衰减和 Lint 治理防止知识只进不出。适合关注 AI 工程化、Agent 编排、团队知识库建设和软件研发治理的读者，用来重新判断工具投入与知识资产沉淀之间的优先级。]]></description>
      <content:encoded><![CDATA[]]></content:encoded>
    </item>
    <item>
      <title><![CDATA[网络代理工具与 VPS 入门：线路、协议、测试工具与两种搭建思路]]></title>
      <link>https://jacin.me/posts/network-proxy-tools-vps-intro</link>
      <guid isPermaLink="false">https://jacin.me/posts/network-proxy-tools-vps-intro</guid>
      <pubDate>Wed, 22 Apr 2026 15:40:29 GMT</pubDate>
      <description><![CDATA[这是一篇面向新手的网络代理工具与 VPS 入门导读，核心不是比较“哪个协议最强”，而是建立从线路质量、入口/出口职责到部署与排障的完整判断框架。文章先解释 VPS、线路机、落地机、家宽机、NAT 机、IDC 机房机和 DNS 解锁等常见概念，强调入口节点负责稳定接入，出口节点负责最终出网，两者不应混为一谈。随后梳理 BGP.Tools、ITDog、Ping.pe 等工具的用途，说明如何从 ASN、ping、tcping、traceroute、MTR、丢包和端口可达性中判断链路状态，而不是只看一次测速截图。选购 VPS 时，文章建议优先评估地区与用途、独立 IPv4、带宽和流量规则、后台重装与控制台能力，并通过一到两周高峰期观察确认是否匹配。协议和工具部分对 sing-box、Shadowsocks 2022、VLESS REALITY、3x-ui 做了边界说明，修正了 REALITY 不等同传统 TLS 证书部署、sing-box Docker 不强制 host 网络、Shadowsocks 起步应优先理解 AEAD 2022 等常见误区。最后给出一跳与两跳结构的演进思路、安全基线、日志备份和最小排障命令，适合需要在授权环境中做远程访问、跨地域链路测试或个人实验室中继转发的开发者与运维学习者。]]></description>
      <content:encoded><![CDATA[]]></content:encoded>
    </item>
    <item>
      <title><![CDATA[LLM 应用评估体系-1]]></title>
      <link>https://jacin.me/posts/llm-应用评估体系-1</link>
      <guid isPermaLink="false">https://jacin.me/posts/llm-应用评估体系-1</guid>
      <pubDate>Mon, 13 Apr 2026 16:33:00 GMT</pubDate>
      <description><![CDATA[这是一份面向 LLM 应用质量工程的评估体系笔记，核心关注如何把模型输出从上线后的偶发检查，转为可监控、可比较、可归因的持续改进闭环。正文先建立多维指标框架，将准确性、相关性、完整性、格式合规和语气适配按权重拆分，并补充 RAGAS 中 Context Precision、Context Recall、Faithfulness、Answer Relevance 等检索与生成指标的目标值和评估方法。随后围绕提示词优化给出 A/B 测试流程、样本量计算思路、多臂老虎机分流策略，以及 Dev、Canary、Prod 的版本管理方式。评估器部分重点说明 LLM-as-a-Judge 的结构化提示词、与人工标注的一致性校验、常见偏差规避，以及评估延迟、成本、覆盖率等运行监控。文章还覆盖人工标注工作流、Kappa 等一致性指标、分歧处理、数据集版本与训练/验证/测试集划分，并用失败分类和归因模板连接到后续优化。最后以 Langfuse 为例串起 Trace 记录、评分、Annotation Queue、数据集管理、Dashboard 监控和提示词版本对比，适合正在搭建 RAG、智能客服或其他生产级 LLM 应用评估闭环的开发与平台团队参考。]]></description>
      <content:encoded><![CDATA[]]></content:encoded>
    </item>
    <item>
      <title><![CDATA[LangGraph-概览]]></title>
      <link>https://jacin.me/posts/langgraph-概览</link>
      <guid isPermaLink="false">https://jacin.me/posts/langgraph-概览</guid>
      <pubDate>Mon, 13 Apr 2026 16:04:18 GMT</pubDate>
      <description><![CDATA[这是一份面向复杂 AI Agent 设计与面试准备的 LangGraph 导读，核心对象是其状态驱动的有向图工作流模型，以及它相对 LangChain 线性 Chain 在动态分支、并行执行和显式状态管理上的差异。内容围绕 State、Reducer、Node、Edge、Conditional Edge 等关键概念展开，说明 State 如何承担节点通信和多会话隔离，Reducer 如何处理并发写入时的消息追加、列表合并或覆盖策略。文章还梳理了条件路由、thread_id 与 Checkpointer、Fan-out/Fan-in、Early Exit、Fallback 等常见设计模式，用客服 Agent 场景串联商品查询、订单查询、投诉处理、多用户并发和 SLA 保证的系统设计思路。可靠性部分强调 Node 应保持单一职责、幂等、异步优先并具备错误处理，路由函数也应只依赖 State，避免随机数、时间或全局变量造成重试和回放不一致。可观测性则以 Langfuse 为例，覆盖 Trace、Token 成本、延迟、提示词版本和 A/B 测试等运维视角。适合正在从简单 LLM 调用转向可生产化 Agent 编排的后端开发、AI 应用开发者和准备相关系统设计面试的读者。]]></description>
      <content:encoded><![CDATA[]]></content:encoded>
    </item>
    <item>
      <title><![CDATA[Agent Harness 是什么？]]></title>
      <link>https://jacin.me/posts/agent-harness-是什么</link>
      <guid isPermaLink="false">https://jacin.me/posts/agent-harness-是什么</guid>
      <pubDate>Mon, 13 Apr 2026 15:19:46 GMT</pubDate>
      <description><![CDATA[Agent Harness 被界定为大模型之外的运行时系统，用来把原本不可控的 LLM 能力纳入可编排、可审计、可上线的 Agent 工程框架中。文章围绕 Agent = Model + Harness 的基本公式，拆解接入、编排、工具、记忆、安全防护、观测评测六层架构，说明长时多轮任务需要稳定的会话容器、受控的 TAO/ReAct 循环、最大迭代次数、错误处理和 fallback，而不是让模型无限自由发挥。工具层强调注册、schema、权限、超时、重试和熔断，建议从 3 到 5 个核心工具起步，避免工具膨胀造成模型选择混乱。记忆层区分短期状态与长期事实，重点不在“存得多”，而在上下文预算、滚动摘要、按需召回和防止记忆污染当前任务。安全部分覆盖 prompt injection、敏感工具拦截、高风险操作确认、沙盒、审计日志，并补充 Skills 执行中的提示词约束、命令白名单、隔离和结果过滤。文章还把 Harness 与 Skills、MCP 的关系放在同一框架下理解：Skills 偏本地工作流，MCP 偏远程能力接入，Harness 负责整体编排；其中 Hermes Agents 部分明确属于基于趋势的推测。适合正在把 Agent 从 Demo 推向企业级应用的 AI 应用开发者、后端工程师和平台工程团队，用来建立可靠性、安全性和可观测性的工程检查清单。]]></description>
      <content:encoded><![CDATA[]]></content:encoded>
    </item>
    <item>
      <title><![CDATA[Skills 在 Shell 环境中的安全执行]]></title>
      <link>https://jacin.me/posts/skills-在-shell-环境中的安全执行</link>
      <guid isPermaLink="false">https://jacin.me/posts/skills-在-shell-环境中的安全执行</guid>
      <pubDate>Mon, 13 Apr 2026 15:16:34 GMT</pubDate>
      <description><![CDATA[这篇笔记聚焦 Skills 挂载到 Shell 环境后的执行安全，核心判断是不能只依赖模型自觉遵守规则，而要由后端对命令生成、执行环境和输出结果形成闭环控制。内容按四层防护展开：先在 SKILL.md 中声明允许读取、创建或修改的范围，并明确禁止删除系统文件、访问敏感目录、执行网络命令等高风险行为；随后通过命令白名单和正则黑名单，在执行前拦截 rm -rf、sudo、chmod 777、写入 /etc 等危险模式。执行阶段建议放入 Docker 沙盒，限制镜像、内存、CPU、超时时间，关闭网络，并将 /data 以只读方式挂载，降低命令越权和资源滥用的影响面。最后一层是结果过滤与审计，记录执行命令和输出长度，同时对 password、token、api_key 等敏感字段脱敏，并截断过长输出，避免把风险从执行环节转移到返回内容。它适合正在把 AI Skills、Agent 工具调用或自动化脚本接入后端的开发者，用来建立一套可落地的最小安全框架。需要注意的是，提示词约束只是第一道软边界，真正的安全性来自白名单校验、隔离运行和输出治理的组合，而不是让模型“更聪明”。]]></description>
      <content:encoded><![CDATA[]]></content:encoded>
    </item>
    <item>
      <title><![CDATA[MCP 开发]]></title>
      <link>https://jacin.me/posts/mcp-开发</link>
      <guid isPermaLink="false">https://jacin.me/posts/mcp-开发</guid>
      <pubDate>Mon, 13 Apr 2026 14:46:13 GMT</pubDate>
      <description><![CDATA[这是一篇面向 AI 应用开发者的 MCP 开发入门与实践笔记，围绕 Model Context Protocol 如何把 Claude、IDE、ChatGPT 等 AI 客户端与外部系统标准化连接起来展开。内容先说明 MCP 的分层架构：Host、Client、JSON-RPC 2.0 协议、STDIO 或 HTTP 传输以及 Server 侧能力提供，并将 Tool、Skill、MCP 放在执行方式和适用场景上对比，帮助读者判断何时需要协议化接入而不是单个工具或本地技能。实践部分给出 Python 环境准备、uv 依赖安装、FastMCP 服务器开发示例，包括天气查询、SQLite 数据库查询，以及 STDIO 模式下日志必须写入 stderr、避免破坏 JSON-RPC 消息的注意事项。客户端部分展示了通过 ClientSession、stdio_client 连接服务器、列出工具、结合 Anthropic API 处理 tool_use 循环并回传工具结果的完整流程，同时补充 OpenAI Responses API 中以 mcp 工具类型接入远程服务器、使用 allowed_tools 控制暴露范围的写法。后续章节梳理 Tools、Resources、Prompts 三类核心能力、工具列表变化通知机制，以及开发工具、数据分析、业务自动化和旅行规划等应用场景，适合想从概念、协议结构到最小可运行代码建立 MCP 开发框架的读者。]]></description>
      <content:encoded><![CDATA[]]></content:encoded>
    </item>
    <item>
      <title><![CDATA[AI Skills 开发-1]]></title>
      <link>https://jacin.me/posts/ai-skills-开发</link>
      <guid isPermaLink="false">https://jacin.me/posts/ai-skills-开发</guid>
      <pubDate>Mon, 13 Apr 2026 14:36:52 GMT</pubDate>
      <description><![CDATA[这篇指南把 AI Skills 定位为挂载在执行环境上的任务知识包，而不是单纯的 shell 工具，核心由 SKILL.md、执行步骤、策略约束和可选辅助脚本组成。正文先区分 Tool、Skill 与 MCP：Tool 是具体能力，Skill 是能力的使用手册和执行 SOP，MCP 则负责把模型连接到外部工具和数据源。文章给出官方目录结构、SKILL.md frontmatter 中 name 与 description 的必需字段，并用 CSV 汇总报告示例展示如何声明触发条件、编排执行步骤和返回结果。随后扩展到 OpenAI Responses API 的多 Skills 配置、Claude Code 中通过 slash commands 暴露预置或自定义 Skills，以及代码格式化 Skill 的目录创建、说明文件和 Python 辅助脚本实现。实践部分强调单一职责、清晰命名、准确 description、脚本可复用，并列出数据处理、文档生成、测试辅助、代码质量检查等模板方向。文章也覆盖常见排查与优化：未触发通常来自描述不清，执行失败可能是依赖缺失，性能问题可通过缓存、异步、增量处理和资源限制缓解，适合正在设计可复用 AI 任务能力包的开发者和 AI 工程实践者。]]></description>
      <content:encoded><![CDATA[]]></content:encoded>
    </item>
    <item>
      <title><![CDATA[美国实体号 tello 转入 google voice 步骤]]></title>
      <link>https://jacin.me/posts/美国实体号-tello-转入-google-voice-步骤</link>
      <guid isPermaLink="false">https://jacin.me/posts/美国实体号-tello-转入-google-voice-步骤</guid>
      <pubDate>Tue, 07 Apr 2026 14:59:34 GMT</pubDate>
      <description><![CDATA[这是一篇记录将 Tello 美国实体手机号转入 Google Voice 的操作笔记，重点在于从 Tello 后台发起 port out，并在 Google Voice 的号码转入页面完成接收。作者先说明了一个容易卡住的前提：Tello 账户地址曾因避税设置为香港，实际尝试时无法顺利转入 Google Voice，后来在 Tello 对美国境外地址收税的限制下，改选美国低税区 Las Vegas 地址后继续操作。流程核心是在 Tello 后台选择 Google Voice port out，系统会提供两个用于转出的码，其中账号信息和验证码会在 Google Voice 侧填写。随后进入 Google Voice porting 页面，按要求支付 20 美元，等待约两天即可完成转入。笔记还提示这种操作可能带来两个 Google Voice 号码的结果，但成功条件依赖地址区域、税费规则和 Google Voice 转入校验。适合已有 Tello 实体号、希望保留号码并迁移到 Google Voice 的用户，用作核对关键入口、费用和地址限制的简要参考。]]></description>
      <content:encoded><![CDATA[]]></content:encoded>
    </item>
    <item>
      <title><![CDATA[[转] codex 使用配置]]></title>
      <link>https://jacin.me/posts/转-codex-使用配置</link>
      <guid isPermaLink="false">https://jacin.me/posts/转-codex-使用配置</guid>
      <pubDate>Tue, 07 Apr 2026 07:16:33 GMT</pubDate>
      <description><![CDATA[这是一份围绕 Codex 本地使用治理的配置摘录，先交代 `~/.codex` 目录中 `config.toml`、`auth.json`、`instructions.md`、`version.json`、`token` 等文件的职责，再指出 Codex 主配置采用 TOML 格式，位置在 `~/.codex/config.toml`。重点内容是一份全局 `AGENTS.md` 示例，它被类比为 Claude Code 的 `CLAUDE.md`，用于在 `~/.codex` 范围内约束 Codex 的默认行为，并允许子目录同名文件覆盖。示例提示词强调用户显式命令、子目录指南、根目录指南和其他约定之间的优先级，同时要求在冲突、工具降级、外部检索、文件变更和交付环节保留可审计说明。正文还列出本地检索、`apply_patch`、安全 shell、Sequential Thinking、Context7、Fetch、Playwright 等工具的使用顺序与降级条件，并把 Research、Plan、Implement、Verify、Deliver 固化为标准工作流。其价值不在于讲解 Codex 功能细节，而是提供一套偏工程治理的全局提示词框架，帮助开发者统一安全边界、证据来源、质量门槛、交付说明和风险留痕。需要注意的是，文中部分路径、工具清单和质量指标具有强烈个人环境特征，适合参考结构与约束思路，实际落地时应按自己的 Codex 配置、可用 MCP 工具和项目流程裁剪。]]></description>
      <content:encoded><![CDATA[]]></content:encoded>
    </item>
    <item>
      <title><![CDATA[[转]LangGraph完整指南]]></title>
      <link>https://jacin.me/posts/转langgraph完整指南</link>
      <guid isPermaLink="false">https://jacin.me/posts/转langgraph完整指南</guid>
      <pubDate>Mon, 06 Apr 2026 15:45:13 GMT</pubDate>
      <description><![CDATA[这是一篇围绕 LangGraph 的转载型技术导读，聚焦它如何在 LangChain 生态中承担复杂 Agent 工作流编排角色：LangChain 更像模型、提示词和工具等“零件库”，LangGraph 则通过图结构把这些组件组织成可循环、可分支、可维护的执行流程。正文以图、节点、边、状态四个核心概念展开，说明状态用于在节点间保存对话历史、中间结果和决策记录，节点负责单一计算职责，普通边与条件边决定流程流转，而 StateGraph 则用于定义、连接、编译并运行完整工作流。示例部分给出基于 TypedDict、ChatOpenAI、StateGraph、入口节点和 END 的最小代码骨架，帮助读者理解从状态定义到图编译、调用执行的基本路径。文章还归纳了链式、路由、循环和协作四类常见工作流，分别对应顺序任务、动态分流、迭代优化和多 Agent 分工协作等场景。进阶部分进一步覆盖 checkpointer 持久化、检查点回溯与 Time Travel、人机协作中断恢复、多 Agent 通信协调，以及 stream/astream 支持的流式输出。适合已了解 LangChain 基础、希望把 LLM 调用升级为可控 Agent 系统的 AI 应用开发者，用来建立 LangGraph 的概念框架和工程切入点。]]></description>
      <content:encoded><![CDATA[]]></content:encoded>
    </item>
    <item>
      <title><![CDATA[claude 账号注册]]></title>
      <link>https://jacin.me/posts/claude-账号注册</link>
      <guid isPermaLink="false">https://jacin.me/posts/claude-账号注册</guid>
      <pubDate>Mon, 06 Apr 2026 14:15:32 GMT</pubDate>
      <description><![CDATA[这篇笔记记录了一次 Claude 账号从 Apple ID 隐藏邮箱登录方式迁移到自建邮箱账号的操作过程，背景是原先使用 Apple ID 加 giffgaff 接码注册后，每次确认登录邮箱都要回查隐藏邮箱信息，使用体验不够方便。正文给出的注册路径是使用 5sim 接码平台，进入 5sim 后选择法国地区和 Virtual51 运营商，用于完成新账号所需的手机验证。迁移部分重点不是简单重新注册，而是先在旧 Claude 账号中导出历史记录，保留 conversations.json 这类包含对话内容、时间和模型信息的导出文件。随后作者提供了一段用于“记忆提取后转移”的提示词，要求 Claude 完整分析导出的 conversations.json，从历史对话中提取身份背景、回复风格、常用规则、长期项目、决策习惯和特殊要求等核心记忆，并整理为可导入 Memory 的 Markdown 文本。提示词还限制了输出结构、第二人称写法、字符上限和额外概览信息，方便在新账号中重建长期上下文。适合需要更换 Claude 登录方式、迁移旧账号对话记忆，或想把历史聊天记录整理成可复用个人偏好配置的用户参考，但接码平台、地区和运营商选择属于当时实践记录，实际可用性仍需按注册时环境确认。]]></description>
      <content:encoded><![CDATA[]]></content:encoded>
    </item>
    <item>
      <title><![CDATA[vps 服务器安装 codex-cli]]></title>
      <link>https://jacin.me/posts/vps-服务器安装-codex-cli</link>
      <guid isPermaLink="false">https://jacin.me/posts/vps-服务器安装-codex-cli</guid>
      <pubDate>Mon, 30 Mar 2026 14:03:45 GMT</pubDate>
      <description><![CDATA[这是一份面向 VPS 环境安装 OpenAI Codex CLI 的命令型笔记，重点覆盖从基础依赖到首次启动授权的最短可执行路径。流程先通过 apt 更新软件源，并安装 curl、ca-certificates 等获取远程安装脚本所需的基础组件；随后使用 nvm 官方安装脚本部署 Node.js 版本管理器，并在当前 shell 中通过 source ~/.bashrc 或手动设置 NVM_DIR 的方式确保 nvm 可用。Node.js 部分选择安装 LTS 版本，切换到该版本并设置为默认版本，再用 node -v 和 npm -v 验证运行环境是否生效。Codex CLI 的安装通过 npm 全局安装 @openai/codex 完成，安装后使用 codex --version 检查命令是否已进入 PATH。最后执行 codex 进入首次登录流程，并在登录完成后按交互提示进行 Codex 所需权限的开通或授权。它适合已经拥有一台可 SSH 登录的 VPS、希望快速搭建 Codex CLI 运行环境的开发者，但正文只给出基础安装命令，没有展开不同发行版、非 bash shell、权限错误或 npm 网络问题的排查。]]></description>
      <content:encoded><![CDATA[]]></content:encoded>
    </item>
    <item>
      <title><![CDATA[GCP spot vm 地区实惠总结]]></title>
      <link>https://jacin.me/posts/gcp-spot-vm-地区实惠总结</link>
      <guid isPermaLink="false">https://jacin.me/posts/gcp-spot-vm-地区实惠总结</guid>
      <pubDate>Sun, 29 Mar 2026 07:16:29 GMT</pubDate>
      <description><![CDATA[这份记录把 GCP Spot VM 的低价区域按月费估算做成对照表，重点覆盖 e2-micro 与少量 e2-small 配置，并统一加入 10GB 硬盘成本，方便直接比较总月费。表中最便宜的是 us-west4 拉斯维加斯 e2-micro，Spot 估算 $0.65，加硬盘后约 $1.05/月；us-central1、us-west3、us-west8 也处在 $1.08 到 $1.15/月区间，是美国低价区域的主要候选。欧洲区域整体略高，比利时、荷兰、芬兰、伦敦的 e2-micro 总月费约 $1.35 到 $1.55，但从香港访问延迟估算普遍在 280ms 以上。亚洲区域价格更高但延迟更友好，新加坡约 $1.75/月且香港延迟 50-80ms，东京、台湾、孟买、悉尼则分别提供不同的价格与网络距离取舍。表格还列出 us-west4 与 us-central1 的 e2-small，2GB 内存配置总月费约 $1.75 到 $1.80，可作为内存需求稍高时的低价备选。适合需要为轻量服务、测试机或低成本节点选择 GCP Spot VM 区域的用户，用来在预算、机型规格、磁盘成本和香港方向网络延迟之间做初步筛选。]]></description>
      <content:encoded><![CDATA[]]></content:encoded>
    </item>
    <item>
      <title><![CDATA[防火墙脚本]]></title>
      <link>https://jacin.me/posts/防火墙脚本</link>
      <guid isPermaLink="false">https://jacin.me/posts/防火墙脚本</guid>
      <pubDate>Sat, 28 Mar 2026 08:22:11 GMT</pubDate>
      <description><![CDATA[这是一套面向 Debian/Ubuntu VPS 的轻量级公网入口防火墙管理方案，用一份 rules.conf 和一个 firewall-apply.sh 把分散的端口访问控制收敛到可读、可迁移的规则模型中。文章围绕常见 VPS 演进后的混乱场景展开：nginx、后台服务、Docker ports、数据库或调试端口陆续暴露后，管理员往往难以确认开放面，直接改 INPUT 链还可能对 Docker 流量路径判断错误。方案将规则分为 global、public、inbound 三个区块，分别表达全局白名单、对所有来源公开的端口，以及端口级来源白名单，让配置文件本身成为当前公网入口状态的说明。它特别强调边界控制：只接管外部进入的访问，区分宿主机入口和 Docker 暴露端口，并优先放过常见 Docker bridge 内部流量，避免 web、api、postgres、redis 等容器间依赖被误当作公网访问拦截。脚本还会在执行时自动安装并启用轻量 systemd 服务，使 iptables 规则在重启后可由同一份规则文件恢复，而不需要额外维护 service 文件。适用读者是维护个人或小型业务 VPS 的开发者、运维和自托管用户；它不覆盖出站控制、K8s 网络策略、审计平台或行为风控，但能解决端口公开、来源限制、全局放行和重启恢复这些基础入口治理问题。]]></description>
      <content:encoded><![CDATA[]]></content:encoded>
    </item>
    <item>
      <title><![CDATA[Harness/Skills/Rules 结构]]></title>
      <link>https://jacin.me/posts/harnessskillsrules-结构</link>
      <guid isPermaLink="false">https://jacin.me/posts/harnessskillsrules-结构</guid>
      <pubDate>Thu, 26 Mar 2026 15:43:54 GMT</pubDate>
      <description><![CDATA[这篇笔记聚焦 2026 年 Agent 项目中 Harness、Skills 与 Rules 的目录组织方式，给出一套兼顾 Codex、Cursor、Claude Code 与 GitHub Copilot 的项目结构参考。核心建议是把 AGENTS.md 放在项目根目录，作为 Agent 的规则、约束与项目概览入口，并允许在子模块中继续放置子 AGENTS.md 形成层级继承。Skills 推荐集中放在跨工具通用的 .agents/skills/ 下，每个 Skill 必须是独立文件夹，至少包含带 YAML 前言的 SKILL.md，也可以附带 scripts、references、assets 等资源。Rules 则主要是 Cursor 的专属机制，放在 .cursor/rules/ 中，以 .mdc 或 .md 文件形式存在，并支持 glob 路径匹配、智能匹配和手动触发。文中还区分了不同工具的惯例：Codex 更依赖 AGENTS.md 与 docs/ 知识库，Cursor 可并存 .agents/skills 与 .cursor/skills，Claude Code 可使用 CLAUDE.md 或 .claude/skills，Copilot 则偏轻量并使用 .github/skills。适合正在整理多 Agent 工具链配置、希望减少目录分裂和规则重复的开发者，用来快速判断哪些文件应作为跨工具标准，哪些只应保留在工具专属目录中。]]></description>
      <content:encoded><![CDATA[]]></content:encoded>
    </item>
    <item>
      <title><![CDATA[谷歌gemini pro 会员赠金 使用vps]]></title>
      <link>https://jacin.me/posts/谷歌gemini-pro-会员赠金-使用vps</link>
      <guid isPermaLink="false">https://jacin.me/posts/谷歌gemini-pro-会员赠金-使用vps</guid>
      <pubDate>Mon, 16 Mar 2026 15:39:40 GMT</pubDate>
      <description><![CDATA[这篇笔记围绕 Gemini Pro 会员每月可领取、可叠加但有时限的赠金，记录如何把赠金额度用于创建一台低成本的 GCP 香港落地 VPS。正文给出从 Compute Engine 新建实例开始的配置路径：区域选择 asia-east2 香港，机型选 E2 系列 e2-micro，系统使用 Debian 12，并将启动盘改为 10GB 标准永久性磁盘以避免 SSD 带来的额外费用。省钱重点放在两处：把虚拟机预配模型改为 Spot 抢占式，以及将网络服务等级从 Premium 调整为 Standard，使计算、磁盘和出站流量都按更低成本计费。文章还补充了创建时的防火墙勾选、费用预估、静态 IP 绑定场景，并列出静态 IP 在未使用、标准 VM、Spot VM、Cloud NAT 等不同状态下的月度费用差异，提醒未使用的保留 IP 反而更贵。后半部分记录了安装 Google Cloud SDK、通过 gcloud auth login 登录、复制 gcloud compute ssh 命令连接实例以及修改 SSH 登录信息的操作，并特别强调防火墙配置需要检查。针对 Spot 实例可能被抢占停机的问题，作者提供了一个基于服务账号 JSON、google-cloud-compute 客户端轮询实例状态并在 TERMINATED 时自动 start 的 Python 守护脚本，配合 nohup 后台运行，适合希望用赠金搭建轻量代理或香港节点、同时控制 GCP 账单风险的用户参考。]]></description>
      <content:encoded><![CDATA[]]></content:encoded>
    </item>
    <item>
      <title><![CDATA[embeddings 缓存处理]]></title>
      <link>https://jacin.me/posts/embeddings-缓存处理</link>
      <guid isPermaLink="false">https://jacin.me/posts/embeddings-缓存处理</guid>
      <pubDate>Mon, 16 Mar 2026 03:32:02 GMT</pubDate>
      <description><![CDATA[这篇笔记聚焦 LangChain embeddings 的本地文件缓存处理，核心场景是避免重复调用 embedding 模型，同时保证缓存命中结果不会因模型差异而混用。正文用 `LocalFileStore("./.cache/embeddings/", update_atime=True)` 和 `CacheBackedEmbeddings.from_bytes_store(...)` 展示了基本写法，并强调同一段文本在不同模型下会得到不同向量，因此缓存 key 需要通过 `namespace=openai_embeddings.model` 区分模型命名空间，避免串缓存。`LocalFileStore` 在读取缓存文件时可以主动刷新 atime，也就是最后访问时间，用来弥补某些文件系统默认不可靠更新 atime 或更新策略较弱的问题。缓存代理的工作流程是先由输入文本生成 key，再查本地 store，命中则直接返回 embedding，未命中才调用 `openai_embeddings` 并把结果写回缓存。文章还解释了 mtime、ctime、atime 的区别，并围绕 atime 引出缓存淘汰策略：LRU 会优先删除很久没访问的项目，适合 embedding 缓存、页面缓存、Redis 热数据和数据库 buffer pool 等大多数热点访问场景；MRU 则优先删除刚访问过的项目，更适合顺序扫描大文件、批处理或一次性遍历数据集这类短期不会回头访问的场景。读者可以据此理解 LangChain 缓存 embedding 的关键配置点，以及在清理本地缓存时如何根据访问模式选择 LRU 或 MRU。]]></description>
      <content:encoded><![CDATA[]]></content:encoded>
    </item>
    <item>
      <title><![CDATA[Vibe Coding Skills]]></title>
      <link>https://jacin.me/posts/vibe-coding-skills-177</link>
      <guid isPermaLink="false">https://jacin.me/posts/vibe-coding-skills-177</guid>
      <pubDate>Tue, 03 Mar 2026 01:54:51 GMT</pubDate>
      <description><![CDATA[这是一则面向 Vibe Coding 工作流的技能安装速记，核心对象是 GitHub 仓库 sickn33/antigravity-awesome-skills 及其可通过 npx skills add 引入的 Antigravity Skills。正文给出四条直接可执行的安装命令，分别添加 rag-engineer、prompt-engineer、langgraph 和 langfuse，覆盖 RAG 工程、提示词工程、LangGraph 编排与 Langfuse 观测相关能力。除命令外，笔记特别标出 Codex App / Codex CLI 与 Google Antigravity 在 Skills 目录命名上的差异：OpenAI Codex 使用 `.agents/skills`，而 Antigravity 使用 `.agent/skills`。这个区别只差一个复数形式，但会直接影响技能文件放置路径，适合在多工具并用或迁移配置时作为校验点。读者可以从中快速复制安装命令，并避免把 Codex 的官方目录约定误套到 Antigravity 上。内容更适合正在配置 AI 编程代理、管理 Skills 仓库，或需要在 Codex 与 Antigravity 之间区分本地目录结构的开发者。]]></description>
      <content:encoded><![CDATA[]]></content:encoded>
    </item>
    <item>
      <title><![CDATA[部署 Openclaw]]></title>
      <link>https://jacin.me/posts/openclaw-176</link>
      <guid isPermaLink="false">https://jacin.me/posts/openclaw-176</guid>
      <pubDate>Fri, 27 Feb 2026 16:02:15 GMT</pubDate>
      <description><![CDATA[这是一篇面向 VPS 自部署场景的 OpenClaw 部署与加固记录，环境示例为德国 VPS，采用官方一键脚本安装，并选择 Codex 认证方式完成初始化。内容覆盖了日常维护所需的更新与卸载命令，包括检查版本、原地安全升级、跳过自动重启，以及彻底清理服务、数据目录、全局 CLI 和残留进程的卸载路径。文章还记录了 Telegram 机器人接入流程：通过 BotFather 创建 bot、获取 pairing code 后批准指定用户，并在群组使用时关闭 Privacy Mode、授予管理员和读取群组消息权限。排错部分集中处理两个常见访问问题，一是 Control UI 的 origin not allowed，需要在 ~/.openclaw/openclaw.json 中配置 gateway.controlUi.allowedOrigins；二是浏览器首次访问触发的设备配对机制，需要在服务器上查看并批准 pending device。后半部分重点说明 Docker 沙盒模式的安全边界：它并不是把整个 OpenClaw 容器化，而是保留宿主机上的 Gateway、配置、Token、Telegram 设置和历史会话，仅将 agent 的工具执行切换到 Docker 容器中。文章给出了拉取官方 Dockerfile.sandbox、本地构建 openclaw-sandbox:bookworm-slim 镜像、配置 agents.defaults.sandbox、可选禁用高风险工具、重启服务和验证 sandbox explain 输出的完整流程，适合已经跑通 OpenClaw、希望在不丢数据的前提下进行原地加固的开发者或运维使用。]]></description>
      <content:encoded><![CDATA[]]></content:encoded>
    </item>
  </channel>
</rss>