术语表
核心概念
Agent(智能体)
能够自主执行任务、调用工具、与用户交互的 AI 系统。在 Hermes 中,AIAgent 类(run_agent.py)是核心实现。
Tool(工具)
Agent 可以调用的原子能力。每个工具通过 registry.register() 注册,拥有 JSON Schema 定义和 handler 函数。例如:terminal(执行命令)、file_read(读取文件)、web_search(网络搜索)。
Toolset(工具集)
工具的逻辑分组。支持组合和递归包含。例如 web 工具集包含 web_search 和 web_extract。通过 toolsets.py 定义。
Skill(技能)
以 Markdown 形式表达的指令集,指导 Agent 如何完成特定任务。与工具不同,技能不需要自定义 Python 代码,通过现有的工具组合实现。存储在 ~/.hermes/skills/ 或 skills/ 目录。
Session(会话)
一次完整的对话上下文,包含所有消息历史。通过 SessionDB(SQLite)持久化,支持 FTS5 全文搜索。
Profile(配置档案)
完全隔离的 Agent 实例。每个 Profile 有独立的配置、API 密钥、记忆、会话、技能等。通过 HERMES_HOME 环境变量实现隔离。
架构组件
Prompt Builder(提示词构建器)
agent/prompt_builder.py 中的系统提示词组装引擎。将身份、上下文文件、技能索引、模型指令等多个来源组合成最终的 system prompt。
Context Compressor(上下文压缩器)
agent/context_compressor.py 中的上下文管理组件。当对话超出模型上下文窗口时,通过三区策略(保护头部 → 保护尾部 → LLM 压缩中间)自动压缩。
Memory Provider(记忆提供者)
持久化记忆的后端实现。支持内置(MEMORY.md/USER.md)和外部(Honcho、Mem0)Provider。
Gateway(网关)
gateway/run.py 中的消息路由服务。连接多个消息平台(Telegram、Discord 等),将消息转发给 Agent 处理。
Platform Adapter(平台适配器)
gateway/platforms/ 中实现特定消息平台接口的类。继承 BasePlatformAdapter,实现 connect()、disconnect()、send() 等方法。
TUI(终端用户界面)
基于 Ink (React) 的富终端界面。采用双进程架构:Node.js 渲染 UI,Python 处理 Agent 逻辑,通过 JSON-RPC over stdio 通信。
MCP(Model Context Protocol)
Anthropic 提出的标准协议,允许外部工具服务器与 AI 模型集成。Hermes 通过 tools/mcp_tool.py 实现 MCP 客户端。
Delegate(委托)
通过 tools/delegate_tool.py 创建隔离的子 Agent 执行子任务。子 Agent 拥有独立的上下文、工具集和预算。
技术术语
FTS5
SQLite 的全文搜索引擎。用于会话消息的全文搜索。
WAL Mode
Write-Ahead Logging。SQLite 的并发访问模式,允许多个读者和一个写者同时操作。
Prompt Caching
Anthropic 的提示缓存机制。通过在特定位置设置 cache breakpoint,避免重复传输相同的上下文,最高降低 75% 成本。
NormalizedResponse
Hermes 定义的统一响应格式。所有模型适配器将各自格式转换为 NormalizedResponse,使核心循环与具体 Provider 解耦。
AST Scanning
抽象语法树扫描。tools/registry.py 使用 AST 分析工具文件中的 registry.register() 调用,无需 import 模块即可发现工具。
Progressive Disclosure(渐进式披露)
按需加载策略。技能系统采用三层披露:Tier 1 只返回元数据(省 token),Tier 2/3 按需返回完整内容。
Iteration Budget(迭代预算)
限制 Agent 在一次对话中最多执行多少轮工具调用。默认 90 轮,防止无限循环。
Grace Call(宽限调用)
迭代预算用尽后的最后一次 API 调用机会。允许 Agent 在预算耗尽时生成最终回复。
SOUL.md
~/.hermes/SOUL.md 文件,定义 Agent 的个性化身份。会被注入到系统提示词中。
KawaiiSpinner
CLI 中的动画提示组件。在等待 API 响应时显示可爱的表情动画。
Skin(皮肤)
CLI 的视觉主题。通过 hermes_cli/skin_engine.py 管理,支持自定义颜色、spinner 动画、品牌文字等。
HERMES_HOME
Agent 的主目录。默认为 ~/.hermes,Profile 模式下为 ~/.hermes/profiles/<name>。所有状态文件(配置、会话、记忆、技能)都存储在此目录下。
COMMAND_REGISTRY
hermes_cli/commands.py 中定义的斜杠命令注册表。所有 CLI 和 Gateway 的命令处理都从这个单一数据源派生。