第三章:Hermes智能体,基础配置

Hermes Agent 的强大之处不仅在于其核心功能,更在于其高度可配置性,允许用户根据具体需求精细调整智能体的行为、能力和交互方式。
本章将深入探讨 Hermes Agent 的配置体系,包括核心配置文件、人格定义以及上下文文件的使用。
3.1 配置文件详解
Hermes Agent 的配置主要通过两个文件进行管理:config.yaml 和 .env。这两个文件协同工作,分别负责不同类型的配置信息。
3.1.1 config.yaml 文件
config.yaml 是 Hermes Agent 的主要配置文件,采用 YAML 格式,用于定义 Agent 的通用设置和功能模块的详细参数。它涵盖了 LLM 提供商、工具集、消息网关以及其他辅助功能的配置。
常见的配置项包括:
- LLM 提供商和模型:指定 Agent 使用的大型语言模型及其提供商,例如 Nous Portal、OpenRouter、OpenAI 等。
- 工具启用与禁用:控制 Agent 可以访问和使用的内置工具,如文件操作、Shell 执行、网络请求等。
- 消息网关设置:配置 Agent 与各种消息平台(如 Telegram、Discord、飞书等)的连接参数,包括认证信息、连接模式和用户策略等。
- 其他辅助功能:例如,Kanban 调度器的行为、内存系统的参数等。
用户可以通过 hermes config set <key> <value> 命令来修改单个配置项,并通过 hermes config list 查看当前配置。
3.1.2 .env 文件
.env 文件用于存储敏感信息和环境变量,例如 API 密钥、认证凭证等。将这些敏感信息与 config.yaml 分开存放,有助于提高安全性,并方便在不同环境中部署时进行管理。
例如,在配置飞书网关时,FEISHU_APP_ID 和 FEISHU_APP_SECRET 等敏感信息通常会存储在 ~/.hermes/.env 文件中。
3.2 人格与 SOUL.md
Hermes Agent 引入了 SOUL.md 文件来定义智能体的人格 (Personality) 和默认语音 (Default Voice)。这个文件允许用户为 Agent 设定一个全局的、一致的行为模式和沟通风格,使其在与用户交互时展现出特定的“个性”。
SOUL.md 的作用类似于 Agent 的“灵魂”文件,它通过自然语言描述 Agent 的角色、目标、限制、偏好等,从而影响 Agent 在不同情境下的响应和决策。例如,可以定义 Agent 是一个严谨的分析师、一个富有创意的助手,或者一个幽默的伙伴。这种机制使得 Agent 不仅仅是一个执行命令的工具,更是一个具有独特风格和长期记忆的智能实体。
通过配置 SOUL.md,用户可以:
- 塑造 Agent 的沟通风格:使其语言表达更符合特定场景或用户期望。
- 引导 Agent 的行为倾向:使其在处理任务时更倾向于某种策略或价值观。
- 增强用户体验:提供一个更具沉浸感和一致性的交互体验。
3.3 上下文文件
上下文文件 (Context Files) 是 Hermes Agent 中用于为特定对话或项目提供背景信息的重要机制。这些文件能够塑造每一次对话,确保 Agent 在处理任务时能够充分理解相关的项目背景、需求和约束。
上下文文件通常是 Markdown 格式的文本文件,其中包含了项目描述、任务目标、关键信息、参考资料等。当 Agent 启动一个新会话或处理一个特定项目时,它会加载并参考这些上下文文件,从而使其能够:
- 理解项目范围:明确任务的边界和目标。
- 获取必要信息:无需用户重复提供背景知识。
- 保持决策一致性:在整个项目生命周期中,Agent 的行为和输出都能与预设的上下文保持一致。
例如,用户可以创建一个 project_brief.md 文件,其中包含项目的详细需求和技术栈,当 Agent 处理与该项目相关的任务时,它会根据 project_brief.md 中的信息来生成更准确、更相关的响应和行动。这种机制有效地解决了传统 Agent 在缺乏上下文时容易“失忆”或给出泛泛回答的问题。