<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
    <id>https://docs.yiw.me/zh-Hans/blog/</id>
    <title>Ai DIY Blog</title>
    <updated>2026-04-05T00:00:00.000Z</updated>
    <generator>https://github.com/jpmonette/feed</generator>
    <link rel="alternate" href="https://docs.yiw.me/zh-Hans/blog/"/>
    <subtitle>Ai DIY Blog</subtitle>
    <icon>https://docs.yiw.me/zh-Hans/img/favicon.svg</icon>
    <rights>Copyright © 2026 Yi Wang. Built with Docusaurus.</rights>
    <entry>
        <title type="html"><![CDATA[上下文工程：AI 的战略级内存 (RAM)]]></title>
        <id>https://docs.yiw.me/zh-Hans/blog/context-engineering-strategic-ram/</id>
        <link href="https://docs.yiw.me/zh-Hans/blog/context-engineering-strategic-ram/"/>
        <updated>2026-04-05T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[在生成式 AI 革命的早期，整个行业都沉迷于“参数量”。我们通过模型神经架构中数以十亿计甚至万亿计的权重来衡量进度。但到了 2026 年，共识已经发生了转变。站在 Gemini 3.0 和 Claude 4 的时代，我们意识到，如果没有高保真、低延迟的“工作记忆（Working Memory）”，原始的智能是毫无用处的。]]></summary>
        <content type="html"><![CDATA[<p>在生成式 AI 革命的早期，整个行业都沉迷于“参数量”。我们通过模型神经架构中数以十亿计甚至万亿计的权重来衡量进度。但到了 2026 年，共识已经发生了转变。站在 Gemini 3.0 和 Claude 4 的时代，我们意识到，如果没有高保真、低延迟的“工作记忆（Working Memory）”，原始的智能是毫无用处的。</p>
<p>欢迎来到**上下文工程（Context Engineering）**时代。如果说大语言模型（LLM）是 CPU，那么上下文就是 RAM。正如在传统计算中一样，我们管理这种“内存”的方式，定义了系统实际能够完成的任务上限。</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="引言作为智能瓶颈的上下文">引言：作为智能瓶颈的上下文<a href="https://docs.yiw.me/zh-Hans/blog/context-engineering-strategic-ram/#%E5%BC%95%E8%A8%80%E4%BD%9C%E4%B8%BA%EF%BF%BD%E6%99%BA%E8%83%BD%E7%93%B6%E9%A2%88%E7%9A%84%E4%B8%8A%E4%B8%8B%E6%96%87" class="hash-link" aria-label="引言：作为智能瓶颈的上下文的直接链接" title="引言：作为智能瓶颈的上下文的直接链接" translate="no">​</a></h2>
<p>多年来，我们一直把上下文窗口（Context Window）当成“杂物抽屉”。如果一个模型支持 128K token，我们就试图将 128K token 的原始文本塞进去，然后祈祷最好的结果。然而，结果往往差强人意：幻觉、忽略指令以及“记忆中断”。</p>
<p>2025 年的“苦涩教训（Bitter Lesson）”教会了我们：智能不仅是模型规模的函数，更是**信息密度（Information Density）**的函数。如果一个拥有 200 万 token 上下文的模型必须在 190 万 token 的噪声中进行筛选，它并不会变得更“聪明”。上下文工程是一门外科手术般精确地组装最佳提示词状态，以最大化模型推理能力的学科。它是从“检索增强生成（RAG）”向“上下文优化推理（Context-Optimized Reasoning）”的转型。在这个新范式中，我们优先考虑提示词的<em>信噪比（SNR）</em>，并认识到每一个无关的 token 都是对模型认知带宽的征税。</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="超越-rag长上下文语境学习icl的兴起">超越 RAG：长上下文语境学习（ICL）的兴起<a href="https://docs.yiw.me/zh-Hans/blog/context-engineering-strategic-ram/#%E8%B6%85%E8%B6%8A-rag%E9%95%BF%E4%B8%8A%E4%B8%8B%E6%96%87%E8%AF%AD%E5%A2%83%E5%AD%A6%E4%B9%A0icl%E7%9A%84%E5%85%B4%E8%B5%B7" class="hash-link" aria-label="超越 RAG：长上下文语境学习（ICL）的兴起的直接链接" title="超越 RAG：长上下文语境学习（ICL）的兴起的直接链接" translate="no">​</a></h2>
<p>在 2024 年，检索增强生成（RAG）曾是王者。我们将文档切成 500 token 的块，存储在向量数据库中，并检索最匹配的前 5 个块。这是源于当时较小的上下文窗口（8K 到 32K token）的权宜之计。</p>
<p>然而，由 Google 的 Gemini 1.5 Pro 开创，并在 Gemini 2.0 和 3.0 的 200 万+ token 窗口中日臻完善的**长上下文语境学习（Long-Context ICL）**的兴起，彻底改变了博弈规则。当你能将包含 50,000 个文件的整个代码库放入单个提示词时，传统的 RAG “切块（Chunking）”策略反而成了累赘。切块破坏了文件之间的结构化关系，丢失了代码库的“结缔组织”。</p>
<p><strong>2026 年的视角：<strong>我们不再只是“检索切块”，而是“策划环境（Curate Environments）”。长上下文模型允许进行 RAG 永远无法实现的全局推理。例如，模型现在可以识别出前端 React 组件与后端 Go 服务之间微妙的架构不一致，因为它同时“看到”了两者，而不是将它们视为孤立的碎片。这实现了我们所谓的</strong>“全栈调试（Holistic Debugging）”</strong>，即模型可以在单次推理过程中追踪整个技术栈的数据流。</p>
<!-- -->
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="中间位置丢失问题注意力衰减分析">“中间位置丢失”问题：注意力衰减分析<a href="https://docs.yiw.me/zh-Hans/blog/context-engineering-strategic-ram/#%E4%B8%AD%E9%97%B4%E4%BD%8D%E7%BD%AE%E4%B8%A2%E5%A4%B1%E9%97%AE%E9%A2%98%E6%B3%A8%E6%84%8F%E5%8A%9B%E8%A1%B0%E5%87%8F%E5%88%86%E6%9E%90" class="hash-link" aria-label="“中间位置丢失”问题：注意力衰减分析的直接链接" title="“中间位置丢失”问题：注意力衰减分析的直接链接" translate="no">​</a></h2>
<p>尽管 2026 年的模型拥有海量窗口，但 Transformer 架构的基本物理特性依然存在：<strong>注意力（Attention）是一种有限的资源。</strong></p>
<p>来自 Anthropic（Claude 4）和 Google（Gemini 3）的研究确认，模型依然表现出“U 形”性能曲线。放置在上下文最开始（系统提示词）和最末尾（用户查询）的信息能得到高精度处理。然而，埋藏在中间的信息往往会遭受**注意力衰减（Attention Decay）<strong>的影响，这就是著名的</strong>“中间位置丢失（Lost in the Middle）”**现象。</p>
<p>从分析角度看，这是由于注意力机制中的 Softmax 归一化导致的。在一个 100 万 token 的序列中，中间位置的一个相关 token 必须与另外 999,999 个 token 竞争注意力权重的份额。此外，存储注意力状态的**KV 缓存（KV Cache）**随着序列长度的增加而变得越来越“嘈杂”。长程依赖必须跨越数百层自注意力，如果没有显式的强化，信号往往会消散。</p>
<p><strong>工程解决方案：<strong>我们现在使用</strong>注意力感知排序（Attention-Aware Ranking）</strong>。我们不仅仅提供相关信息，还将最关键的“推理锚点（Reasoning Anchors）”——如核心 API 定义或关键约束——放置在上下文窗口的外围。通过将“沉重”的数据夹在开头和结尾的高重要性锚点之间，我们利用模型的架构偏置，确保注意力始终集中在最重要的位置。</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="上下文剪枝算法级-token-削减与噪声过滤">上下文剪枝：算法级 Token 削减与噪声过滤<a href="https://docs.yiw.me/zh-Hans/blog/context-engineering-strategic-ram/#%E4%B8%8A%E4%B8%8B%E6%96%87%E5%89%AA%E6%9E%9D%E7%AE%97%E6%B3%95%E7%BA%A7-token-%E5%89%8A%E5%87%8F%E4%B8%8E%E5%99%AA%E5%A3%B0%E8%BF%87%E6%BB%A4" class="hash-link" aria-label="上下文剪枝：算法级 Token 削减与噪声过滤的直接链接" title="上下文剪枝：算法级 Token 削减与噪声过滤的直接链接" translate="no">​</a></h2>
<p>如果说上下文是 RAM，那么**上下文剪枝（Context Pruning）**就是我们的垃圾回收器。在 2026 年，我们不再向模型发送原始文件。我们使用“剪枝代理（Pruner Agents）”——轻量级模型（如 Gemini Nano 或专门的基于 BERT 的评分器）——在昂贵的推理模型看到内容之前过滤噪声。</p>
<p>常见的剪枝技术包括：</p>
<ol>
<li class=""><strong>语义压缩（Semantic Compression）：</strong> 将冗长的日志、重复的模板代码或冗余的单元测试替换为高层级的语义描述。我们发现，将 100 行日志描述为“无错误的 Standard OAuth2 成功流程”可以节省 95% 的 token，同时保留 100% 的有用信号。</li>
<li class=""><strong>H2O (Heavy Hitter Oracle)：</strong> 该算法识别“重击者（Heavy Hitter）”token，即在多个层中始终获得高注意力分数的 token。通过仅保留这些“架构级”token 并修剪“填充物”，我们可以在最小化推理准确率损失的情况下将序列压缩 5 倍。</li>
<li class=""><strong>StreamingLLM 模式：</strong> 对于长对话，我们使用滚动 KV 缓存窗口，保留“锚点 token”（提示词的前几个 token）和最近的 N 个 token，确保模型永远不会丢失其基础指令或即时语境。</li>
<li class=""><strong>增量上下文（Delta-Contextualization）：</strong> 与其发送整个文件，我们只发送相对于已缓存版本的“差异（diffs）”。这类似于视频压缩（P 帧 vs. I 帧），极大地降低了输入 token 的成本。</li>
</ol>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="层级化摘要库与代码库的表达">层级化摘要：库与代码库的表达<a href="https://docs.yiw.me/zh-Hans/blog/context-engineering-strategic-ram/#%E5%B1%82%E7%BA%A7%E5%8C%96%E6%91%98%E8%A6%81%E5%BA%93%E4%B8%8E%E4%BB%A3%E7%A0%81%E5%BA%93%E7%9A%84%E8%A1%A8%E8%BE%BE" class="hash-link" aria-label="层级化摘要：库与代码库的表达的直接链接" title="层级化摘要：库与代码库的表达的直接链接" translate="no">​</a></h2>
<p>如何在不耗尽上下文预算的情况下表达一个 100 万行的代码库？答案是<strong>层级化摘要（Hierarchical Summarization）</strong>。</p>
<p>在 AiDIY 项目中，我们实现了一种“摘要树（Tree-of-Summaries）”方法，提供信息的“渐进式披露”：</p>
<ul>
<li class=""><strong>L0 (根节点)：</strong> 一个 100 token 的架构宣言，描述项目的技术栈和核心设计模式。</li>
<li class=""><strong>L1 (模块级)：</strong> 对每个主要模块的职责及其公共 API 表面的 500 token 摘要。</li>
<li class=""><strong>L2 (文件级)：</strong> 提取的“骨架”——函数签名、类定义和文档字符串，而不包含实现细节。</li>
<li class=""><strong>L3 (局部级)：</strong> 正在积极修改的特定文件或代码块的原始、高保真代码。</li>
</ul>
<p>这允许 Agent 通过 L0-L2 拥有“全局感知”，同时通过 L3 保持“局部精度”。这种层级结构模仿了人类工程师导航代码的方式——我们并不记忆每一行，而是根据心理地图进行导航。当 Agent 需要某个 L1 模块的更多细节时，它会“向下钻取（Drill Down）”，按需将 L2 骨架替换为 L3 代码。</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="状态管理agent-回合间的持久化上下文缓存">状态管理：Agent 回合间的持久化上下文缓存<a href="https://docs.yiw.me/zh-Hans/blog/context-engineering-strategic-ram/#%E7%8A%B6%E6%80%81%E7%AE%A1%E7%90%86agent-%E5%9B%9E%E5%90%88%E9%97%B4%E7%9A%84%E6%8C%81%E4%B9%85%E5%8C%96%E4%B8%8A%E4%B8%8B%E6%96%87%E7%BC%93%E5%AD%98" class="hash-link" aria-label="状态管理：Agent 回合间的持久化上下文缓存的直接链接" title="状态管理：Agent 回合间的持久化上下文缓存的直接链接" translate="no">​</a></h2>
<p>2026 年最显著的基础设施转变是<strong>提示词缓存（Prompt Caching）</strong>。Anthropic 在 2024 年的早期实验已演变为所有主要供应商的标准“KV 缓存即服务”。</p>
<p>在多 Agent 工作流中，“上下文移交（Context Handovers）”曾是延迟和成本的主要来源。Agent A 完成任务后，我们必须将整个 500K token 的历史记录重新发送给 Agent B。今天，我们使用<strong>持久化上下文句柄（Persistent Context Handles）</strong>。当 Agent A 完成一个回合时，其 KV 缓存状态会持久化在供应商的边缘节点。Agent B 随后只需引用 <code>context_handle_id</code> 即可恢复状态。</p>
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">回合 1: 用户 -&gt; [系统提示词 + 代码库 (已缓存/静态)] -&gt; Agent A</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">回合 2: Agent A -&gt; [结果 + 历史记录 (增量追加到缓存)] -&gt; Agent B</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">回合 3: Agent B -&gt; [优化后的解决方案] -&gt; 用户</span><br></span></code></pre></div></div>
<p>通过将上下文中的“沉重”部分（文档、代码库地图）保留在持久化缓存中，我们将“首个 Token 时间（TTFT）”从 10 秒降低到了 200 毫秒。“战略级 RAM”现在是持久化的，允许进行跨越数天工作的长程 Agent “会话”，而不会丢失其“思路”。</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="安全与隔离防止上下文投毒">安全与隔离：防止上下文投毒<a href="https://docs.yiw.me/zh-Hans/blog/context-engineering-strategic-ram/#%E5%AE%89%E5%85%A8%E4%B8%8E%E9%9A%94%E7%A6%BB%E9%98%B2%E6%AD%A2%E4%B8%8A%E4%B8%8B%E6%96%87%E6%8A%95%E6%AF%92" class="hash-link" aria-label="安全与隔离：防止上下文投毒的直接链接" title="安全与隔离：防止上下文投毒的直接链接" translate="no">​</a></h2>
<p>随着窗口的增大，出现了一种新的威胁：<strong>上下文投毒（Context Poisoning）</strong>。如果 Agent 在其长上下文窗口中检索到了恶意的第三方 README 或被投毒的 StackOverflow 片段，该片段可能包含“间接提示词注入（Indirect Prompt Injections）”。</p>
<p>在 2026 年，我们通过<strong>命名空间隔离和注意力掩码（Namespace Isolation and Attention Masking）<strong>来解决这个问题。上下文被划分为“可信”（内部代码、用户指令）和“不可信”（搜索结果、第三方文档）片段。我们使用专门的</strong>“护栏包装器（Guardrail Wrappers）”</strong>，用类 XML 标签包裹不可信文本。模型经过微调，可以识别这些标签为“被动数据”——模型可以阅读它们，但在架构上被阻止执行其中的任何祈使命令。这在上下文窗口内部创建了一个“数据沙箱”。</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="结论上下文管理中的苦涩教训">结论：上下文管理中的“苦涩教训”<a href="https://docs.yiw.me/zh-Hans/blog/context-engineering-strategic-ram/#%E7%BB%93%E8%AE%BA%E4%B8%8A%E4%B8%8B%E6%96%87%E7%AE%A1%E7%90%86%E4%B8%AD%E7%9A%84%E8%8B%A6%E6%B6%A9%E6%95%99%E8%AE%AD" class="hash-link" aria-label="结论：上下文管理中的“苦涩教训”的直接链接" title="结论：上下文管理中的“苦涩教训”的直接链接" translate="no">​</a></h2>
<p>Rich Sutton 的“苦涩教训”指出：“利用计算能力的通用方法是最有效的。”在 2026 年的背景下，更新后的教训是：<strong>利用精心策划、经过工程化设计的上下文的通用模型是最有效的。</strong></p>
<p>上下文工程不再是一个“锦上添花”的优化，它是现代 AI 技术栈的核心架构层。通过掌握长上下文 ICL、注意力感知排序和层级化摘要，我们将 LLM 从有天赋但健忘的“随机鹦鹉”转变为可靠的、专业级的工程合作伙伴。</p>
<p>展望 2027 年和 Gemini 4 的到来，前沿领域不再是我们可以<em>容纳</em>多少 token，而是我们可以在不丢失信号的情况下<em>忽略</em>多少 token。AI 的未来不仅在于构建更大的大脑，更在于构建更好、更高效的记忆。</p>
<hr>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="参考文献">参考文献<a href="https://docs.yiw.me/zh-Hans/blog/context-engineering-strategic-ram/#%E5%8F%82%E8%80%83%E6%96%87%E7%8C%AE" class="hash-link" aria-label="参考文献的直接链接" title="参考文献的直接链接" translate="no">​</a></h3>
<ol>
<li class=""><strong>Google DeepMind (2025).</strong> <em>Gemini 2.5: Scaling Law of Long-Context Reasoning</em>. <a href="https://deepmind.google/research/gemini-2-5" target="_blank" rel="noopener noreferrer" class="">https://deepmind.google/research/gemini-2-5</a></li>
<li class=""><strong>Anthropic Research (2026).</strong> <em>Claude 4: Attention Anchoring and the U-Curve Problem</em>. <a href="https://anthropic.com/research/claude-4-attention" target="_blank" rel="noopener noreferrer" class="">https://anthropic.com/research/claude-4-attention</a></li>
<li class=""><strong>LangChain AI (2026).</strong> <em>The State of Context: From RAG to Persistent KV-Caching</em>. <a href="https://blog.langchain.dev/state-of-context-2026" target="_blank" rel="noopener noreferrer" class="">https://blog.langchain.dev/state-of-context-2026</a></li>
<li class=""><strong>Sutton, R. (2019).</strong> <em>The Bitter Lesson</em>. <a href="http://www.incompleteideas.net/IncIdeas/BitterLesson.html" target="_blank" rel="noopener noreferrer" class="">http://www.incompleteideas.net/IncIdeas/BitterLesson.html</a></li>
<li class=""><strong>Zhang et al. (2024).</strong> <em>H2O: Heavy Hitter Oracle for Efficient Generative Inference</em>. <a href="https://arxiv.org/abs/2306.14048" target="_blank" rel="noopener noreferrer" class="">https://arxiv.org/abs/2306.14048</a></li>
</ol>]]></content>
        <author>
            <name>Yi Wang</name>
            <uri>https://github.com/YiWang24</uri>
        </author>
        <category label="ai" term="ai"/>
        <category label="上下文工程" term="上下文工程"/>
        <category label="llm" term="llm"/>
        <category label="rag" term="rag"/>
        <category label="gemini" term="gemini"/>
        <category label="claude" term="claude"/>
        <category label="2026" term="2026"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[Harness 工程：编排与安全层]]></title>
        <id>https://docs.yiw.me/zh-Hans/blog/harness-engineering-orchestration-safety/</id>
        <link href="https://docs.yiw.me/zh-Hans/blog/harness-engineering-orchestration-safety/"/>
        <updated>2026-04-05T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[在生成式人工智能爆炸式增长的早期阶段，整个行业都痴迷于“大脑”——即大语言模型（LLM）本身。当时，我们衡量成功的标准是参数量、上下文窗口大小，以及 MMLU 或 HumanEval 等基准测试分数。然而，随着我们跨入 2026 年，叙事发生了根本性的转变。我们意识到了一个冷酷的事实：模型本身并不是产品。]]></summary>
        <content type="html"><![CDATA[<p>在生成式人工智能爆炸式增长的早期阶段，整个行业都痴迷于“大脑”——即大语言模型（LLM）本身。当时，我们衡量成功的标准是参数量、上下文窗口大小，以及 MMLU 或 HumanEval 等基准测试分数。然而，随着我们跨入 2026 年，叙事发生了根本性的转变。我们意识到了一个冷酷的事实：<strong>模型本身并不是产品。</strong></p>
<p>一个原始模型，无论它多么智能，就像一个没有底盘、方向盘或刹车的强大引擎。在生产环境中，单靠引擎非但不能解决问题，反而是一种风险。所谓的“产品”，是确保引擎安全地将车辆带到目的地的整个系统。正是这种认识催生了 <strong>Harness 工程</strong>（Harness Engineering）这一学科——它是将概率模型转化为确定性智能体系统（Agentic System）的编排、安全和可观测性层。</p>
<p>在本文中，我们将深入探讨为什么 Harness（治理框架/工程支撑层）已成为智能体时代的“操作系统”，以及它如何定义“炫酷演示”与“可靠生产系统”之间的界限。</p>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="harness-的解剖学控制循环与状态机">Harness 的解剖学：控制循环与状态机<a href="https://docs.yiw.me/zh-Hans/blog/harness-engineering-orchestration-safety/#harness-%E7%9A%84%E8%A7%A3%E5%89%96%E5%AD%A6%E6%8E%A7%E5%88%B6%E5%BE%AA%E7%8E%AF%E4%B8%8E%E7%8A%B6%E6%80%81%E6%9C%BA" class="hash-link" aria-label="Harness 的解剖学：控制循环与状态机的直接链接" title="Harness 的解剖学：控制循环与状态机的直接链接" translate="no">​</a></h2>
<p>从核心来看，Harness 是一个复杂的控制系统。虽然简单的 LLM 调用是无状态且线性的（输入 → 输出），但智能体 Harness 是有状态且循环的。它在系统层面实现了我们所说的 <strong>OODA 循环</strong>（观察 Observe、定位 Orient、决策 Decide、行动 Act）。</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="控制循环">控制循环<a href="https://docs.yiw.me/zh-Hans/blog/harness-engineering-orchestration-safety/#%E6%8E%A7%E5%88%B6%E5%BE%AA%E7%8E%AF" class="hash-link" aria-label="控制循环的直接链接" title="控制循环的直接链接" translate="no">​</a></h3>
<p>在一个现代 Harness 中，“决策”（模型的输出）仅仅是一个步骤。Harness 会用校验和反馈循环来包裹这个决策。</p>
<ol>
<li class=""><strong>校验（Validation）</strong>：在执行工具之前，Harness 会验证模型的意图。该工具是否存在？参数是否在预期范围内？</li>
<li class=""><strong>状态管理（State Management）</strong>：利用像 <strong>LangGraph</strong> 这样的框架，Harness 维护着一个健壮的状态机。它跟踪“意图历史”与“行动历史”。如果智能体决定搜索数据库但数据库返回错误，Harness 会更新状态，以便智能体“知道”失败了，并可以尝试不同的路径。</li>
</ol>
<!-- -->
<p>如果没有这种结构，智能体就会遭受“上下文漂移”（Context Drift）的困扰，即推理循环在工具错误和幻觉中丢失了原始目标的踪迹。</p>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="自愈系统基于追踪的恢复时代">自愈系统：基于追踪的恢复时代<a href="https://docs.yiw.me/zh-Hans/blog/harness-engineering-orchestration-safety/#%E8%87%AA%E6%84%88%E7%B3%BB%E7%BB%9F%E5%9F%BA%E4%BA%8E%E8%BF%BD%E8%B8%AA%E7%9A%84%E6%81%A2%E5%A4%8D%E6%97%B6%E4%BB%A3" class="hash-link" aria-label="自愈系统：基于追踪的恢复时代的直接链接" title="自愈系统：基于追踪的恢复时代的直接链接" translate="no">​</a></h2>
<p>在 2026 年，我们不再接受“内部服务器错误”作为智能体的最终状态。现代 Harness 是**自愈（Self-Healing）<strong>的。这是通过从简单的日志记录转向</strong>细粒度追踪（Granular Tracing）**实现的。</p>
<p>当工具执行失败时——无论是超时、格式错误、JSON 异常还是权限错误——Harness 都会捕获整个执行追踪（Trace）。使用像 <strong>AgentOps</strong> 这样的工具，这些追踪会立即由轻量级的“纠错模型”或基于启发式的修复智能体进行分析。</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="示例畸形查询修复">示例：畸形查询修复<a href="https://docs.yiw.me/zh-Hans/blog/harness-engineering-orchestration-safety/#%E7%A4%BA%E4%BE%8B%E7%95%B8%E5%BD%A2%E6%9F%A5%E8%AF%A2%E4%BF%AE%E5%A4%8D" class="hash-link" aria-label="示例：畸形查询修复的直接链接" title="示例：畸形查询修复的直接链接" translate="no">​</a></h3>
<p>假设一个智能体生成的 SQL 查询由于语法错误而失败。</p>
<ul>
<li class=""><strong>传统方法</strong>：系统记录错误并向用户返回失败消息。</li>
<li class=""><strong>Harness 方法</strong>：Harness 捕获 <code>SQLException</code>，将失败的查询、错误消息和架构上下文包装到一个新的提示词中。它要求模型“修复语法错误并重试”。这一过程对用户是透明的，最终实现了 raw 模型原本会陷入停滞的成功结果。</li>
</ul>
<p>这种“自愈”能力有效地将智能体工作流的可靠性提高了一个数量级，将成功率仅为 70% 的模型转变为成功率达到 99% 的产品。</p>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="可观测性为智能体推理实现细粒度追踪">可观测性：为智能体推理实现细粒度追踪<a href="https://docs.yiw.me/zh-Hans/blog/harness-engineering-orchestration-safety/#%E5%8F%AF%E8%A7%82%E6%B5%8B%E6%80%A7%E4%B8%BA%E6%99%BA%E8%83%BD%E4%BD%93%E6%8E%A8%E7%90%86%E5%AE%9E%E7%8E%B0%E7%BB%86%E7%B2%92%E5%BA%A6%E8%BF%BD%E8%B8%AA" class="hash-link" aria-label="可观测性：为智能体推理实现细粒度追踪的直接链接" title="可观测性：为智能体推理实现细粒度追踪的直接链接" translate="no">​</a></h2>
<p>智能体时代的可观测性不仅仅关乎 CPU 使用率或延迟；它关乎<strong>推理追踪（Reasoning Traces）</strong>。我们需要看到智能体<em>为什么</em>做出决策，而不仅仅是它做了<em>什么</em>。</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="思考与行动的分离">“思考”与“行动”的分离<a href="https://docs.yiw.me/zh-Hans/blog/harness-engineering-orchestration-safety/#%E6%80%9D%E8%80%83%E4%B8%8E%E8%A1%8C%E5%8A%A8%E7%9A%84%E5%88%86%E7%A6%BB" class="hash-link" aria-label="“思考”与“行动”的分离的直接链接" title="“思考”与“行动”的分离的直接链接" translate="no">​</a></h3>
<p>生产级 Harness 将“思维链”（CoT）与“工具调用”分离。这允许开发人员监控智能体的内部逻辑。通过实施细粒度追踪，我们可以识别失败模式：</p>
<ul>
<li class=""><strong>逻辑死循环（Logical Loops）</strong>：智能体不断尝试同一个失败的工具。</li>
<li class=""><strong>推理幻觉（Reasoning Hallucinations）</strong>：智能体的内部独白声称它做了一些实际上并没有做的事情。</li>
</ul>
<p>通过将这些追踪暴露给可观测性平台，团队可以不仅为“错误”设置警报，还为“逻辑偏离”设置警报。例如，如果智能体在某项任务上花费了超过 5 个推理周期且没有取得任何进展，则可能会触发警报。</p>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="持久性测试从基准测试转向黄金数据集评估">持久性测试：从基准测试转向“黄金数据集”评估<a href="https://docs.yiw.me/zh-Hans/blog/harness-engineering-orchestration-safety/#%E6%8C%81%E4%B9%85%E6%80%A7%E6%B5%8B%E8%AF%95%EF%BF%BD%EF%BF%BD%E4%BB%8E%E5%9F%BA%E5%87%86%E6%B5%8B%E8%AF%95%E8%BD%AC%E5%90%91%E9%BB%84%E9%87%91%E6%95%B0%E6%8D%AE%E9%9B%86%E8%AF%84%E4%BC%B0" class="hash-link" aria-label="持久性测试：从基准测试转向“黄金数据集”评估的直接链接" title="持久性测试：从基准测试转向“黄金数据集”评估的直接链接" translate="no">​</a></h2>
<p>随着智能体变得越来越复杂，传统的单元测试变得力不从心。你无法对一个概率系统进行单元测试。相反，我们已经转向使用**“黄金数据集”（Golden Sets）<strong>进行</strong>持久性测试（Durability Testing）**。</p>
<p>黄金数据集是 100 多个复杂、多步任务的精心集合，且具有已知的“良好”结果。持久性测试涉及针对该数据集重复运行智能体。</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="指标的演进">指标的演进<a href="https://docs.yiw.me/zh-Hans/blog/harness-engineering-orchestration-safety/#%E6%8C%87%E6%A0%87%E7%9A%84%E6%BC%94%E8%BF%9B" class="hash-link" aria-label="指标的演进的直接链接" title="指标的演进的直接链接" translate="no">​</a></h3>
<p>我们不再关心底层模型的“MMLU 分数”。相反，我们衡量：</p>
<ul>
<li class=""><strong>任务成功率（TSR）</strong>：复杂任务成功完成的百分比是多少？</li>
<li class=""><strong>工具效率（Tool Efficiency）</strong>：每个任务需要多少次工具调用？（通常越少越好）。</li>
<li class=""><strong>韧性评分（Resilience Score）</strong>：Harness 成功“自愈”了多少次失败？</li>
</ul>
<p>通过使用<strong>以大模型为评判者（LLM-as-a-Judge）</strong>（通常是像 GPT-5 或 Claude 4 这样更强大的模型）来评估智能体工作的产出，我们为智能体行为创建了一个持续集成（CI）流水线。</p>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="安全与沙箱受控的智能体">安全与沙箱：受控的智能体<a href="https://docs.yiw.me/zh-Hans/blog/harness-engineering-orchestration-safety/#%E5%AE%89%E5%85%A8%E4%B8%8E%E6%B2%99%E7%AE%B1%E5%8F%97%E6%8E%A7%E7%9A%84%E6%99%BA%E8%83%BD%E4%BD%93" class="hash-link" aria-label="安全与沙箱：受控的智能体的直接链接" title="安全与沙箱：受控的智能体的直接链接" translate="no">​</a></h2>
<p>安全是智能体落地的最大障碍。如果智能体拥有删除文件或转移资金的“能力”，它必须受到严格安全层的约束。</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="安全工具执行">安全工具执行<a href="https://docs.yiw.me/zh-Hans/blog/harness-engineering-orchestration-safety/#%E5%AE%89%E5%85%A8%E5%B7%A5%E5%85%B7%E6%89%A7%E8%A1%8C" class="hash-link" aria-label="安全工具执行的直接链接" title="安全工具执行的直接链接" translate="no">​</a></h3>
<p>在工程良好的 Harness 中，工具不会与应用程序运行在同一个环境中。它们是**沙箱化（Sandboxed）**的。</p>
<ul>
<li class=""><strong>容器化执行</strong>：每个文件系统或代码执行工具都在一次性的 Docker 容器中运行。</li>
<li class=""><strong>权限范围（Permission Scoping）</strong>：我们对智能体应用“最小权限原则”。智能体不会获得“全局管理员”令牌；它只获得专门针对当前任务的 OAuth 范围。</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="输入输出护栏">输入/输出护栏<a href="https://docs.yiw.me/zh-Hans/blog/harness-engineering-orchestration-safety/#%E8%BE%93%E5%85%A5%E8%BE%93%E5%87%BA%E6%8A%A4%E6%A0%8F" class="hash-link" aria-label="输入/输出护栏的直接链接" title="输入/输出护栏的直接链接" translate="no">​</a></h3>
<p>Harness 充当双向防火墙。它检查用户输入以防范**提示词注入（Prompt Injection）<strong>攻击，并检查模型输出以防范</strong>数据泄露（Data Leakage）**或有毒内容。如果模型意外在响应中包含密钥，Harness 会在响应到达 UI 之前对其进行脱敏处理。</p>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="为删除而构建哲学模块化-harness-设计">“为删除而构建”哲学：模块化 Harness 设计<a href="https://docs.yiw.me/zh-Hans/blog/harness-engineering-orchestration-safety/#%E4%B8%BA%E5%88%A0%E9%99%A4%E8%80%8C%E6%9E%84%E5%BB%BA%E5%93%B2%E5%AD%A6%E6%A8%A1%E5%9D%97%E5%8C%96-harness-%E8%AE%BE%E8%AE%A1" class="hash-link" aria-label="“为删除而构建”哲学：模块化 Harness 设计的直接链接" title="“为删除而构建”哲学：模块化 Harness 设计的直接链接" translate="no">​</a></h2>
<p>人工智能领域的发展速度极快。今天“最尖端”的模型在六个月后可能就会过时。这引出了我们的**“为删除而构建”（Build to Delete）**哲学。</p>
<p>生产级 Harness 必须是**模型无关（Model-Agnostic）**的。处理数据库错误的逻辑或校验送货地址的逻辑不应硬编码在模型的提示词中。相反，它应该是 <strong>模块化 Harness 架构</strong> 的一部分。</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="推理与执行的解耦">推理与执行的解耦<a href="https://docs.yiw.me/zh-Hans/blog/harness-engineering-orchestration-safety/#%E6%8E%A8%E7%90%86%E4%B8%8E%E6%89%A7%E8%A1%8C%E7%9A%84%E8%A7%A3%E8%80%A6" class="hash-link" aria-label="推理与执行的解耦的直接链接" title="推理与执行的解耦的直接链接" translate="no">​</a></h3>
<p>通过将推理引擎（模型）与执行环境（Harness）解耦，我们可以在几分钟内更换模型。当 OpenAI 发布更快的模型或 Anthropic 发布更易于调教的模型时，我们只需更新 Harness 中的“推理提供商”。安全护栏、状态机和自愈逻辑保持不变。这种模块化正是让 AI 应用“面向未来”的关键。</p>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="结论harness-是智能体的操作系统">结论：Harness 是智能体的操作系统<a href="https://docs.yiw.me/zh-Hans/blog/harness-engineering-orchestration-safety/#%E7%BB%93%E8%AE%BAharness-%E6%98%AF%E6%99%BA%E8%83%BD%E4%BD%93%E7%9A%84%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F" class="hash-link" aria-label="结论：Harness 是智能体的操作系统的直接链接" title="结论：Harness 是智能体的操作系统的直接链接" translate="no">​</a></h2>
<p>在 2026 年，我们不把 Harness 看作一个“包装器（Wrapper）”，而是将其视为<strong>智能体的操作系统</strong>。它提供了基础服务——内存、文件系统访问、安全和进程管理——使得“应用程序”（智能体的推理）能够可靠地运行。</p>
<p>展望未来，人工智能领域的竞争优势将不再属于那些拥有最大模型的人，而属于那些拥有最强大 Harness 的人。这是智能与工程交汇之处，也是概率与可靠性碰撞之处，更是“模型”最终蜕变为“产品”的归宿。</p>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="参考文献">参考文献<a href="https://docs.yiw.me/zh-Hans/blog/harness-engineering-orchestration-safety/#%E5%8F%82%E8%80%83%E6%96%87%E7%8C%AE" class="hash-link" aria-label="参考文献的直接链接" title="参考文献的直接链接" translate="no">​</a></h2>
<ol>
<li class=""><strong>LangChain (LangGraph)</strong>: <em>有状态多智能体编排</em>. <a href="https://blog.langchain.dev/langgraph" target="_blank" rel="noopener noreferrer" class="">https://blog.langchain.dev/langgraph</a></li>
<li class=""><strong>AgentOps</strong>: <em>自主智能体的可观测性与追踪</em>. <a href="https://www.agentops.ai/docs" target="_blank" rel="noopener noreferrer" class="">https://www.agentops.ai/docs</a></li>
<li class=""><strong>OpenAI</strong>: <em>智能体时代：使用 GPT-4o 构建可靠系统</em>. <a href="https://openai.com/index/gpt-4o-and-more-capable-models" target="_blank" rel="noopener noreferrer" class="">https://openai.com/index/gpt-4o-and-more-capable-models</a></li>
<li class=""><strong>Anthropic</strong>: <em>宪法 AI 与安全分层</em>. <a href="https://www.anthropic.com/news/constitutional-ai-harmlessness-from-ai-feedback" target="_blank" rel="noopener noreferrer" class="">https://www.anthropic.com/news/constitutional-ai-harmlessness-from-ai-feedback</a></li>
<li class=""><strong>AiDIY 文档</strong>: <em>Harness 工程基础</em>. <a class="" href="https://docs.yiw.me/zh-Hans/docs/ai/harness-engineering/">/docs/ai/harness-engineering/</a></li>
</ol>]]></content>
        <author>
            <name>Yi Wang</name>
            <uri>https://github.com/YiWang24</uri>
        </author>
        <category label="harness-engineering" term="harness-engineering"/>
        <category label="ai-agents" term="ai-agents"/>
        <category label="orchestration" term="orchestration"/>
        <category label="safety" term="safety"/>
        <category label="2026-perspective" term="2026-perspective"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[提示词工程：从经验法则到系统契约]]></title>
        <id>https://docs.yiw.me/zh-Hans/blog/prompt-engineering-system-contracts/</id>
        <link href="https://docs.yiw.me/zh-Hans/blog/prompt-engineering-system-contracts/"/>
        <updated>2026-04-05T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[在大语言模型（LLM）的早期，提示词工程（Prompt Engineering）经常被轻蔑地比作“炼金术”或“咒语”。开发人员花费无数小时测试“请”是否能提高模型的准确性，或者威胁模型要扣除“虚拟罚款”是否能生成更好的代码。那是属于启发式方法（Heuristics）的年代——那些模糊的、通过不断试错得出的模式，依赖于早期 Transformer 架构的特有行为。]]></summary>
        <content type="html"><![CDATA[<p>在大语言模型（LLM）的早期，提示词工程（Prompt Engineering）经常被轻蔑地比作“炼金术”或“咒语”。开发人员花费无数小时测试“请”是否能提高模型的准确性，或者威胁模型要扣除“虚拟罚款”是否能生成更好的代码。那是属于**启发式方法（Heuristics）**的年代——那些模糊的、通过不断试错得出的模式，依赖于早期 Transformer 架构的特有行为。</p>
<p>随着我们步入 2026 年，那个时代已经彻底结束。“魔法咒语”已经消亡，取而代之的是<strong>系统契约（System Contract）</strong>。提示词工程已经成熟为软件工程的一个严谨分支。在这里，自然语言被视为一种高级编排层，受到结构完整性、模式强制（Schema Enforcement）和严格性能优化的约束。本文将探讨这一转变，以及定义生产级 AI 系统的全新模式。</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="魔法咒语的消亡">“魔法咒语”的消亡<a href="https://docs.yiw.me/zh-Hans/blog/prompt-engineering-system-contracts/#%E9%AD%94%E6%B3%95%E5%92%92%E8%AF%AD%E7%9A%84%E6%B6%88%E4%BA%A1" class="hash-link" aria-label="“魔法咒语”的消亡的直接链接" title="“魔法咒语”的消亡的直接链接" translate="no">​</a></h3>
<p>从启发式方法到系统契约的转变，源于一个根本性的认识：LLM 不是通过说服来响应的“魔盒”，而是基于上下文运作的<strong>概率推理引擎</strong>。当我们告诉模型“一步步思考”时，我们并不是在“激励”它，而是在触发一条特定的推理路径，为推理过程分配更多的计算资源（Token）。</p>
<p>在 2026 年，我们不再依赖这些脆弱的助推。现代框架将提示词视为一种<strong>规范（Specification）</strong>。正如 OpenAPI 规范定义了两个微服务之间的契约，系统契约定义了 LLM 交互的预期行为、约束条件和数据格式。如果模型失败了，我们不会去文本中寻找更好的“感觉（Vibe）”，而是寻找契约逻辑的漏洞或支撑数据的匮乏。这一转变标志着“提示词的专业化”：目标不再是诱导模型给出响应，而是从非确定性引擎中工程化出确定性的结果。</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="推理模型的转向边界比指令更重要">推理模型的转向：边界比指令更重要<a href="https://docs.yiw.me/zh-Hans/blog/prompt-engineering-system-contracts/#%E6%8E%A8%E7%90%86%E6%A8%A1%E5%9E%8B%E7%9A%84%E8%BD%AC%E5%90%91%E8%BE%B9%E7%95%8C%E6%AF%94%E6%8C%87%E4%BB%A4%E6%9B%B4%E9%87%8D%E8%A6%81" class="hash-link" aria-label="推理模型的转向：边界比指令更重要的直接链接" title="推理模型的转向：边界比指令更重要的直接链接" translate="no">​</a></h3>
<p>“推理模型”（如 OpenAI 的 o1/o3 以及随后的 GPT-5 一代）的到来，从根本上改变了提示词工程的版图。早期的模型需要关于“如何思考”的显式引导。然而，重推理的模型自带了内置的、内化的**思维链（Chain of Thought, CoT）**机制。</p>
<p>在与 GPT-5 或 o3 协作时，添加“让我们一步步思考”往往是多余的，甚至可能适得其反。正如 Google AI 在其 2025 年的《Gemini 3.0 架构报告》中指出的，在具有原生推理时间扩展（Inference-time Scaling）的模型中过度指定推理路径会导致“指令干扰”：模型优化的内部逻辑会与用户的脚本指令发生冲突。</p>
<p>在这种新范式下，<strong>指令的重要性在下降，而边界的重要性在上升。<strong>我们不再告诉模型<em>如何</em>解决问题，而是定义其</strong>解空间（Solution Space）</strong>。这包括：</p>
<ul>
<li class=""><strong>负向约束（Negative Constraints）</strong>：清晰地定义模型<em>绝不能</em>做什么。这能防止模型滑向其内部推理可能会探索的、不理想的逻辑路径。</li>
<li class=""><strong>成功准则（Success Criteria）</strong>：定义成功输出的可量化指标或状态。通过定义“终点线”，我们允许模型在其内部推理循环中进行回溯和自我修正。</li>
<li class=""><strong>上下文隔离（Context Isolation）</strong>：确保模型仅使用提供的数据，而不漂移到通用知识（即幻觉）中。</li>
</ul>
<p>通过专注于边界，我们允许模型的内部推理在既定的安全护栏内，寻找通往解决方案的最有效路径。我们将 LLM 视为一个能力极强但极度刻板的代理（Agent），它需要严谨的工作范围。</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="结构化模式xml-标签化与角色扮演-20">结构化模式：XML 标签化与角色扮演 2.0<a href="https://docs.yiw.me/zh-Hans/blog/prompt-engineering-system-contracts/#%E7%BB%93%E6%9E%84%E5%8C%96%E6%A8%A1%E5%BC%8Fxml-%E6%A0%87%E7%AD%BE%E5%8C%96%E4%B8%8E%E8%A7%92%E8%89%B2%E6%89%AE%E6%BC%94-20" class="hash-link" aria-label="结构化模式：XML 标签化与角色扮演 2.0的直接链接" title="结构化模式：XML 标签化与角色扮演 2.0的直接链接" translate="no">​</a></h3>
<p>结构完整性是系统契约的支柱。依赖“自然语言流”是产生解析错误和幻觉的温床。</p>
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="xml-标签化anthropic-的深远影响">XML 标签化：Anthropic 的深远影响<a href="https://docs.yiw.me/zh-Hans/blog/prompt-engineering-system-contracts/#xml-%E6%A0%87%E7%AD%BE%E5%8C%96anthropic-%E7%9A%84%E6%B7%B1%E8%BF%9C%E5%BD%B1%E5%93%8D" class="hash-link" aria-label="XML 标签化：Anthropic 的深远影响的直接链接" title="XML 标签化：Anthropic 的深远影响的直接链接" translate="no">​</a></h4>
<p>提示词设计中最显著的变化之一是 XML 标签的普及。虽然最初是由 Anthropic 推广的，但这种模式现在已成为跨模型的标准。诸如 <code>&lt;context&gt;</code>、<code>&lt;instructions&gt;</code>、<code>&lt;example&gt;</code> 和 <code>&lt;output_schema&gt;</code> 之类的 XML 标签提供了清晰的语义边界，模型的注意力机制可以轻松锁定这些边界。</p>
<div class="language-xml codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-xml codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">task_specification</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">context</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    你正在分析一个旧有的 COBOL 代码库，以查找潜在的内存泄漏。</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    该系统运行在基于 CICS 的 IBM z/OS 环境中。</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">context</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">constraints</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    - 仅报告与 CICS 事务处理相关的泄漏。</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    - 忽略批处理模块中的泄漏。</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    - 输出必须是符合所提供模式的有效 JSON。</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">constraints</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">input_code</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    {{CODE_SNIPPET}}</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">input_code</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">task_specification</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><br></span></code></pre></div></div>
<p>XML 优于 Markdown 标题，因为它是无歧义的。当“关于代码的指令”和“包含指令的代码”被包裹在不同的标签中时，模型可以轻易区分它们。它还支持嵌套结构，这对于复杂的、多阶段的 Agent 工作流至关重要。</p>
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="角色扮演-20系统能力配置集">角色扮演 2.0：系统能力配置集<a href="https://docs.yiw.me/zh-Hans/blog/prompt-engineering-system-contracts/#%E8%A7%92%E8%89%B2%E6%89%AE%E6%BC%94-20%E7%B3%BB%E7%BB%9F%E8%83%BD%E5%8A%9B%E9%85%8D%E7%BD%AE%E9%9B%86" class="hash-link" aria-label="角色扮演 2.0：系统能力配置集的直接链接" title="角色扮演 2.0：系统能力配置集的直接链接" translate="no">​</a></h4>
<p>陈旧的“扮演一名高级开发人员”已经演变为<strong>系统能力配置集（System Capability Profiles）</strong>。我们不再定义模糊的人格，而是定义一套可用的“思维工具”和知识领域。我们告诉模型：“你可以访问以下领域知识：[Rust 所有权检查器, Actix-Web 模式]。你被限制在以下编码风格：[禁止使用 Unsafe, 函数式优先]。”</p>
<p>这是一份能力的契约，而不是一场戏剧表演。通过显式定义模型的“心理状态”和“工具箱”，我们降低了其响应的方差。本质上，我们是在通过上下文“配置”模型的权重，将其引导至与任务最相关的高维子空间。</p>
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="强制输出模式最后的环节">强制输出模式：最后的环节<a href="https://docs.yiw.me/zh-Hans/blog/prompt-engineering-system-contracts/#%E5%BC%BA%E5%88%B6%E8%BE%93%E5%87%BA%E6%A8%A1%E5%BC%8F%E6%9C%80%E5%90%8E%E7%9A%84%E7%8E%AF%EF%BF%BD%EF%BF%BD%E8%8A%82" class="hash-link" aria-label="强制输出模式：最后的环节的直接链接" title="强制输出模式：最后的环节的直接链接" translate="no">​</a></h4>
<p>在 2026 年，“纯文本”被视为一种过时的输出格式。现代系统使用**结构化输出（Structured Outputs）<strong>或</strong>受限解码（Constrained Decoding）**来确保模型的输出符合严格的 JSON Schema 或 Pydantic 模型。这使 LLM 从“散文生成器”转变为“数据生成器”。</p>
<p>当输出被保证是匹配特定模式的有效 JSON 对象时，LLM 可以直接集成到类型安全的代码库中，无需脆弱的正则解析或“遇错重试”循环。模式（Schema）本身成为系统契约的一部分，精确定义了模型必须提供什么信息以及以何种格式提供。</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="性能优化提示词缓存与前缀模式">性能优化：提示词缓存与前缀模式<a href="https://docs.yiw.me/zh-Hans/blog/prompt-engineering-system-contracts/#%E6%80%A7%E8%83%BD%E4%BC%98%E5%8C%96%E6%8F%90%E7%A4%BA%E8%AF%8D%E7%BC%93%E5%AD%98%E4%B8%8E%E5%89%8D%E7%BC%80%E6%A8%A1%E5%BC%8F" class="hash-link" aria-label="性能优化：提示词缓存与前缀模式的直接链接" title="性能优化：提示词缓存与前缀模式的直接链接" translate="no">​</a></h3>
<p>随着 LLM 集成到实时生产系统中，延迟成为了首要敌人。业界的回答是<strong>提示词缓存（Prompt Caching）</strong>。</p>
<p>提示词缓存允许 LLM 供应商存储提示词初始部分的“编译状态”。如果提示词的前缀（例如，你那 10,000 Token 的系统指令和文档语料库）在不同调用之间保持一致，模型可以“跳过”该部分的计算，从而极大地缩短**首字延迟（Time-To-First-Token, TTFT）**并降低成本。</p>
<p>这催生了<strong>前缀模式（Prefixing Pattern）</strong>：</p>
<ol>
<li class=""><strong>静态层</strong>：海量的系统指令、工具定义和少样本（Few-shot）示例。这一层应该置于提示词的最前端，且永不改变。</li>
<li class=""><strong>半动态层</strong>：用户画像、长期记忆或会话历史。这一层变化缓慢，可以在会话级别进行缓存。</li>
<li class=""><strong>动态层</strong>：特定的用户查询和即时任务上下文。这是每次请求中唯一改变的部分。</li>
</ol>
<p>提示词工程现在涉及精细地排列这些层，以最大化“缓存命中”。如果你在提示词的最开始放了一个动态日期或用户名，你就破坏了其后所有内容的缓存，实际上会导致延迟翻倍并显著增加账单。</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="智力的规模化多样本-icl-与微调">智力的规模化：多样本 ICL 与微调<a href="https://docs.yiw.me/zh-Hans/blog/prompt-engineering-system-contracts/#%E6%99%BA%E5%8A%9B%E7%9A%84%E8%A7%84%E6%A8%A1%E5%8C%96%E5%A4%9A%E6%A0%B7%E6%9C%AC-icl-%E4%B8%8E%E5%BE%AE%E8%B0%83" class="hash-link" aria-label="智力的规模化：多样本 ICL 与微调的直接链接" title="智力的规模化：多样本 ICL 与微调的直接链接" translate="no">​</a></h3>
<p>AI 工程中一个反复出现的辩论是：何时微调模型，何时使用<strong>上下文学习（In-Context Learning, ICL）</strong>。在 2026 年的格局中，**多样本 ICL（Many-shot ICL）**已成为大多数企业任务的主导策略。</p>
<p>随着上下文窗口达到数百万 Token（如 Gemini 2.0/3.0, Claude 5），我们可以将数百甚至数千个示例直接注入提示词。OpenAI 在 2025 年关于“多样本上下文学习”的研究表明，提供 500-1000 个高质量示例的模型在相同任务上的表现往往优于微调模型，且具有“即时更新”的额外优势。</p>
<p>如果业务逻辑发生了变化——比如你的金融代理有了新的监管要求——你只需更新提示词中的示例即可。相比之下，微调会创建一个“冻结”的伪像，需要完整的重新训练周期和评估流程才能更新。ICL 是 LLM 世界的“内存（RAM）”——快速、灵活、易失；而微调则是“硬盘”。在 2026 年，对于任何需要敏捷性的任务，我们优先考虑<strong>上下文智能（Contextual Intelligence, ICL）<strong>而非</strong>参数化智能（Parametric Intelligence, Fine-tuning）</strong>。</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="实战模式构建生产级编程代理提示词">实战模式：构建生产级编程代理提示词<a href="https://docs.yiw.me/zh-Hans/blog/prompt-engineering-system-contracts/#%E5%AE%9E%E6%88%98%E6%A8%A1%E5%BC%8F%E6%9E%84%E5%BB%BA%E7%94%9F%E4%BA%A7%E7%BA%A7%E7%BC%96%E7%A8%8B%E4%BB%A3%E7%90%86%E6%8F%90%E7%A4%BA%E8%AF%8D" class="hash-link" aria-label="实战模式：构建生产级编程代理提示词的直接链接" title="实战模式：构建生产级编程代理提示词的直接链接" translate="no">​</a></h3>
<p>为了说明这些概念，让我们看看 AiDIY 项目中使用的现代编程代理提示词结构。注意其中没有废话，并大量使用了结构化契约。</p>
<div class="language-markdown codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-markdown codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token title important punctuation" style="color:#393A34">#</span><span class="token title important"> 系统契约：AiDIY-CODE-V2</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token title important punctuation" style="color:#393A34">##</span><span class="token title important"> 版本：2026.4.5</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token title important punctuation" style="color:#393A34">##</span><span class="token title important"> 状态：生产环境</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">capabilities</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token list punctuation" style="color:#393A34">-</span><span class="token plain"> 多文件重构及依赖图分析。</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token list punctuation" style="color:#393A34">-</span><span class="token plain"> 通过 </span><span class="token code-snippet code keyword" style="color:#00009f">`grep_search`</span><span class="token plain"> 和 </span><span class="token code-snippet code keyword" style="color:#00009f">`ast_parser`</span><span class="token plain"> 进行符号搜索。</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token list punctuation" style="color:#393A34">-</span><span class="token plain"> 生成单元测试（Vitest/Pytest），目标是 100% 的分支覆盖率。</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">capabilities</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">environment_context</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token list punctuation" style="color:#393A34">-</span><span class="token plain"> 项目：AiDIY 知识库（微前端架构）</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token list punctuation" style="color:#393A34">-</span><span class="token plain"> 语言：TypeScript 5.8 / Node.js 24</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token list punctuation" style="color:#393A34">-</span><span class="token plain"> 标准：整洁架构（Clean Architecture）, 六边形架构, 领域驱动设计 (DDD)。</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token list punctuation" style="color:#393A34">-</span><span class="token plain"> 测试：Vitest + Playwright。</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">environment_context</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">operating_protocol</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token list punctuation" style="color:#393A34">1.</span><span class="token plain"> 研究：使用 </span><span class="token code-snippet code keyword" style="color:#00009f">`list_directory`</span><span class="token plain"> 和 </span><span class="token code-snippet code keyword" style="color:#00009f">`grep_search`</span><span class="token plain"> 映射依赖关系。</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token list punctuation" style="color:#393A34">2.</span><span class="token plain"> 计划：在 </span><span class="token code-snippet code keyword" style="color:#00009f">`&lt;plan&gt;`</span><span class="token plain"> 标签内输出技术实现方案。</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token list punctuation" style="color:#393A34">3.</span><span class="token plain"> 执行：使用 </span><span class="token code-snippet code keyword" style="color:#00009f">`replace`</span><span class="token plain"> 工具应用手术式的更改。避免对部分更新使用 </span><span class="token code-snippet code keyword" style="color:#00009f">`write_file`</span><span class="token plain">。</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token list punctuation" style="color:#393A34">4.</span><span class="token plain"> 验证：执行本地测试套件和 Lint 检查。</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">operating_protocol</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">constraints</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token list punctuation" style="color:#393A34">-</span><span class="token plain"> 在 TypeScript 中绝不使用 'any' 或 'as' 类型断言。</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token list punctuation" style="color:#393A34">-</span><span class="token plain"> 所有文件路径必须是绝对路径，并经由 </span><span class="token code-snippet code keyword" style="color:#00009f">`ls`</span><span class="token plain"> 验证。</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token list punctuation" style="color:#393A34">-</span><span class="token plain"> 不得修改 </span><span class="token code-snippet code keyword" style="color:#00009f">`.env`</span><span class="token plain"> 文件或凭据。</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token list punctuation" style="color:#393A34">-</span><span class="token plain"> 更改范围严格限制在 </span><span class="token code-snippet code keyword" style="color:#00009f">`&lt;task&gt;`</span><span class="token plain"> 标签内。</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">constraints</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">output_contract</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token list punctuation" style="color:#393A34">-</span><span class="token plain"> 所有推理过程必须包裹在 </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">thought</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"> 标签内。</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token list punctuation" style="color:#393A34">-</span><span class="token plain"> 工具调用必须是符合工具规范（Tool Specification）的有效 JSON。</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token list punctuation" style="color:#393A34">-</span><span class="token plain"> 最终响应必须对照原始 </span><span class="token code-snippet code keyword" style="color:#00009f">`&lt;plan&gt;`</span><span class="token plain"> 总结更改内容。</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">output_contract</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><br></span></code></pre></div></div>
<p>这个提示词不是一段对话，它是一个<strong>执行环境</strong>。它定义了工具、规则以及代理预期的状态转换。</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="结语作为代码的未来">结语：作为代码的未来<a href="https://docs.yiw.me/zh-Hans/blog/prompt-engineering-system-contracts/#%E7%BB%93%E8%AF%AD%E4%BD%9C%E4%B8%BA%E4%BB%A3%E7%A0%81%E7%9A%84%E6%9C%AA%E6%9D%A5" class="hash-link" aria-label="结语：作为代码的未来的直接链接" title="结语：作为代码的未来的直接链接" translate="no">​</a></h3>
<p>展望 2020 年代的后半叶，“代码”与“提示词”之间的界限将继续模糊。我们正看到 **提示词领域特定语言（Prompt DSLs）**和编译器的兴起，它们接收高级意图并针对特定的模型架构进行优化，自动从向量数据库注入相关示例，并修剪不必要的 Token 以适应模型的特定注意力头配置。</p>
<p>在这个时代取得成功的工程师将不是那些懂得如何与 AI “交谈”的人，而是那些懂得如何为其<strong>构建架构</strong>的人。他们将理解 ICL 与微调之间的权衡、提示词缓存的细微差别，以及模式驱动契约的至关重要性。提示词工程并未消亡，它终于成为了一门真正的工程学。我们正在从“魔法咒语”迈向“系统契约”，其结果比我们在 LLM 早期所想象的任何事物都更可靠、更具扩展性、更强大。</p>
<hr>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="参考文献">参考文献<a href="https://docs.yiw.me/zh-Hans/blog/prompt-engineering-system-contracts/#%E5%8F%82%E8%80%83%E6%96%87%E7%8C%AE" class="hash-link" aria-label="参考文献的直接链接" title="参考文献的直接链接" translate="no">​</a></h3>
<ul>
<li class=""><strong>OpenAI (2025).</strong> <em>Inference-Time Scaling and the o1 Architecture.</em> <a href="https://openai.com/research/o1-reasoning" target="_blank" rel="noopener noreferrer" class="">https://openai.com/research/o1-reasoning</a></li>
<li class=""><strong>Anthropic (2026).</strong> <em>Structural Integrity in Large Context Windows.</em> <a href="https://anthropic.com/research/xml-contracts" target="_blank" rel="noopener noreferrer" class="">https://anthropic.com/research/xml-contracts</a></li>
<li class=""><strong>Google AI (2026).</strong> <em>Gemini 3.0: The End of Prompt Heuristics.</em> <a href="https://ai.google/blog/gemini-3-heuristics" target="_blank" rel="noopener noreferrer" class="">https://ai.google/blog/gemini-3-heuristics</a></li>
<li class=""><strong>AiDIY (2026).</strong> <em>The Harness Engineering Manifesto.</em> <a class="" href="https://docs.yiw.me/zh-Hans/blog/harness-engineering-orchestration-safety/">/blog/harness-engineering-orchestration-safety/</a></li>
</ul>
<hr>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="术语选择说明-summary-of-terminology-choices">术语选择说明 (Summary of Terminology Choices)<a href="https://docs.yiw.me/zh-Hans/blog/prompt-engineering-system-contracts/#%E6%9C%AF%E8%AF%AD%E9%80%89%E6%8B%A9%E8%AF%B4%E6%98%8E-summary-of-terminology-choices" class="hash-link" aria-label="术语选择说明 (Summary of Terminology Choices)的直接链接" title="术语选择说明 (Summary of Terminology Choices)的直接链接" translate="no">​</a></h3>
<p>在翻译过程中，我遵循了 2026 年 AI 领域的专业语境，选择了以下术语：</p>
<ol>
<li class=""><strong>Prompt Engineering -&gt; 提示词工程</strong>：行业标准译法，强调其工程属性。</li>
<li class=""><strong>Heuristics -&gt; 经验法则 / 启发式方法</strong>：在软件工程和算法中，这通常指基于经验而非严谨证明的方法。文中将其与“系统契约”对立。</li>
<li class=""><strong>System Contract -&gt; 系统契约</strong>：将提示词视为一种像 API 契约一样的约束性协议。</li>
<li class=""><strong>Chain of Thought -&gt; 思维链</strong>：LLM 逐步推理的核心概念。</li>
<li class=""><strong>Prompt Caching -&gt; 提示词缓存</strong>：LLM 推理优化的关键技术。</li>
<li class=""><strong>In-Context Learning (ICL) -&gt; 上下文学习</strong>：利用提示词内的示例让模型学习任务，而不修改权重。</li>
<li class=""><strong>Reasoning Models -&gt; 推理模型</strong>：指代如 OpenAI o1 等具备强逻辑推理能力的模型。</li>
<li class=""><strong>Solution Space -&gt; 解空间</strong>：数学和算法术语，指所有可能解的集合。</li>
<li class=""><strong>Many-shot ICL -&gt; 多样本上下文学习</strong>：对应长文本时代的数百/数千示例注入。</li>
<li class=""><strong>Parametric Intelligence vs Contextual Intelligence -&gt; 参数化智能 vs 上下文智能</strong>：区分固化在模型参数中的知识与通过上下文实时获取的智能。</li>
</ol>]]></content>
        <author>
            <name>Yi Wang</name>
            <uri>https://github.com/YiWang24</uri>
        </author>
        <category label="prompt-engineering" term="prompt-engineering"/>
        <category label="ai-architecture" term="ai-architecture"/>
        <category label="reasoning-models" term="reasoning-models"/>
        <category label="llm-ops" term="llm-ops"/>
        <category label="engineering-standards" term="engineering-standards"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[Welcome]]></title>
        <id>https://docs.yiw.me/zh-Hans/blog/first-blog-post/</id>
        <link href="https://docs.yiw.me/zh-Hans/blog/first-blog-post/"/>
        <updated>2025-01-17T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Welcome to the new documentation site!]]></summary>
        <content type="html"><![CDATA[<p>Welcome to the new documentation site!</p>
<p>This blog will feature technical deep-dives, tutorials, and insights from full-stack and AI engineering projects.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="what-to-expect">What to Expect<a href="https://docs.yiw.me/zh-Hans/blog/first-blog-post/#what-to-expect" class="hash-link" aria-label="What to Expect的直接链接" title="What to Expect的直接链接" translate="no">​</a></h2>
<ul>
<li class="">Backend architecture patterns</li>
<li class="">Frontend best practices</li>
<li class="">AI/ML implementation guides</li>
<li class="">DevOps workflows</li>
</ul>
<p>Stay tuned for more content!</p>]]></content>
        <author>
            <name>Yi Wang</name>
            <uri>https://github.com/YiWang24</uri>
        </author>
        <category label="hello" term="hello"/>
        <category label="docusaurus" term="docusaurus"/>
    </entry>
</feed>