hermes agent人设定制有五种路径:一、修改cli-config.yaml中system_prompt实现全局设定;二、用环境变量动态注入,适配多环境;三、在skill类中嵌入局部system_prompt;四、通过memory hub持久化用户偏好人设;五、利用platform bridge在im层注入会话级提示词。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

如果您希望Hermes Agent在交互中呈现特定语气、专业身份或行为风格,但发现默认响应缺乏一致性或人设感,则很可能是由于System Prompt未被有效注入或配置覆盖不足。以下是实现人设定制的多种可行路径:
一、直接修改CLI配置文件中的system_prompt字段
该方式适用于希望全局统一设定基础人设的用户,所有会话均继承该提示词,无需每次重复声明。配置生效后,Agent将严格依据该提示词约束自身角色边界与表达逻辑。
1、打开项目根目录下的cli-config.yaml文件。
2、在model配置块下新增或修改system_prompt字段,格式如下:
3、保存文件并重启Hermes Agent服务以使变更生效。
4、验证是否生效:向Agent发送“你是谁?”,确认其回应内容与设定的人设完全一致。
5、若未生效,请检查日志输出中是否存在system_prompt overridden by skill context类警告,表明某项技能模块强制覆盖了该字段。
二、通过环境变量动态注入system_prompt
该方式适合需在不同部署环境(如开发/测试/生产)间快速切换人设,或配合CI/CD流程自动化注入的场景。环境变量优先级高于配置文件,可实现运行时覆盖。
1、编辑~/.hermes/.env文件,在末尾新增一行:
2、确保该变量名与当前所用模型提供商的命名规范匹配,例如OpenAI后端识别OPENAI_SYSTEM_PROMPT,而Ollama后端识别OLLAMA_SYSTEM_PROMPT。
3、执行hermes restart命令重新加载环境变量。
4、使用hermes config get model.system_prompt命令确认当前实际加载值。
5、注意:部分模型提供商(如Anthropic)不支持system_prompt字段,此时该变量将被忽略且无报错提示。
三、在Skill定义中嵌入局部system_prompt
该方式用于为特定技能赋予专属人格,例如为“GitHub代码审查”技能绑定严谨审慎的专家语气,而“日常提醒”技能则采用轻松亲切的口吻。人设仅在该技能激活时生效,不影响其他功能。
1、进入skills/目录,定位目标技能的Python文件(如github/code_review.py)。
2、在对应Skill类的__init__方法中,查找或添加self.system_prompt属性赋值语句。
3、设置字符串值,例如"你是一位拥有10年开源经验的资深GitHub维护者,回答必须简洁、精准、带具体行号引用"。
4、保存文件后执行hermes skill reload github.code_review命令热重载该技能。
5、触发该技能(如发送“帮我审查这个PR”),观察响应风格是否符合嵌入的人设描述。
四、利用Memory Hub持久化人设偏好
该方式适用于希望Agent从历史交互中自主归纳用户偏好人设,并在后续对话中持续强化该设定。无需手动编写提示词,依赖记忆系统自动提取与回填。
1、确保~/.hermes/MEMORY.md文件存在且可写。
2、向Agent连续三次以自然语言明确表达人设要求,例如:“请以后都用技术文档风格回复我”“保持客观中立,避免使用感叹号”“所有解释必须附带Linux命令示例”。
3、等待Agent在完成本轮会话后自动生成personality_summary记忆节点。
4、查看~/.hermes/MEMORY.md末尾是否新增形如[PERSONALITY] technical_doc_style, neutral_tone, cli_example_required的标记行。
5、关键限制:该机制仅在启用skill_gen.log记录且LOG_LEVEL ≥ INFO时触发,否则不会生成人设记忆。
五、通过Platform Bridge在IM层注入会话级system_prompt
该方式适用于多平台接入场景,允许在Telegram、飞书等不同通讯渠道中为同一Agent实例配置差异化人设。消息经由Bridge转发前实时插入提示词,不修改底层配置。
1、编辑对应平台的桥接配置文件,例如platforms/feishu/config.yaml。
2、在bridge区块下添加session_system_prompt字段,值为字符串或Jinja2模板表达式。
3、若使用模板,可引用上下文变量,例如"你正在与{{ user.department }}团队沟通,请使用该部门惯用术语"。
4、重启平台桥接服务:systemctl restart hermes-platform-feishu。
5、在飞书会话中发送任意消息,检查journalctl -u hermes-platform-feishu -n 20日志中是否出现injecting session-level system prompt记录。











