<?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>Agent 思想 on Last Stand</title><link>https://amatsuzero.github.io/LastStand/tags/agent-%E6%80%9D%E6%83%B3/</link><description>Recent content in Agent 思想 on Last Stand</description><generator>Hugo</generator><language>zh-cn</language><lastBuildDate>Tue, 09 Jun 2026 00:00:00 +0800</lastBuildDate><atom:link href="https://amatsuzero.github.io/LastStand/tags/agent-%E6%80%9D%E6%83%B3/index.xml" rel="self" type="application/rss+xml"/><item><title>第16章：Agent 算法思想的升华</title><link>https://amatsuzero.github.io/LastStand/posts/aiagentalgorithm/chapter-16/</link><pubDate>Tue, 09 Jun 2026 00:00:00 +0800</pubDate><guid>https://amatsuzero.github.io/LastStand/posts/aiagentalgorithm/chapter-16/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;我们不是在建造一个工具，而是在定义人与智能体协作的范式。&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="161-回望来路从代码到思想"&gt;16.1 回望来路：从代码到思想&lt;/h2&gt;
&lt;p&gt;当你翻到这一页时，我们已经共同走过了一段漫长的旅程。从第1章的感知-推理-行动循环，到第15章的性能优化深渊，我们逐行审视了 Claude Code 近两千个源码文件、数十万行 TypeScript 代码中蕴含的工程智慧。&lt;/p&gt;
&lt;p&gt;然而，如果这本书仅仅停留在&amp;quot;Claude Code 是怎么写的&amp;quot;这个层面，那它的价值将随着下一个版本的发布而褪色。代码会过时，API 会变迁，框架会更替——但算法思想不会。正如 Donald Knuth 在《计算机程序设计艺术》中所言，真正值得学习的不是某个具体的程序，而是程序背后的思维方式。&lt;/p&gt;
&lt;p&gt;让我们从 Claude Code 的具体实现中抽身而出，提炼出那些具有普适价值的 Agent 算法思想。这些思想，将在未来无数的 Agent 系统中以不同的形式反复出现。&lt;/p&gt;
&lt;h2 id="162-七大核心算法模式"&gt;16.2 七大核心算法模式&lt;/h2&gt;
&lt;p&gt;纵览全书，我们可以从 Claude Code 的架构中提炼出七个核心算法模式。它们不是孤立的技巧，而是一套完整的 Agent 设计语言。&lt;/p&gt;
&lt;h3 id="模式一感知-推理-行动循环perception-reasoning-action-loop"&gt;模式一：感知-推理-行动循环（Perception-Reasoning-Action Loop）&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;源自第1、4章的核心发现。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Claude Code 的 &lt;code&gt;query.ts&lt;/code&gt; 中的主循环是整个系统的心脏。它不是一个简单的 request-response 模型，而是一个持续运转的 &lt;code&gt;while(true)&lt;/code&gt; 循环：&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-typescript" data-lang="typescript"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;// query.ts — 简化的核心循环结构
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;async&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;function&lt;/span&gt;&lt;span style="color:#f92672"&gt;*&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;queryLoop&lt;/span&gt;(&lt;span style="color:#a6e22e"&gt;params&lt;/span&gt;: &lt;span style="color:#66d9ef"&gt;QueryParams&lt;/span&gt;) {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;let&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;state&lt;/span&gt;: &lt;span style="color:#66d9ef"&gt;State&lt;/span&gt; &lt;span style="color:#f92672"&gt;=&lt;/span&gt; { &lt;span style="color:#a6e22e"&gt;messages&lt;/span&gt;, &lt;span style="color:#a6e22e"&gt;toolUseContext&lt;/span&gt;, &lt;span style="color:#a6e22e"&gt;turnCount&lt;/span&gt;: &lt;span style="color:#66d9ef"&gt;1&lt;/span&gt;, ... }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;while&lt;/span&gt; (&lt;span style="color:#66d9ef"&gt;true&lt;/span&gt;) {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;let&lt;/span&gt; { &lt;span style="color:#a6e22e"&gt;toolUseContext&lt;/span&gt; } &lt;span style="color:#f92672"&gt;=&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;state&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;const&lt;/span&gt; { &lt;span style="color:#a6e22e"&gt;messages&lt;/span&gt;, &lt;span style="color:#a6e22e"&gt;turnCount&lt;/span&gt; } &lt;span style="color:#f92672"&gt;=&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;state&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;yield&lt;/span&gt; { &lt;span style="color:#66d9ef"&gt;type&lt;/span&gt;&lt;span style="color:#f92672"&gt;:&lt;/span&gt; &lt;span style="color:#e6db74"&gt;&amp;#39;stream_request_start&amp;#39;&lt;/span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;// 感知：收集上下文、附件、记忆
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;// 推理：调用 LLM 获取响应
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;// 行动：执行工具调用
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&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;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;这个模式的精妙之处在于它的&lt;strong&gt;生成器（AsyncGenerator）设计&lt;/strong&gt;。&lt;code&gt;query&lt;/code&gt; 函数不是返回一个结果，而是 &lt;code&gt;yield&lt;/code&gt; 出一个事件流——流式事件、消息、工具结果——让调用者可以逐步消费。这是一个经典的&lt;strong&gt;协程模式&lt;/strong&gt;：循环的每一轮既是一次完整的感知-推理-行动周期，又是一个可被外部中断、恢复的协作点。&lt;/p&gt;</description></item></channel></rss>