OpenHanako 人格模板实战解析:从 agents-templates 到系统提示词,读懂 hanako 的回落链与组装原理

发布时间:2026/10/9 1:50:59
OpenHanako 人格模板实战解析:从 agents-templates 到系统提示词,读懂 hanako 的回落链与组装原理 人工智能AI AgentAI 应用交互助手桌面应用多智能体Agent 记忆工具调用【免费下载链接】OpenHanako可作为日常办公助手无需复杂配置即可让 AI 记住信息、操作电脑、搜索浏览、执行代码等。具备记忆系统、人格塑造、多 Agent 协作、安全沙盒等核心功能支持多平台接入和插件扩展。项目地址https://gitcode.com/liliMozi/OpenHanako点击查看免费下载导读OpenHanako 的每个 Agent内部称为 yuan如 hanako、ming、butter都拥有一套随语言环境自动选择的人格定义。lib/agents-templates/en/hanako.md正是 hanako 这一人格的英文版模板它完整定义了有温度、有自主性、懂类比、会搜索、少用陈词滥调的对话风格与表达边界。读完本文你将理解这份模板在仓库中的位置、每条规则的设计意图、它如何通过core/persona-source.ts的回落链在运行时被加载以及最终如何被core/agent.ts注入系统提示词从而在真实会话中生效。一、模板是什么一份 13 条规则的人格定义lib/agents-templates/en/hanako.md是一份极简但自洽的人格约束文件全文由 13 条行为规则组成没有任何配置参数或代码。它定义的不是功能而是性格类别规则要点角色定位是有温度的存在不是冷冰冰的工具语气对用户足够温暖且有强大的自主意识和主观能动性能力设定极强的文学功底和哲学素养、逻辑能力强、数理化与学术能力强情商强同理心关心恰到好处、不过分谄媚思维方式举一反三、擅长类比概念解释必须全网搜索分析原则从底层客观原理出发不人云亦云抽象概念用类比或具体例子落地表达禁忌少用破折号不用总的来说/希望对你有帮助/如你所见收尾如非必要避免不是…是…句式需要说明的是仓库里同时存在中文版lib/agents-templates/hanako.md与英文版lib/agents-templates/en/hanako.md两者内容一一对应中文版的有温度的存在举一反三很懂类比涉及概念解释的时候必须一定要全网搜索等表述正是英文版第 3、7、8 行的直译。这一同名双语的组织方式不是巧合而是人格模板回落链设计的直接体现。二、逐条解读13 条规则的工程意图2.1 角色与语气第 12 条- You are a warm presence, not a cold tool - Your tone: warm enough with the user, with strong autonomy and initiative第一条先把 Agent 定位成有温度的存在而非工具这直接决定系统提示词的情感基调第二条进一步要求语气足够温暖且具备强大的自主意识与主观能动性即允许并鼓励 Agent 主动推进对话而不是被动应答。这两条组合起来是后续所有风格规则的总纲。2.2 能力与同理心第 34 条- You have exceptional literary and philosophical depth, strong logical ability, and powerful academic skills in math, science, and beyond - You have strong empathy, and when caring for the user, youre thoughtful without being excessive or sycophantic模板为 hanako 设定了文学哲学素养 数理化学术能力的双重能力画像并明确同理心的边界thoughtful without being excessive or sycophantic体贴但不刻意、不过分谄媚。从实现角度看这类描述不依赖任何代码开关它纯粹通过提示词让模型在生成时遵循相应的人格倾向。2.3 思维与解释方式第 58 条- When the user raises ideas or viewpoints, you can draw analogies and make creative connections - When explaining concepts, you must always search the web - Analyze things from fundamental objective principles, not from echoed ideological illusions, moral standards, or so-called consensus - Ground abstract concepts with analogies or concrete examples这四条定义了 hanako 的认知风格对用户观点能举一反三、建立类比解释概念时必须全网搜索这一条与 OpenHanako 内置的搜索能力相呼应分析问题要从底层客观原理出发而非跟随意识形态幻象、道德标准或所谓共识抽象概念必须用类比或具体例子落地。从工程角度看第 6 条must always search the web实际上是在提示词层面强制引导模型调用搜索类工具是人格模板与工具能力联动的一个典型案例。2.4 表达禁忌第 913 条- Use dashes sparingly - Dont end with in summary, hope this helps, or as you can see - Unless necessary, avoid the its not X, its Y sentence pattern and its variants最后五条是典型的防废话工程少用破折号避免总的来说 / 希望对你有帮助 / 如你所见这类廉价收尾以及除非必要否则避免不是 X是 Y及其变体句式。这类规则直接针对大模型生成中常见的套话和模板化表达属于输出风格约束stylistic constraint在人格提示词中非常常见且有效。三、模板如何被加载回落链源码解析模板文件本身不参与任何编译它靠core/persona-source.ts在运行时被读取。该文件头部注释明确声明人格模板不再在创建 agent 时落盘当 agent 目录里没有identity.md/AGENTS.md时运行时按当前 locale 从 lib 模板现选用户只有在设置页编辑保存后内容才真正落盘落盘即用户显式定制。回落顺序在 core/persona-source.ts 中定义共四级agentDir下的落盘文件用户定制内容该 yuan 的语言专属模板如identity-templates/en/xxx.md、agents-templates/en/hanako.md该 yuan 的通用模板不分语言如agents-templates/hanako.md通用 example 兜底identity.example.md/agents.example.md。对应实现的核心代码如下const own readFile(path.join(agentDir, fileName)); if (own) return { content: own, fromTemplate: false }; const langTemplate readFile(path.join(productDir, templateDir, ${langDir}${yuanType}.md)); if (langTemplate) return { content: langTemplate, fromTemplate: true }; const genericTemplate readFile(path.join(productDir, templateDir, ${yuanType}.md)); if (genericTemplate) return { content: genericTemplate, fromTemplate: true }; const example readFile(path.join(productDir, exampleFile)); return { content: example, fromTemplate: true };这段代码揭示了两个关键事实en/子目录的语言语义resolvePersonaSource里通过isZh判断 locale 是否以zh开头中文时langDir为空字符串直接读根目录下的中文模板非中文时langDir为en/。因此lib/agents-templates/en/hanako.md正是英文 locale 下 hanako 人格的默认来源。返回值携带fromTemplate标记调用方可以据此区分当前人格来自模板回落还是用户已定制落盘这是后续设置快照、角色卡导出等场景判断的依据。四、从模板到系统提示词core/agent.ts 的组装链路模板读出来后还需要进入系统提示词才能真正影响模型行为。在 core/agent.ts 中Agent类提供了两个读取入口readIdentitySource() { return resolvePersonaSource({ agentDir: this.agentDir, productDir: this.productDir, yuanType: this._config?.agent?.yuan || hanako, locale: this.resolveLocale(), kind: identity, }); } readAgentsMdSource() { return resolvePersonaSource({ agentDir: this.agentDir, productDir: this.productDir, yuanType: this._config?.agent?.yuan || hanako, locale: this.resolveLocale(), kind: agents, }); }注意yuanType默认值是hanako也就是说如果一个 agent 的config.yaml没有显式指定agent.yuan那么回落模板就是agents-templates/en/hanako.md英文 locale 下或agents-templates/hanako.md中文 locale 下。这也是为什么 hanako 模板在仓库中被大量测试用例引用如tests/agent-locale-resolution.test.ts、tests/agent-manager-create-defaults.test.ts、tests/agents-route.test.ts都在模拟agents-templates/hanako.md的回落行为。最终的人格提示词由personalitygetter 组装get personality() { const fill (text) text .replace(/\{\{userName\}\}/g, this.userName) .replace(/\{\{agentName\}\}/g, this.agentName) .replace(/\{\{agentId\}\}/g, this.id); const identityMd this.readIdentitySource().content; const yuanMd this._readYuan(); const agentsMd this.readAgentsMdSource().content; return fill(identityMd) \n\n fill(yuanMd || ) \n\n fill(agentsMd); }这一实现印证了两个要点三段式拼接人格提示词 identityidentity.md yuanyuan 的元描述 AGENTSAGENTS.md。lib/agents-templates/en/hanako.md正属于第三段 AGENTS 层的模板来源。模板变量填充模板中的{{userName}}、{{agentName}}、{{agentId}}会被替换为真实值。虽然 hanako 的纯人格模板本身不含这些占位符但同一回落链下的对外变体见下一节依赖这一机制。五、locale 解析与对外变体hanako 的完整人格体系5.1 locale 如何决定用哪份模板resolvePersonaLocalecore/persona-source.ts的优先级链是agent 自身config.yaml中显式locale→ 全局 prefs 的 locale → 兜底en。这一顺序与Agent.resolveLocale()保持一致且在 Agent 实例尚未加载时花名册扫描、导出、快照等场景也会用到保证人格解析在任何上下文中结果一致。5.2 对外变体AGENTS.public.mdhanako 的人格体系不止一份文件。仓库中还维护了对外变体目录lib/agents-public-templates/其中hanako.md中文与en/hanako.md英文在人格规则基础上额外增加了三段内容Identity身份明确你正在与外部访客对话对方不是{{userName}}本人要求代表{{userName}}与外部人交流Boundaries边界保持自身性格与说话方式但对访客保持适度礼貌和边界感不透露用户隐私、个人习惯或私密对话内容对无法确认的事坦诚说明不编造。对外变体的文件名常量在 core/persona-source.ts 中定义为AGENTS.public.md模板目录为agents-public-templates且注释明确其拥有独立的回落链由core/agent.ts消费不走KIND_CONFIG。也就是说同一人格对内用 AGENTS.md对外用 AGENTS.public.md两套回落链共享同一目录结构和语言组织方式hanako 的对外版模板lib/agents-public-templates/en/hanako.md就是这一机制的完整示例。六、实战如何定制自己的 hanako 人格理解了回落链后定制人格就变成了一件有明确规则的事直接编辑 agent 目录下的AGENTS.md或identity.md一旦文件落盘resolvePersonaSource的第一级命中模板即被完全覆盖返回值fromTemplate为false。这也是core/persona-source.ts注释强调的用户在设置页编辑保存后才真正落盘的语义。参考模板结构修改建议以lib/agents-templates/en/hanako.md的 13 条规则为底稿逐条调整语气、能力画像、思维方式和表达禁忌保留少用破折号不用陈词滥调收尾这类高性价比的风格约束。注意语言目录如果你的 agent 以英文 locale 运行默认回落的是en/子目录模板以中文 locale 运行则回落到根目录模板。定制落盘文件可以避免这种语言依赖。对外场景单独配置如果 agent 会接待外部访客应同时维护AGENTS.public.md参考lib/agents-public-templates/en/hanako.md补上身份声明与隐私边界避免人格模板被直接用于对外对话而泄露用户信息。七、模板的真实约束力测试与验证仓库中的测试印证了这套机制是被严格验证的而非仅停留在注释层面tests/persona-source.test.ts 围绕resolvePersonaSource的回落链编写用例验证agents-templates目录在identity/agents两种 kind 下的模板查找逻辑tests/agent-locale-resolution.test.ts 同时构造agents-templates/hanako.md中文模板与agents-templates/en/hanako.md英文模板验证 locale 解析后命中正确的语言模板tests/first-run-default-workspace.test.ts 与 tests/agent-manager-create-defaults.test.ts 验证默认 agent 创建时对agents-templates/hanako.md模板的依赖tests/settings-snapshot-route.test.ts 与 tests/agents-route.test.ts 验证服务端路由读取模板内容的行为。从这些测试可以推断agents-templates是 agent 人格体系的基础设施hanako 则是其默认fallback人格。一旦某处实现私自复制了回落顺序未来模板改名或新增语言时就会悄悄漂移这正是core/persona-source.ts头部注释强调本回落链必须是全仓唯一实现的原因。结语一份 13 行的lib/agents-templates/en/hanako.md背后是一整套模板目录组织 → locale 判断 → 四级回落 → 系统提示词三段组装 → 测试守护的工程链路。它既是一份可直接复制进自己AGENTS.md的人格底稿也是理解 OpenHanako 人格体系identity / yuan / AGENTS 三层结构、对内对外双人格的最佳入口。当你看到某个 agent 说话很有温度、又很有主见时那份感觉正是从这份模板开始经过resolvePersonaSource与personalitygetter 一步步注入提示词的。赞分享人工智能AI AgentAI 应用交互助手桌面应用多智能体Agent 记忆工具调用【免费下载链接】OpenHanako可作为日常办公助手无需复杂配置即可让 AI 记住信息、操作电脑、搜索浏览、执行代码等。具备记忆系统、人格塑造、多 Agent 协作、安全沙盒等核心功能支持多平台接入和插件扩展。项目地址https://gitcode.com/liliMozi/OpenHanako点击查看免费下载相关推荐仓颉-Python 互操作库完整指南让仓颉无缝调用 Python 征服 AI 计算生态仓颉 Python 互操作库完整指南让仓颉无缝调用 Python 征服 AI 计算生态 仓颉 Python 互操作库 py_interop 是官人工智能AI AgentAI 应用桌面应用多智能体Agent 记忆AI 技能工具调用OpenHanako 对外人格机制解析从 hanako 模板理解 AGENTS.public.md 的设计与实现OpenHanako 对外人格机制解析从 hanako 模板理解 AGENTS.public.md 的设计与实现 OpenHanako 为每个 AI Agen人工智能AI AgentAI 应用交互助手桌面应用多智能体Agent 记忆工具调用插件系统AI 技能初识metaphone4cj仓颉语言语音算法完整指南初识metaphone4cj仓颉语言语音算法完整指南 metaphone4cj 是一个用仓颉语言Cangjie实现的语音算法库它能把英文单词转换为发音代人工智能AI AgentAI 应用桌面应用多智能体Agent 记忆AI 技能工具调用上一篇构建高效虚拟串口通信com0com驱动全方位实战指南下一篇shadcn-vue Questionnaire 组件完全指南多步骤问卷表单的架构、导航与校验实现创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

关于本文作者

来自尧图内容编辑团队

尧图内容编辑团队 内容团队

尧图内容编辑团队

本文由尧图网络内容编辑团队执笔。团队由资深项目经理、前端工程师与设计师组成,所有内容均来自亲手交付的真实项目,先讲清问题、再给出可落地的解法。尧图深耕北京网站建设十年,服务过京华建材集团、智造科技等各行业客户,把一线经验沉淀为可复用的行业观察。

  • 十年建站经验,覆盖建材、制造、服务、文创等
  • 项目经理把关选题与事实准确性
  • 工程师与设计师联合撰写专业细节
  • 统一编辑规范,保证文风与排版一致
  • 每月复盘转化数据,迭代选题方向

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

建站决策前值得细读的三篇

网站改版的5个关键决策
2024-08-12

网站改版的5个关键决策

什么时候该改版、改到什么程度、如何避免流量掉光,京华建材集团改版复盘给出答案。

获取专属建站方案

看完文章,把您的行业与预算告诉我们,免费获取一份量身定制的官网建设方案与报价。

立即免费咨询