开场:如果NPC真的能替你玩游戏

“你好,勇士。”

在很多RPG游戏里,你可能都听NPC说过这句话。

第一次听还像那么回事。但当你第十次听到时,可能已经彻底忽略了这个NPC。

有点人样,

但不多。

可如果有一天,它突然脱离了剧本呢?

你下线前只交代一句:“明天帮我多赚点金币。”

等你第二天上线,它已经自己看过行情、买好种子、种进地里,还记得昨天干到了哪里。

这样的NPC,你喜不喜欢?

而这种程度,已经不只是一个NPC了,它更像今天的Agent。

这里其实藏着一条完整的成长线,对应的就是 你最近经常听到的那些AI黑话。

但今天我不按词典一个个解释,而是带你沿着NPC的成长过程,把这些概念一次串清楚,点满你的AI技能树。

【llm、prompt 、context】

要让NPC不再循环台词,第一步,是给它装上一个能理解语言并现场组织回答的“大脑”——LLM(Large Language Model),也就是大语言模型。

LLM是在大量数据上训练出来的语言模型。

它不是从一张答案表里挑一句说,而是根据已经看到的内容,持续预测并生成后续内容。

好了,但它有脑子但不代表它知道你想做什么。

所以你得说点什么。

比如“今天帮我种一棵苹果树。”

那这一句话,就是Prompt了,中文通常叫提示词。

Prompt可以包含目标、限制和输出要求,比如种在哪里、金币最多花多少、完成后是否汇报。

写得越清楚,它需要自己猜的地方就越少。

现在NPC知道你要干啥了。你接着又说:“在它旁边再种一棵。”

在这里等一下,你觉得这句话很好理解,对吧。

但其实单独看 这句话并不完整。

“它”是哪棵树?再种一棵什么树?

你能听懂,是因为你把我前面讲的内容也一起进行信息处理了。

模型每次回答时,不只看你最后那句话。

系统会把当前的Prompt、之前的对话和规则,一起给模型。

模型再根据这一整包信息生成回答,这样你听到的回答才准。

那这一堆信息,就是Context,也就是你常听到的上下文。

【Memory】

但Context有一个边界:它只包括模型这一次思考时能够看到的信息。

等我第二天重新上线,昨天的对话如果没有被放进Context,它就不知道昨天种了什么。

想让NPC跨过一次对话,依然记得之前发生的事,就要把重要信息先保存下来,需要时再取出。

这套机制就是Memory,中文叫记忆。

它通常指保存在当前对话之外、以后还能反复重新取回的信息。

【RAG】

再回到我们的主线任务,让npc种作物。

你遇到一个问题,其实你不知道现在是不是种苹果树的季节,于是问:“苹果树应该在哪个季节种?”

但npc可能也不知道, 答案可能在一本几百页的游戏攻略里。

但是,如果你提前把整本攻略都放进Context,既浪费空间,也会淹没真正相关的信息。

所以更合理的办法,是先找到与问题最相关的几段,再交给模型回答。

你猜到这是什么了吗?对,

这个过程就是RAG,检索增强生成。

它不是让模型直接看整本书,而是在回答前,赶紧替它翻到需要的那几页。

把这些重要信息放进它的上下文中,再让它回答你的问题。

这样模型的回答就准多了。

好我们先停一下 理一理,在这个例子里,Prompt是你现在说的话,Memory替它找回昨天发生的事;RAG替它翻出攻略里与当前问题相关的内容。最后,这些信息都要被放进Context,模型综合后再回答你。

【mcp】

你现在又遇到一个问题:现在苹果树,到底是不是最值钱的?

但作物的排行榜可能不是一本等着翻的攻略,而是另一个正在运行的系统。

现在的问题不再是“去资料里找答案”,而是“AI怎样连接这个排行榜系统,并按照它允许的方式查询价格?”

这就轮到MCP了。

它就是指模型上下文协议,最早由Anthropic提出。

