怎么给游戏NPC接入hermes agent 游戏NPC接入AI方法
怎么给游戏NPC接入hermes agent,给游戏NPC装个"智能大脑",接入后青木先生现在能查病案、翻背包、看进度,还会按教学大纲给你上课,触发辩证游戏,再给你的辩证打分。

核心思路:把游戏当成一个聊天平台,通过Gateway接入Hermes。
Hermes是个三明治架构:
三层架构的设计,提供了可以灵活接入各个平台的Gateway层,在游戏中灵活的接入Agent的能力,只需要把游戏当做一个平台,提供对应的适配器,来处理流式消息即可。
给NPC装外挂:技能+工具
同时为了让NPC更智能,还需要为每个智能体提供外挂,包括技能、工具、每个智能体的角色文件。
技能层主要是npc的日常SOP工作流,包含以下

而工具层会更复杂一点,因为需要完成所有游戏状态的获取和更新、触发操作,包括
状态获取:获取玩家的背包、病案进度、整体学习进度
状态更新:创建学习任务、触发诊断配伍游戏、记录更新记忆(这里没有完全使用hermes内置的记忆模块,因为非结构化记忆在教学场景的稳定度不满足要求)

现在npc配置这块还有点乱,后续会进一步拆分出npc的角色配置和技能文档作为hermes的working directory加载每个agent的配置,工具+gateway层放到接入平台层,会更干净该注册的注册,该走环境变量配置的走配置,哈哈现在AI写的那叫一个乱,等下一轮重构吧。
Hook的花样玩法
很多人觉得Hook就是"到点执行固定脚本"——比如任务完成发个通知、调用工具前检查权限。但我觉得Hook的本质是:在AI自主决策的缝隙里,塞入人类的理性。
本质上更像是在LLM自主执行的多个行动之间通过链表的形式穿插进固定的状态和流程。
和/ultrawork的思路互补,一个是自主之中有编排,另一个是编排之中有自主,最终或者会走向统一?
并且毫无意外的是并不引入新的语法,而是就基于coding本身实现编排,毕竟这是AI当前完成最好,最容易校验的任务。
那在游戏的开发中我们用到了哪些hooks呢?
Pre-tool Hook:Key泄露拦截器
血泪教训:某天让AI帮我提交代码,结果它把我的OpenAI Key一起push到GitHub了。
赶紧用git-filter-repo把所有历史commit扫了一遍(警告:这玩意会重写Git历史,操作前务必备份!)
于是立刻马上就让CC增加了安全扫描Hook,也是最基础的“脚本型”Hook,具体的指令流程如下。

Hook的开发其实可以类比接入新API,先去官网拉取Hook开发规范并写入文档,这样之后开发新的hooks也不需要在查规范直接先看文档就完了,之后再开始开发hook,并E2E测试后再接入。
最搞笑的地方来了....
因为安全拦截做的太强,导致写好的hook代码本身无法commit了....
然后AI看到拦截消息,回复“我太强了”
哈哈哈哈,笑不活了.....
Post-Tool Hook:设计文档审查官
问题:让AI设计功能时,它经常被用户的提问"带偏"。
比如我说"背包数据显示不一致",AI只会修修补补解决表面问题,而不会意识到根因是缺少统一的状态管理数据库。
解决方案:加个"事后诸葛亮"的反思Hook
当检测到工具输出是对docs/superpowers/specs进行文件写入时,当自动触发审核任务。
这个Hook更复杂些,是一个“脚本型”hook,因为所有反思,评估都需要在新的上下文中执行。通过脚本启动独立CC进程进行设计文档的审核,从整个设计文档需要解决的问题触发,审核文档是否有遗漏、模糊、矛盾待澄清的设计点。
AI圈其实是个圈,没过一阵就会发现历史的风又吹风回来了。所以自主虽好,但self-evaluation(reflection)在当前的模型能力下依旧有加成的。

这和superpowers自带的spec-review有啥区别?
自带的:细节微调,像语文老师改错别字, 并且纯靠指令触发,国产模型长上文的触发概率并不高...以至于我看源码前都不知道这个功能竟然存在......
我的Hook:全局审查,像技术总监做Code Review,并且通过hook强制触发

Pre-Compact + Session-Start Hook:记忆交接棒
个人体验CC的compact效果比较一般,也或许不同类型的项目本就需要不同的跨session信息传递方式。
所以还是自己上手做了,好不好另说,至少肯定不会再埋怨别人,只会蛐蛐自己哈哈
选择的方案是在compact之前同时创建“handover.md” + "STATE.md" + "PROGRESS.MD"这三个文件,还是那个思路文件持久化,作为唯一真相源,他们分别存储
STATE:项目状态描述,长期
PROGRESS:当前进行中任务状态描述,短期
handover.md: 简要概括STATE+PROGRESS并引用对应文档,然后给出下一步todo指令
然后再下一个session start的时候通过Prompt hook,在上下文中自动载入handover.md就行了。
所以整个Agent循环总共涉及到了以下Hook的触发流程

如果涉及到多个Agent并发工作,例如teammate模式之类的,注意需要配合git worktree一起使用,不然会出现更新冲突哟。