<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>LLM应用 on 春水煎茶</title><link>https://www.chunshuijiancha.top/categories/llm/</link><description>Recent content in LLM应用 on 春水煎茶</description><generator>Hugo</generator><language>zh-cn</language><lastBuildDate>Thu, 04 Jun 2026 23:00:00 +0800</lastBuildDate><atom:link href="https://www.chunshuijiancha.top/categories/llm/index.xml" rel="self" type="application/rss+xml"/><item><title>reins框架：把Agent驾驭的”缰绳“握在自己手里</title><link>https://www.chunshuijiancha.top/posts/llm/agent/base-agent-reins/</link><pubDate>Thu, 04 Jun 2026 23:00:00 +0800</pubDate><guid>https://www.chunshuijiancha.top/posts/llm/agent/base-agent-reins/</guid><description>很多人以为构建 Agent 系统，最难的问题是&amp;quot;让 LLM 更聪明&amp;quot;。真正进入生产环境，你会发现把你逼疯的不是模型效果，而是模型的“不确定性”。</description></item><item><title>从 Vibe Coding 到 SDD：企业级 AI 编程范式的演进与实践</title><link>https://www.chunshuijiancha.top/posts/llm/xdd/openspec/part-1-onboarding/</link><pubDate>Thu, 16 Apr 2026 10:00:00 +0800</pubDate><guid>https://www.chunshuijiancha.top/posts/llm/xdd/openspec/part-1-onboarding/</guid><description>通过 SDD + OpenSpec，我们在一个真实的存量项目中，用 AI 生成了 9600+ 行可编译、可测试的代码，手动修改不到 50 行。本文记录了完整的实践过程、评测结果和踩坑经验。</description></item><item><title>AI Skill 不是写个 Prompt 那么简单</title><link>https://www.chunshuijiancha.top/posts/llm/agent/production-grade-skill/</link><pubDate>Mon, 01 Jun 2026 23:00:00 +0800</pubDate><guid>https://www.chunshuijiancha.top/posts/llm/agent/production-grade-skill/</guid><description>写个Skill 一天就能上线，但生产级的Skill你会发现远没有那么简单。Skill 设计不是 prompt 工程，而是一门系统工程</description></item><item><title>OpenSpec 架构：把 AI 协作从“对话驱动”变成“状态驱动”</title><link>https://www.chunshuijiancha.top/posts/llm/xdd/openspec/part-2-architecture/</link><pubDate>Sun, 19 Apr 2026 20:00:00 +0800</pubDate><guid>https://www.chunshuijiancha.top/posts/llm/xdd/openspec/part-2-architecture/</guid><description>&lt;h2 id="openspec-架构"&gt;OpenSpec 架构&lt;/h2&gt;
&lt;h3 id="整体架构"&gt;整体架构&lt;/h3&gt;
&lt;p&gt;可以把它理解成三层：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;状态层&lt;/strong&gt;：仓库目录本身就是状态存储&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;计算层&lt;/strong&gt;：schema + dependency graph + validator&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;交互层&lt;/strong&gt;：CLI 和 skills，把结构化状态喂给 AI 或人&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;这套分层很重要，因为它避免了一个常见问题：把“流程”硬编码进 prompt。在 OpenSpec 里，prompt 只是表现层；真正的工作流定义在 schema 中，真正的状态在文件系统里。&lt;/p&gt;
&lt;p&gt;&lt;img alt="OpenSpec 整体架构图（Excalidraw 重绘）" loading="lazy" src="https://www.chunshuijiancha.top/posts/llm/xdd/openspec/part-2-architecture/arch_overall_excalidraw.svg"&gt;&lt;/p&gt;
&lt;h3 id="核心对象"&gt;核心对象&lt;/h3&gt;
&lt;p&gt;OpenSpec 其实有4个核心对象：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;specs&lt;/code&gt;&lt;/strong&gt;：当前系统行为的 source of truth&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;changes&lt;/code&gt;&lt;/strong&gt;：待合入的变更包&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;schema&lt;/code&gt;&lt;/strong&gt;：工作流定义，决定有哪些 artifact、它们如何依赖&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;archive&lt;/code&gt;&lt;/strong&gt;：变更完成后的历史沉淀&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;如果第一次使用，你可能会好奇schema是什么?&lt;/p&gt;
&lt;p&gt;&lt;img alt="img.png" loading="lazy" src="https://www.chunshuijiancha.top/posts/llm/xdd/openspec/part-2-architecture/arch_01.webp"&gt;&lt;/p&gt;
&lt;p&gt;在每次变更文件夹中，&lt;code&gt;.openspec.yaml&lt;/code&gt;文件中就有 &lt;code&gt;schema&lt;/code&gt;字段，默认值为&lt;code&gt;spec-driven&lt;/code&gt;。可以在源码中，看到&lt;code&gt;spec-driven&lt;/code&gt;定义了产出物（artifacts）的目录、文件名、文件格式、生成Prompt等，以及实施阶段（apply）读取的任务文件和Prompt。
这是OpenSpec预定义的schema，我们也可以自定义schema，对他进行扩展。&lt;/p&gt;
&lt;p&gt;&lt;img alt="img.png" loading="lazy" src="https://www.chunshuijiancha.top/posts/llm/xdd/openspec/part-2-architecture/arch_schema_01.webp"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="img.png" loading="lazy" src="https://www.chunshuijiancha.top/posts/llm/xdd/openspec/part-2-architecture/arch_schema_02.webp"&gt;&lt;/p&gt;
&lt;h3 id="工作流"&gt;工作流&lt;/h3&gt;
&lt;p&gt;如下是OpenSpec默认的工作流，通过schema定义中的&lt;code&gt;requires&lt;/code&gt;字段定义依赖关系。&lt;/p&gt;
&lt;div class="mermaid-container"&gt;
&lt;div class="mermaid"&gt;
flowchart LR
proposal --&amp;gt; specs
proposal --&amp;gt; design
specs --&amp;gt; tasks
design --&amp;gt; tasks
tasks --&amp;gt; apply
apply --&amp;gt; archive
&lt;/div&gt;
&lt;/div&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-yaml" data-lang="yaml"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;artifacts&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; - &lt;span style="color:#f92672"&gt;id&lt;/span&gt;: &lt;span style="color:#ae81ff"&gt;proposal&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;generates&lt;/span&gt;: &lt;span style="color:#ae81ff"&gt;proposal.md&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;requires&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 style="color:#f92672"&gt;id&lt;/span&gt;: &lt;span style="color:#ae81ff"&gt;specs&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;generates&lt;/span&gt;: &lt;span style="color:#ae81ff"&gt;specs/**/*.md&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;requires&lt;/span&gt;: [&lt;span style="color:#ae81ff"&gt;proposal]&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 style="color:#f92672"&gt;id&lt;/span&gt;: &lt;span style="color:#ae81ff"&gt;design&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;generates&lt;/span&gt;: &lt;span style="color:#ae81ff"&gt;design.md&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;requires&lt;/span&gt;: [&lt;span style="color:#ae81ff"&gt;proposal]&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 style="color:#f92672"&gt;id&lt;/span&gt;: &lt;span style="color:#ae81ff"&gt;tasks&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;generates&lt;/span&gt;: &lt;span style="color:#ae81ff"&gt;tasks.md&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;requires&lt;/span&gt;: [&lt;span style="color:#ae81ff"&gt;specs, design]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;apply&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;requires&lt;/span&gt;: [&lt;span style="color:#ae81ff"&gt;tasks]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ol&gt;
&lt;li&gt;这里的设计哲学：&lt;strong&gt;dependency is an enabler, not a gate&lt;/strong&gt;。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;也就是说，依赖表示“现在什么是可做的”，而不是“你必须严格按唯一顺序前进”。这和很多传统 spec 流程差异很大：后者把流程建模成 phase，前者把流程建模成 action + dependency。&lt;/p&gt;</description></item><item><title>从架构到业务：支撑 10w+ QPS 系统两年"零故障"稳定性建设复盘</title><link>https://www.chunshuijiancha.top/posts/llm/devops/relation-stability/</link><pubDate>Sun, 17 May 2026 17:00:00 +0800</pubDate><guid>https://www.chunshuijiancha.top/posts/llm/devops/relation-stability/</guid><description>作为一名架构师，我经常被问到一个问题：&amp;ldquo;你的系统是怎么做到连续两年没有出过 P0/P1 级故障的？&amp;quot;。我们确实做了很多事情，但是一直没有进行系统的梳理，想趁此机会把思考、尝试讲出来。</description></item><item><title>openspec增强</title><link>https://www.chunshuijiancha.top/posts/llm/xdd/openspec/part-3-enhancements/</link><pubDate>Thu, 16 Apr 2026 10:00:00 +0800</pubDate><guid>https://www.chunshuijiancha.top/posts/llm/xdd/openspec/part-3-enhancements/</guid><description>&lt;p&gt;ing&amp;hellip;&lt;/p&gt;</description></item></channel></rss>