排行榜背后的服务商可以通过MCP Server开放“查询价格”这项能力,AI应用再按照约定的方式调用。

可以说mcp给了AI连接使用外部工具的能力。

连接外部系统的方式当然不只MCP,它本质解决的是标准化的问题。

以前每让AI接一个系统,都可能要单独约定怎么交流;支持MCP以后,AI就可以和不同软件按照同一套协议描述和调用能力。

【agent】

现在npc通过MCP接入排行榜,终于查出原来最值钱的不是苹果,而是杨桃。

可如果它只是回来告诉我价格,事情还是没有做完。

我更想要的是它自己查价格后,再买下种子、种进地里,再检查有没有成功。

如果完成了这个闭环,这玩意就发生了质的飞跃。

它能够围绕一个目标,反复经历“观察环境、判断下一步、采取行动、检查结果”,直到任务完成,这个循环就是Agent最核心的部分。

以前我每按一次按钮,NPC才走一步。现在我只给它目标,agent会根据结果,自己决定下一步该怎么走。

【skill】

现在NPC已经成功种出了一次最值钱的作物了。

但我总不能每天重新教它:看哪个排行榜、怎样比较价格、最后怎么汇报。

所以我把这套方法整理成一个固定的“种菜技能书”:查询指定排行榜,按同样的标准筛选,确认后再执行种植。

聪明的你是不是又想到了,

这套可以重复调用、也能给NPC的工作方法,就是Skill,中文就是技能。

在Agent Skills这套开放规范里,一个Skill就是一个包含SKILL.md的文件夹。

里面写明什么时候使用、具体怎么做,也可以附带脚本、资料和模板。

放进游戏里,Skill就像一本可以交给其他NPC使用的技能书。

以后再遇到同类任务,它不用从头学一遍。

想更多了解Skill也可以看我的上一期哦。

所以Prompt告诉它这一次做什么;Skill告诉它这一类事情通常怎么做。

但有了技能,仍不代表它能在我下线后稳定工作。

【harness】

我下线以后,排行榜突然打不开怎么办?连续失败几次,是继续尝试,还是回来找我?

这些复杂问题,不能只靠一句更长的Prompt解决,也不是再教它一个Skill就够了。

什么时候启动、给它准备哪些Context、开放哪些工具和权限、失败后重试几次、什么时候必须停止,都需要外面的运行系统来管理。

这一层,就是Agent Harness要管的事。

Harness原意是“马具”,作用不是替马奔跑,而是把它的力量控制在正确的方向。

它的叫法并不是那么统一,这里先用Harness泛指围绕Agent搭建的运行环境、约束和反馈机制。

比如排行榜打不开,只允许重试三次;NPC准备种植没有授权的作物,系统就直接拦住;任务成功以后,必须停止并留下记录;等我再次上线,就把结果汇报给我。

到了这里,NPC才比较完整地具备了自个干活的条件。

总结

好了,总结一下。我们很快就把一个只会重复台词的NPC,变成了能够独立干活的Agent:

现在再回头看,这些概念都串成了一条主线。

LLM负责理解,Prompt交代任务,Context提供输入的材料,Memory保存过去的或者要长期输入的信息,RAG寻找当前需要的资料。

MCP让它接进外部系统,Agent让判断和行动真正形成循环,最后,Skill固定方法,Harness保证整套任务持续运行。

它们连在一起,就是这个NPC从听懂一句话,到能够独立干活的完整路径。

这,大概也对应了ai黑话的部分发展史。

好了,如果你感觉今天的东西有一点用,请给我一个赞吧,这对我真的很重要。

结尾

过去的软件,需要人先把每一步写清楚,机器才会开始执行。

Agent不一样。我们可以先给它一个还不完整的目标,让它带着眼前的信息、外部资料和已有经验进入任务。

再从一次次结果里,分辨哪些可以继续交给智能判断,哪些需要变成稳定的方法。

你以为自己在教NPC干活。

到最后,它也在逼着你重新理解:这份工作究竟应该怎么做。