<?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>游戏开发 &#8211; 岁月细碎点滴快查</title>
	<atom:link href="https://blog.mutadecheng.com/category/%e6%b8%b8%e6%88%8f%e5%bc%80%e5%8f%91/feed/" rel="self" type="application/rss+xml" />
	<link>https://blog.mutadecheng.com</link>
	<description></description>
	<lastBuildDate>Wed, 07 Jan 2026 06:04:45 +0000</lastBuildDate>
	<language>zh-Hans</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9</generator>
	<item>
		<title>游戏开发学习笔记-NPC的AI开发</title>
		<link>https://blog.mutadecheng.com/2026/01/07/%e6%b8%b8%e6%88%8f%e5%bc%80%e5%8f%91%e5%ad%a6%e4%b9%a0%e7%ac%94%e8%ae%b0-npc%e7%9a%84ai%e5%bc%80%e5%8f%91/</link>
		
		<dc:creator><![CDATA[木它]]></dc:creator>
		<pubDate>Wed, 07 Jan 2026 05:56:59 +0000</pubDate>
				<category><![CDATA[游戏开发]]></category>
		<guid isPermaLink="false">https://blog.mutadecheng.com/?p=669</guid>

					<description><![CDATA[在游戏开发中，NPC（非玩家角色）的智能行为设计十分重要。不同的AI开发方式适用于不同复杂度和类型的NPC。本 [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>在游戏开发中，NPC（非玩家角色）的智能行为设计十分重要。不同的AI开发方式适用于不同复杂度和类型的NPC。本篇详细介绍主流的NPC AI开发方法，并配有树状图示例，帮助初学者轻松理解。</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">一、有限状态机（FSM，Finite State Machine）</h2>



<h3 class="wp-block-heading">1. 概念</h3>



<p>有限状态机是一种把NPC行为分成几个“状态”的设计方式，比如“巡逻”、“攻击”、“逃跑”等。NPC任意时刻只会处于某一个状态，满足条件才会切换到其他状态。</p>



<h3 class="wp-block-heading">2. 原理</h3>



<ul class="wp-block-list">
<li><strong>状态</strong>：NPC所处的行为阶段。</li>



<li><strong>切换条件</strong>：决定何时从一个状态跳转到另一个状态。</li>



<li><strong>每个状态的具体行为</strong>：比如巡逻状态下，NPC会在场景中来回走动。</li>
</ul>



<h3 class="wp-block-heading">3. 树图示例</h3>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#1E1E1E"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" data-code="巡逻
└─ 发现敌人? 是 → 追击敌人
    └─ 距离很近? 是 → 攻击敌人
        └─ 血量很低? 是 → 逃跑" style="color:#D4D4D4;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki dark-plus" style="background-color: #1E1E1E" tabindex="0"><code><span class="line"><span style="color: #DCDCAA">巡逻</span></span>
<span class="line"><span style="color: #DCDCAA">└─</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">发现敌人?</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">是</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">→</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">追击敌人</span></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #DCDCAA">└─</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">距离很近?</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">是</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">→</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">攻击敌人</span></span>
<span class="line"><span style="color: #D4D4D4">        </span><span style="color: #DCDCAA">└─</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">血量很低?</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">是</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">→</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">逃跑</span></span></code></pre></div>



<h3 class="wp-block-heading">4. 讲解</h3>



<p>比如一个警卫巡逻，发现敌人就追击，靠近了就攻击，受伤严重就逃跑。每个行为就是一个“状态”，切换条件清晰简单，非常适合新手入门和简单AI。</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">二、决策树（Decision Tree）</h2>



<h3 class="wp-block-heading">1. 概念</h3>



<p>决策树就像一系列嵌套的“如果……那么……”的判断题。NPC会沿着判断条件，一步步选择最终要做的事情。</p>



<h3 class="wp-block-heading">2. 原理</h3>



<ul class="wp-block-list">
<li>每一层是一个判断问题。</li>



<li>满足条件就继续往下判断，直到找到适合当前情况的行为。</li>
</ul>



<h3 class="wp-block-heading">3. 树图示例</h3>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#1E1E1E"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" data-code="发现敌人?
├─ 是
│   └─ 距离近?
│       ├─ 是 → 攻击
│       └─ 否 → 追击
└─ 否 → 巡逻" style="color:#D4D4D4;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki dark-plus" style="background-color: #1E1E1E" tabindex="0"><code><span class="line"><span style="color: #DCDCAA">发现敌人?</span></span>
<span class="line"><span style="color: #DCDCAA">├─</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">是</span></span>
<span class="line"><span style="color: #DCDCAA">│</span><span style="color: #D4D4D4">   </span><span style="color: #CE9178">└─</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">距离近?</span></span>
<span class="line"><span style="color: #DCDCAA">│</span><span style="color: #D4D4D4">       </span><span style="color: #CE9178">├─</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">是</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">→</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">攻击</span></span>
<span class="line"><span style="color: #DCDCAA">│</span><span style="color: #D4D4D4">       </span><span style="color: #CE9178">└─</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">否</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">→</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">追击</span></span>
<span class="line"><span style="color: #DCDCAA">└─</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">否</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">→</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">巡逻</span></span></code></pre></div>



<h3 class="wp-block-heading">4. 讲解</h3>



<p>比如NPC先问自己“看到敌人了吗？”如果看到，再问“敌人近吗？”，如果近就攻击，不近就追。如果没看到，就继续巡逻。适合逻辑不复杂的NPC。</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">三、行为树（Behavior Tree）</h2>



<h3 class="wp-block-heading">1. 概念</h3>



<p>行为树是一种模块化的设计，把复杂行为拆解成一个个“小动作”，再像拼积木一样组合起来。每个“树枝”表示一个决策流程，叶子节点是具体动作。</p>



<h3 class="wp-block-heading">2. 原理</h3>



<ul class="wp-block-list">
<li>从根节点出发，按顺序或优先级检查每个子节点。</li>



<li>组合复杂行为，比如“先做A，如果不行再做B”。</li>



<li>节点可以复用，易于扩展。</li>
</ul>



<h3 class="wp-block-heading">3. 树图示例</h3>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#1E1E1E"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" data-code="选择器
├─ 行为1：发现敌人?
│   └─ 是 → 顺序器
│       ├─ 面向敌人
│       ├─ 接近敌人
│       └─ 攻击敌人
├─ 行为2：血量低?
│   └─ 是 → 寻找掩体
└─ 行为3：巡逻" style="color:#D4D4D4;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki dark-plus" style="background-color: #1E1E1E" tabindex="0"><code><span class="line"><span style="color: #DCDCAA">选择器</span></span>
<span class="line"><span style="color: #DCDCAA">├─</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">行为1：发现敌人?</span></span>
<span class="line"><span style="color: #DCDCAA">│</span><span style="color: #D4D4D4">   </span><span style="color: #CE9178">└─</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">是</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">→</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">顺序器</span></span>
<span class="line"><span style="color: #DCDCAA">│</span><span style="color: #D4D4D4">       </span><span style="color: #CE9178">├─</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">面向敌人</span></span>
<span class="line"><span style="color: #DCDCAA">│</span><span style="color: #D4D4D4">       </span><span style="color: #CE9178">├─</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">接近敌人</span></span>
<span class="line"><span style="color: #DCDCAA">│</span><span style="color: #D4D4D4">       </span><span style="color: #CE9178">└─</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">攻击敌人</span></span>
<span class="line"><span style="color: #DCDCAA">├─</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">行为2：血量低?</span></span>
<span class="line"><span style="color: #DCDCAA">│</span><span style="color: #D4D4D4">   </span><span style="color: #CE9178">└─</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">是</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">→</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">寻找掩体</span></span>
<span class="line"><span style="color: #DCDCAA">└─</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">行为3：巡逻</span></span></code></pre></div>



<h3 class="wp-block-heading">4. 讲解</h3>



<p>行为树就像一个智能化的流程表，先判断优先级高的事（比如有敌人就先攻击），否则做次要的事（比如巡逻）。树的结构让每个行为都能灵活组合，非常适合复杂NPC。</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">四、GOAP（目标导向动作规划，Goal-Oriented Action Planning）</h2>



<h3 class="wp-block-heading">1. 概念</h3>



<p>GOAP不是提前写好所有流程，而是让NPC根据“目标”动态规划怎么做。比如目标是“活下来”，NPC会自动选择“找药包”“找掩体”等步骤。</p>



<h3 class="wp-block-heading">2. 原理</h3>



<ul class="wp-block-list">
<li>给NPC设定多个目标，如“消灭敌人”“保持安全”。</li>



<li>每个动作有“前提条件”和“结果”。</li>



<li>NPC根据当前情况，自动规划一系列动作达成目标。</li>
</ul>



<h3 class="wp-block-heading">3. 树图示例（目标：消灭敌人）</h3>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#1E1E1E"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" data-code="目标：消灭敌人
├─ 需要武器?
│   └─ 是 → 去找武器
├─ 有武器 → 靠近敌人
└─ 接近后 → 攻击敌人" style="color:#D4D4D4;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki dark-plus" style="background-color: #1E1E1E" tabindex="0"><code><span class="line"><span style="color: #DCDCAA">目标：消灭敌人</span></span>
<span class="line"><span style="color: #DCDCAA">├─</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">需要武器?</span></span>
<span class="line"><span style="color: #DCDCAA">│</span><span style="color: #D4D4D4">   </span><span style="color: #CE9178">└─</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">是</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">→</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">去找武器</span></span>
<span class="line"><span style="color: #DCDCAA">├─</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">有武器</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">→</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">靠近敌人</span></span>
<span class="line"><span style="color: #DCDCAA">└─</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">接近后</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">→</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">攻击敌人</span></span></code></pre></div>



<h3 class="wp-block-heading">4. 讲解</h3>



<p>比如NPC没有武器，就会先去找武器；有了武器后再去接近敌人，最后攻击。GOAP让NPC像“思考”一样，灵活应对不同情况，行为更智能。</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">五、黑板系统（Blackboard System）</h2>



<h3 class="wp-block-heading">1. 概念</h3>



<p>黑板系统是一个信息共享平台，NPC的各个模块（比如感知、决策、行动）都可以在黑板上读写信息，实现协同。</p>



<h3 class="wp-block-heading">2. 原理</h3>



<ul class="wp-block-list">
<li>黑板就像一个公告栏，大家都能看到。</li>



<li>感知模块发现敌人后，把信息写到黑板上。</li>



<li>行为模块读取这些信息，决定要做什么。</li>
</ul>



<h3 class="wp-block-heading">3. 树图示例</h3>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#1E1E1E"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" data-code="黑板
├─ 发现敌人 → 决策模块读取 → 切换到攻击状态
├─ 发现血包 → 决策模块读取 → 前往拾取
└─ 其他信息" style="color:#D4D4D4;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki dark-plus" style="background-color: #1E1E1E" tabindex="0"><code><span class="line"><span style="color: #DCDCAA">黑板</span></span>
<span class="line"><span style="color: #DCDCAA">├─</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">发现敌人</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">→</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">决策模块读取</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">→</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">切换到攻击状态</span></span>
<span class="line"><span style="color: #DCDCAA">├─</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">发现血包</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">→</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">决策模块读取</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">→</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">前往拾取</span></span>
<span class="line"><span style="color: #DCDCAA">└─</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">其他信息</span></span></code></pre></div>



<h3 class="wp-block-heading">4. 讲解</h3>



<p>黑板让NPC的不同部分可以互相沟通，比如“感知”发现敌人，“决策”模块就能知道要攻击。这种方式多用于复杂AI系统。</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">六、基于规则的系统（Rule-based System）</h2>



<h3 class="wp-block-heading">1. 概念</h3>



<p>基于规则的系统，就是提前写好一堆“如果……那么……”的规则，NPC遇到情况就一条条检查，满足条件就执行相应行为。</p>



<h3 class="wp-block-heading">2. 原理</h3>



<ul class="wp-block-list">
<li>规则库里存着各种条件和结果。</li>



<li>NPC不断检查当前所有规则，执行最先匹配的行为。</li>
</ul>



<h3 class="wp-block-heading">3. 树图示例</h3>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#1E1E1E"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" data-code="规则库
├─ 如果血量低 → 寻找医疗包
├─ 如果敌人靠近 → 攻击
└─ 否则 → 巡逻" style="color:#D4D4D4;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki dark-plus" style="background-color: #1E1E1E" tabindex="0"><code><span class="line"><span style="color: #DCDCAA">规则库</span></span>
<span class="line"><span style="color: #DCDCAA">├─</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">如果血量低</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">→</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">寻找医疗包</span></span>
<span class="line"><span style="color: #DCDCAA">├─</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">如果敌人靠近</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">→</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">攻击</span></span>
<span class="line"><span style="color: #DCDCAA">└─</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">否则</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">→</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">巡逻</span></span></code></pre></div>



<h3 class="wp-block-heading">4. 讲解</h3>



<p>比如“如果血量低，去找药包；如果敌人靠近，先攻击”。适合简单或者中等复杂度的AI，但规则多了后管理会变复杂。</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">七、机器学习/深度学习方法</h2>



<h3 class="wp-block-heading">1. 概念</h3>



<p>机器学习让NPC通过“学习”来变得更聪明，比如通过反复试错，自动学会最佳行为。</p>



<h3 class="wp-block-heading">2. 原理</h3>



<ul class="wp-block-list">
<li>通过大量训练，AI模型掌握在不同情况下的最佳反应。</li>



<li>强化学习：NPC每做一次选择，都会得到奖励或惩罚，通过不断尝试，学会最优策略。</li>
</ul>



<h3 class="wp-block-heading">3. 树图示例（简化思路）</h3>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#1E1E1E"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" data-code="环境反馈
├─ 尝试动作A → 得到奖励 → 增强动作A
├─ 尝试动作B → 得到惩罚 → 减少动作B
└─ 反复迭代 → 学习到最佳行为" style="color:#D4D4D4;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki dark-plus" style="background-color: #1E1E1E" tabindex="0"><code><span class="line"><span style="color: #DCDCAA">环境反馈</span></span>
<span class="line"><span style="color: #DCDCAA">├─</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">尝试动作A</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">→</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">得到奖励</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">→</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">增强动作A</span></span>
<span class="line"><span style="color: #DCDCAA">├─</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">尝试动作B</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">→</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">得到惩罚</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">→</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">减少动作B</span></span>
<span class="line"><span style="color: #DCDCAA">└─</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">反复迭代</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">→</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">学习到最佳行为</span></span></code></pre></div>



<h3 class="wp-block-heading">4. 讲解</h3>



<p>比如NPC在模拟环境里尝试“攻击”“逃跑”“躲避”，每次尝试后都通过奖励机制调整行为，最终学会如何做得最好。这种方法适合做高智能NPC，但开发和训练成本高。</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">八、基于大语言模型的生成式智能体架构（以斯坦福AI小人虚拟小镇为例）</h2>



<h3 class="wp-block-heading">1. 概念</h3>



<p><strong>生成式智能体</strong>（Generative Agent）是一种借助大语言模型（如GPT）作为“智能大脑”，结合记忆、检索、反思、计划等模块，模拟出高度拟人的行为和交互。其典型代表是斯坦福大学提出的“AI小人虚拟小镇”，在开源社区（如a16z重写版）得到了广泛应用。</p>



<p>传统AI方法如有限状态机、行为树、GOAP等，行为多为“脚本化”或“规则化”。生成式智能体则通过自然语言驱动行为，能够自我进化、动态适应环境，表现出类似人类的复杂行为。</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading">2. 技术架构与整体思路</h3>



<h4 class="wp-block-heading">2.1 架构树状图</h4>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#1E1E1E"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" data-code="生成式智能体架构
├─ 记忆流（Memory Stream）
│   ├─ 观察（Observations）
│   ├─ 反思（Reflections）
│   └─ 计划（Plans）
├─ 检索机制（Retrieval）
│   ├─ 近因性
│   ├─ 重要性
│   └─ 相关性（向量数据库）
├─ 反思机制（Reflection）
│   └─ 抽象/推理（生成反思树）
├─ 计划与反应（Planning &amp; Reaction）
│   ├─ 高层计划
│   └─ 递归细化
├─ 行为生成（Action Generation）
│   ├─ 环境互动
│   └─ 代理对话
├─ 用户交互
│   └─ 用户输入（自然语言）
├─ 外部支持系统
│   ├─ 游戏引擎、数据库
│   ├─ 向量数据库
│   ├─ 文字生成模型（LLM）
│   └─ 像素图生成等" style="color:#D4D4D4;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki dark-plus" style="background-color: #1E1E1E" tabindex="0"><code><span class="line"><span style="color: #DCDCAA">生成式智能体架构</span></span>
<span class="line"><span style="color: #DCDCAA">├─</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">记忆流（Memory</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">Stream）</span></span>
<span class="line"><span style="color: #DCDCAA">│</span><span style="color: #D4D4D4">   </span><span style="color: #CE9178">├─</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">观察（Observations）</span></span>
<span class="line"><span style="color: #DCDCAA">│</span><span style="color: #D4D4D4">   </span><span style="color: #CE9178">├─</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">反思（Reflections）</span></span>
<span class="line"><span style="color: #DCDCAA">│</span><span style="color: #D4D4D4">   </span><span style="color: #CE9178">└─</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">计划（Plans）</span></span>
<span class="line"><span style="color: #DCDCAA">├─</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">检索机制（Retrieval）</span></span>
<span class="line"><span style="color: #DCDCAA">│</span><span style="color: #D4D4D4">   </span><span style="color: #CE9178">├─</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">近因性</span></span>
<span class="line"><span style="color: #DCDCAA">│</span><span style="color: #D4D4D4">   </span><span style="color: #CE9178">├─</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">重要性</span></span>
<span class="line"><span style="color: #DCDCAA">│</span><span style="color: #D4D4D4">   </span><span style="color: #CE9178">└─</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">相关性（向量数据库）</span></span>
<span class="line"><span style="color: #DCDCAA">├─</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">反思机制（Reflection）</span></span>
<span class="line"><span style="color: #DCDCAA">│</span><span style="color: #D4D4D4">   </span><span style="color: #CE9178">└─</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">抽象/推理（生成反思树）</span></span>
<span class="line"><span style="color: #DCDCAA">├─</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">计划与反应（Planning</span><span style="color: #D4D4D4"> &amp; </span><span style="color: #DCDCAA">Reaction）</span></span>
<span class="line"><span style="color: #DCDCAA">│</span><span style="color: #D4D4D4">   </span><span style="color: #CE9178">├─</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">高层计划</span></span>
<span class="line"><span style="color: #DCDCAA">│</span><span style="color: #D4D4D4">   </span><span style="color: #CE9178">└─</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">递归细化</span></span>
<span class="line"><span style="color: #DCDCAA">├─</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">行为生成（Action</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">Generation）</span></span>
<span class="line"><span style="color: #DCDCAA">│</span><span style="color: #D4D4D4">   </span><span style="color: #CE9178">├─</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">环境互动</span></span>
<span class="line"><span style="color: #DCDCAA">│</span><span style="color: #D4D4D4">   </span><span style="color: #CE9178">└─</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">代理对话</span></span>
<span class="line"><span style="color: #DCDCAA">├─</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">用户交互</span></span>
<span class="line"><span style="color: #DCDCAA">│</span><span style="color: #D4D4D4">   </span><span style="color: #CE9178">└─</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">用户输入（自然语言）</span></span>
<span class="line"><span style="color: #DCDCAA">├─</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">外部支持系统</span></span>
<span class="line"><span style="color: #DCDCAA">│</span><span style="color: #D4D4D4">   </span><span style="color: #CE9178">├─</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">游戏引擎、数据库</span></span>
<span class="line"><span style="color: #DCDCAA">│</span><span style="color: #D4D4D4">   </span><span style="color: #CE9178">├─</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">向量数据库</span></span>
<span class="line"><span style="color: #DCDCAA">│</span><span style="color: #D4D4D4">   </span><span style="color: #CE9178">├─</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">文字生成模型（LLM）</span></span>
<span class="line"><span style="color: #DCDCAA">│</span><span style="color: #D4D4D4">   </span><span style="color: #CE9178">└─</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">像素图生成等</span></span></code></pre></div>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h4 class="wp-block-heading">2.2 架构详细讲解</h4>



<p><strong>A. 记忆流（Memory Stream）</strong></p>



<ul class="wp-block-list">
<li>每个智能体都有自己的“记忆数据库”，记录着所有经历过的事件、对话、计划、反思等。</li>



<li>记忆以自然语言形式存储，包含时间戳和访问时间，既有“观测”也有“抽象反思”。</li>



<li>例如：AI小人“伊莎贝拉”会记得“今天早上在厨房遇到朋友做早餐”。</li>
</ul>



<p><strong>B. 检索机制（Retrieval）</strong></p>



<ul class="wp-block-list">
<li>智能体需要从大量记忆中检索出“当前最相关”的记忆，指导当下行为。</li>



<li>检索包括三大指标：
<ul class="wp-block-list">
<li><strong>近因性</strong>：越新发生的事件，分数越高。</li>



<li><strong>重要性</strong>：事件越重要，分数越高（如“分手”比“刷牙”重要）。</li>



<li><strong>相关性</strong>：用向量数据库（如Pinecone）计算与当前情境的相似度。</li>
</ul>
</li>



<li>例如，AI小人要决定是否去见某人，会回忆最近有关此人的经历和情感。</li>
</ul>



<p><strong>C. 反思机制（Reflection）</strong></p>



<ul class="wp-block-list">
<li>不只是被动记忆，还会主动“总结归纳”，形成“反思”。</li>



<li>反思是对多个相关记忆的抽象，比如“我和朋友的关系变得更亲密了”。</li>



<li>反思会形成“树状结构”，叶节点是具体事件，高层节点是抽象见解。</li>



<li>反思周期性发生，重要事件累积到阈值时触发。</li>
</ul>



<p><strong>D. 计划与反应（Planning &amp; Reaction）</strong></p>



<ul class="wp-block-list">
<li>智能体会制定自己的“日程计划”，比如“早上做早餐、上午去公园、下午工作”。</li>



<li>计划可以递归细化成更小的行动步骤，并随时根据环境变化做出调整。</li>



<li>每当环境或其他智能体行为发生变化，计划会实时更新。</li>
</ul>



<p><strong>E. 行为生成（Action Generation）</strong></p>



<ul class="wp-block-list">
<li>智能体的每一步行为由大语言模型（如GPT）生成，行为描述为自然语言，并映射到具体动作。</li>



<li>智能体之间的对话、与环境的交互都通过自然语言描述和解释。</li>
</ul>



<p><strong>F. 用户交互</strong></p>



<ul class="wp-block-list">
<li>用户可以通过自然语言输入影响智能体（如指派任务、修改属性）。</li>



<li>用户也可以“化身”进入虚拟小镇，成为其中一员。</li>
</ul>



<p><strong>G. 外部支持系统</strong></p>



<ul class="wp-block-list">
<li>游戏引擎（Convex）、数据库、向量数据库（Pinecone）、文字生成模型（OpenAI）、像素图生成（Replicate/Fal.ai）等，构成整个技术栈的基础设施。</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading">3. 与传统AI方法的对比</h3>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>传统方法</th><th>特点</th><th>生成式智能体</th></tr></thead><tbody><tr><td>有限状态机、行为树、GOAP等</td><td>规则/脚本驱动，行为固定，扩展性差</td><td>记忆驱动，行为高度拟人，动态自适应</td></tr><tr><td>规则系统</td><td>依赖开发者预设规则</td><td>通过大语言模型自动推理与规划</td></tr><tr><td>强化学习</td><td>需大量训练，适应性有限</td><td>通过记忆、环境、反思即时适应新情境</td></tr><tr><td>机器学习</td><td>难以解释、训练成本高</td><td>LLM强提示+外逻辑架构，易于扩展</td></tr></tbody></table></figure>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading">4. 生成式智能体的创新点</h3>



<ul class="wp-block-list">
<li><strong>内逻辑与外逻辑结合</strong>：大语言模型负责“想”，外部系统负责“管”数据和操作。</li>



<li><strong>记忆驱动行为</strong>：不再依赖死板脚本，行为由“记忆-检索-反思-计划”动态生成。</li>



<li><strong>行为高度拟人</strong>：能模拟人类的长期记忆、情感变化、临场反应、社会互动。</li>



<li><strong>自进化能力</strong>：环境或用户输入变化时，智能体能自动适应，无需修改代码。</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading">5. 示例：AI小人的一天（树状图）</h3>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#1E1E1E"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" data-code="伊莎贝拉的一天
├─ 记忆流
│   ├─ 早上做早餐
│   ├─ 与朋友聊天
│   ├─ 计划去公园
│   └─ 下午工作
├─ 检索
│   ├─ 最近与朋友的对话
│   └─ 上次工作时的反思
├─ 反思
│   ├─ 今天与朋友关系更亲密
│   └─ 工作效率提升
├─ 计划
│   ├─ 上午：社交
│   └─ 下午：工作
├─ 行为
│   ├─ 与朋友互动
│   └─ 执行工作任务" style="color:#D4D4D4;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki dark-plus" style="background-color: #1E1E1E" tabindex="0"><code><span class="line"><span style="color: #DCDCAA">伊莎贝拉的一天</span></span>
<span class="line"><span style="color: #DCDCAA">├─</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">记忆流</span></span>
<span class="line"><span style="color: #DCDCAA">│</span><span style="color: #D4D4D4">   </span><span style="color: #CE9178">├─</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">早上做早餐</span></span>
<span class="line"><span style="color: #DCDCAA">│</span><span style="color: #D4D4D4">   </span><span style="color: #CE9178">├─</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">与朋友聊天</span></span>
<span class="line"><span style="color: #DCDCAA">│</span><span style="color: #D4D4D4">   </span><span style="color: #CE9178">├─</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">计划去公园</span></span>
<span class="line"><span style="color: #DCDCAA">│</span><span style="color: #D4D4D4">   </span><span style="color: #CE9178">└─</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">下午工作</span></span>
<span class="line"><span style="color: #DCDCAA">├─</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">检索</span></span>
<span class="line"><span style="color: #DCDCAA">│</span><span style="color: #D4D4D4">   </span><span style="color: #CE9178">├─</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">最近与朋友的对话</span></span>
<span class="line"><span style="color: #DCDCAA">│</span><span style="color: #D4D4D4">   </span><span style="color: #CE9178">└─</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">上次工作时的反思</span></span>
<span class="line"><span style="color: #DCDCAA">├─</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">反思</span></span>
<span class="line"><span style="color: #DCDCAA">│</span><span style="color: #D4D4D4">   </span><span style="color: #CE9178">├─</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">今天与朋友关系更亲密</span></span>
<span class="line"><span style="color: #DCDCAA">│</span><span style="color: #D4D4D4">   </span><span style="color: #CE9178">└─</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">工作效率提升</span></span>
<span class="line"><span style="color: #DCDCAA">├─</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">计划</span></span>
<span class="line"><span style="color: #DCDCAA">│</span><span style="color: #D4D4D4">   </span><span style="color: #CE9178">├─</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">上午：社交</span></span>
<span class="line"><span style="color: #DCDCAA">│</span><span style="color: #D4D4D4">   </span><span style="color: #CE9178">└─</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">下午：工作</span></span>
<span class="line"><span style="color: #DCDCAA">├─</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">行为</span></span>
<span class="line"><span style="color: #DCDCAA">│</span><span style="color: #D4D4D4">   </span><span style="color: #CE9178">├─</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">与朋友互动</span></span>
<span class="line"><span style="color: #DCDCAA">│</span><span style="color: #D4D4D4">   </span><span style="color: #CE9178">└─</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">执行工作任务</span></span></code></pre></div>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>这些行为全自动生成，AI小人会根据记忆和环境调整自己的计划和反应。</p>
</blockquote>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading">6. 适用场景与未来趋势</h3>



<ul class="wp-block-list">
<li><strong>虚拟世界/元宇宙</strong>：高度拟人NPC、虚拟居民。</li>



<li><strong>游戏开发</strong>：复杂剧情与开放世界中的真实NPC行为。</li>



<li><strong>社交/教育/陪伴</strong>：情感丰富、可自我进化的AI伙伴。</li>



<li><strong>智能体系统</strong>：自动化办公、协作机器人等。</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading">7. 相关资源</h3>



<ul class="wp-block-list">
<li><a href="https://github.com/joonspk-research/generative_agents">项目地址（GitHub）</a></li>



<li><a href="https://arxiv.org/pdf/2304.03442.pdf">论文原文（英文）</a></li>



<li><a href="http://cyberxz.com/aiweb/file/Chinese_GenerativeAgentsInteractiveSimulacraofHumanBehavior.pdf">论文（中文机翻）</a></li>



<li><a href="https://www.convex.dev/ai-town?continueFlag=cd9be6edc56bfb72f6d0dc908d439184">官方演示</a></li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">总结</h2>



<p>斯坦福AI小人虚拟小镇项目开启了大语言模型驱动的AI智能体新时代。它打破了传统脚本和规则系统的限制，让AI像“人”一样，有记忆、会反思、能规划、会交流，真正实现了“虚拟居民”的可信模拟。这一架构的理解，对设计下一代AI应用极具参考价值。</p>



<p></p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
