跳转到内容

附录 A:源码锚点索引与 Slash 命令速查

本附录汇总全书引用的所有关键源文件、类、函数,以及 Hermes Agent 的完整 Slash 命令列表。在阅读正文时,如果你需要快速定位某个组件在源码中的位置,这里就是你的导航地图。所有锚点基于 hermes-agent v0.8.0。


A.1 核心文件索引

Hermes Agent 的 227K 行代码分布在多个模块中。下面按功能分组列出最重要的文件——每个文件都至少在正文的一个章节中被深入分析过。

Agent 核心

文件行数主要内容详见
run_agent.py~10,600AIAgent 类、run_conversation() 主循环、IterationBudget第 4、5 章
model_tools.py~580工具编排层、_discover_tools()、handle_function_call()、同步-异步桥接第 10、27 章
toolsets.py~660Toolset 定义、_HERMES_CORE_TOOLS、resolve_toolset() 图展开第 11 章
hermes_state.py—SessionDB、SQLite + FTS5 全文检索第 16 章
hermes_constants.py—get_hermes_home()、display_hermes_home()、全局常量第 25 章

Agent 内部模块(agent/)

文件主要内容详见
agent/prompt_builder.pySystem Prompt组装、_scan_context_content() 注入检测第 6 章
agent/context_compressor.py默认上下文压缩器、有损摘要第 7 章
agent/context_engine.pyContextEngine 抽象基类第 7 章
agent/prompt_caching.pyAnthropic prompt caching 支持第 6 章
agent/auxiliary_client.py辅助 LLM 客户端(vision、summarization)第 8 章
agent/model_metadata.py模型上下文长度、token 估算第 8 章
agent/smart_model_routing.pychoose_cheap_model_route()、双模型路由第 8 章
agent/credential_pool.py多凭据池、least_used 轮换策略第 8、25 章
agent/anthropic_adapter.pyAnthropic Messages → OpenAI 格式转换第 8 章
agent/memory_manager.pyMemoryManager、sanitize_context() 净化第 17 章
agent/memory_provider.pyMemoryProvider 抽象基类第 17、28 章
agent/trajectory.py轨迹保存、convert_scratchpad_to_think()第 29 章
agent/display.pyKawaiiSpinner、tool preview 格式化第 24 章
agent/skill_commands.pySkill slash 命令、skills 目录扫描第 18 章

CLI 模块(hermes_cli/)

文件主要内容详见
hermes_cli/main.pyCLI 入口点、hermes 子命令系统第 2 章
hermes_cli/config.pyDEFAULT_CONFIG、OPTIONAL_ENV_VARS、配置迁移附录 B
hermes_cli/commands.pyCOMMAND_REGISTRY、CommandDef、SlashCommandCompleter第 24、28 章
hermes_cli/callbacks.py终端回调(clarify、sudo、approval)第 26 章
hermes_cli/setup.py交互式 setup wizard第 2 章
hermes_cli/skin_engine.py皮肤引擎、数据驱动 CLI 主题化第 24 章
hermes_cli/auth.pyProvider 凭据解析第 25 章
hermes_cli/model_switch.py/model 切换流水线第 8 章

工具模块(tools/)

文件主要内容详见
tools/registry.pyToolRegistry 单例、ToolEntry、tool_error()/tool_result()第 10、28 章
tools/approval.py危险命令检测第 26 章
tools/terminal_tool.py终端编排、后端选择第 12 章
tools/process_registry.py后台进程管理第 12 章
tools/file_tools.py文件读/写/搜索/patch第 13 章
tools/web_tools.pyWeb 搜索/提取(Parallel + Firecrawl)第 13 章
tools/browser_tool.pyBrowserbase 浏览器自动化第 14 章
tools/code_execution_tool.pyexecute_code 沙箱第 15 章
tools/delegate_tool.py子 Agent 委派第 15 章
tools/mcp_tool.pyMCP 客户端(~1050 行)第 14 章
tools/skills_tool.pySkill CRUD 操作第 18 章
tools/memory_tool.pyMemory 读/写第 17 章
tools/session_search_tool.pySession FTS5 搜索第 19 章
tools/environments/base.pyBaseEnvironment 抽象基类、ProcessHandle 协议第 12、28 章

Gateway 模块(gateway/)

文件主要内容详见
gateway/run.pyGatewayRunner、消息分发、slash 命令处理第 21 章
gateway/session.pySessionStore、会话持久化第 21 章
gateway/platforms/base.pyBasePlatformAdapter、MessageEvent、消息生命周期第 22、28 章
gateway/config.pyPlatform 枚举、PlatformConfig第 21 章
gateway/status.py运行时状态、scoped lock第 25 章

RL 与训练

文件主要内容详见
batch_runner.pyBatchRunner、并行轨迹生成第 29 章
toolset_distributions.pyDISTRIBUTIONS、概率化 Toolset 采样第 29 章
rl_cli.pyRL 专用 CLI第 29 章
environments/hermes_base_env.pyHermesAgentBaseEnv(Atropos 集成)第 29 章
environments/agent_loop.pyHermesAgentLoop、AgentResult第 29 章
environments/tool_context.pyToolContext(Reward 函数工具访问)第 29 章

A.2 关键类索引

类名文件描述
AIAgentrun_agent.py核心 Agent 类,10,594 行,编排主循环
ToolRegistrytools/registry.py工具注册表单例,管理 schema/handler/dispatch
ToolEntrytools/registry.py工具条目数据结构(10 个 slot)
IterationBudgetrun_agent.py迭代预算控制,防止无限循环
ContextEngineagent/context_engine.py上下文引擎抽象基类(可插拔)
ContextCompressoragent/context_compressor.py默认上下文压缩器(有损摘要)
MemoryManageragent/memory_manager.py记忆编排器,管理多 provider
MemoryProvideragent/memory_provider.py记忆提供者抽象基类
BaseEnvironmenttools/environments/base.py终端后端抽象基类(统一 execute 流程)
ProcessHandletools/environments/base.py进程句柄协议(duck type)
_ThreadedProcessHandletools/environments/base.pySDK 后端的进程适配器
BasePlatformAdaptergateway/platforms/base.py平台适配器基类(15 个平台共用)
MessageEventgateway/platforms/base.py规范化入站消息数据类
SendResultgateway/platforms/base.py消息发送结果
GatewayRunnergateway/run.py网关运行器,编排多平台消息分发
SessionDBhermes_state.pySQLite + FTS5 会话数据库
HermesCLIcli.pyCLI 编排器,Rich + prompt_toolkit
CommandDefhermes_cli/commands.pySlash 命令定义(frozen dataclass)
SkinConfighermes_cli/skin_engine.py皮肤配置数据类
BatchRunnerbatch_runner.py批量轨迹生成器
HermesAgentBaseEnvenvironments/hermes_base_env.pyAtropos RL 环境基类
HermesAgentLoopenvironments/agent_loop.py可复用多轮 Agent 引擎
AgentResultenvironments/agent_loop.pyAgent 循环执行结果
ToolContextenvironments/tool_context.pyReward 函数全工具访问句柄

A.3 关键函数索引

函数文件描述
run_conversation()run_agent.py核心会话循环,while 迭代 + tool call
chat()run_agent.py简化接口,返回最终响应字符串
handle_function_call()model_tools.py工具调用分发到 registry.dispatch()
get_tool_definitions()model_tools.py构建 OpenAI-format tool schemas
_discover_tools()model_tools.py触发所有工具文件的 import-time 注册
resolve_toolset()toolsets.pyToolset 图展开(递归解析 includes)
resolve_command()hermes_cli/commands.py命令名/别名 → CommandDef 查找
registry.register()tools/registry.py工具自注册(import-time 调用)
registry.dispatch()tools/registry.py工具执行分发(含异步桥接和异常捕获)
registry.get_definitions()tools/registry.py获取 tool schemas(含 check_fn 过滤)
choose_cheap_model_route()agent/smart_model_routing.py双模型路由决策
_scan_context_content()agent/prompt_builder.pyPrompt injection 检测
sanitize_context()agent/memory_manager.py记忆内容净化
save_trajectory()agent/trajectory.py轨迹 JSONL 追加写入
convert_scratchpad_to_think()agent/trajectory.py推理标签格式转换
sample_toolsets_from_distribution()toolset_distributions.py概率化 toolset 采样
tick()cron/scheduler.py定时调度心跳
_run_async()model_tools.pysync→async 桥接(所有 async 工具的入口)
execute()tools/environments/base.py统一的命令执行流程
_wrap_command()tools/environments/base.py命令包装(snapshot + CWD tracking)
truncate_message()gateway/platforms/base.py消息长度分段(UTF-16 安全)
handle_message()gateway/platforms/base.py入站消息生命周期管理

A.4 Slash 命令完整列表

以下列表从 hermes_cli/commands.py 的 COMMAND_REGISTRY(行 56-163)完整提取。每个命令都标注了适用范围(CLI / Gateway / 全部)和别名。

Session 类

命令别名范围描述
/new/reset全部开始新会话(清空历史 + 新 session ID)
/clear—CLI清屏并开始新会话
/history—CLI显示对话历史
/save—CLI保存当前对话
/retry—全部重试最后一条消息
/undo—全部撤销最后一轮对话
/title—全部设置当前会话标题
/branch/fork全部分支当前会话(探索不同路径)
/compress—全部手动压缩对话上下文
/rollback—全部列出或恢复文件系统检查点
/stop—全部终止所有后台进程
/approve—Gateway批准挂起的危险命令
/deny—Gateway拒绝挂起的危险命令
/background/bg全部在后台运行 prompt
/btw—全部临时侧问题(不保存,不用工具)
/queue/q全部排队 prompt(不中断当前任务)
/status—全部显示会话信息
/sethome/set-homeGateway设置当前聊天为 home channel
/resume—全部恢复先前命名的会话
/restart—Gateway优雅重启 gateway(drain 活跃运行)

Configuration 类

命令别名范围描述
/config—CLI显示当前配置
/model—全部切换当前会话的模型
/provider—全部显示可用 provider 和当前 provider
/personality—全部设置预定义人格
/statusbar/sbCLI切换上下文/模型状态栏
/verbose—CLI*循环 tool progress 显示级别
/yolo—全部切换 YOLO 模式(跳过审批)
/reasoning—全部管理推理 effort 和显示
/fast—全部切换 Fast/Priority 处理模式
/skin—CLI显示或切换显示皮肤/主题
/voice—全部切换语音模式

*/verbose 标记为 cli_only,但设置 gateway_config_gate: "display.tool_progress_command" 后也可在 Gateway 中使用。

Tools & Skills 类

命令别名范围描述
/tools—CLI工具管理:list/disable/enable
/toolsets—CLI列出可用 toolset
/skills—CLI搜索、安装、检查、管理 Skills
/cron—CLI管理定时任务
/reload—全部重新加载 .env 变量
/reload-mcp/reload_mcp全部重新加载 MCP 服务器配置
/browser—CLI通过 CDP 连接 Chrome 浏览器工具
/plugins—CLI列出已安装插件及状态

Info 类

命令别名范围描述
/commands—Gateway浏览所有命令和 Skills(分页)
/help—全部显示可用命令
/usage—全部显示 token 用量和速率限制
/insights—全部显示使用分析
/platforms/gatewayCLI显示 gateway/消息平台状态
/paste—CLI检查剪贴板图片并附加
/image—CLI附加本地图片文件
/update—Gateway更新 Hermes Agent 到最新版本
/profile—全部显示活跃 profile 名和 home 目录
/debug—全部上传调试报告

Exit 类

命令别名范围描述
/quit/exit, /qCLI退出 CLI

A.5 入口点速查

Hermes Agent 有六个独立的入口点,全部复用同一个 AIAgent 核心和工具注册表。

入口命令源文件用途
CLIhermeshermes_cli/main.py交互式终端
Gatewayhermes gateway startgateway/run.py消息平台服务
ACPhermes-acpacp_adapter/entry.pyVS Code/Zed/JetBrains
Batchpython batch_runner.pybatch_runner.py批量轨迹生成
MCP Serverpython mcp_serve.pymcp_serve.pyMCP 协议服务器
RLpython rl_cli.pyrl_cli.pyRL 训练工作流

A.6 工具注册表

以下是 _HERMES_CORE_TOOLS(toolsets.py:31-63)中的核心工具和各 toolset 中的专用工具汇总。

核心工具(所有平台默认启用)

工具名Toolset描述
web_searchweb网络搜索
web_extractweb网页内容提取
terminalterminal终端命令执行
processterminal后台进程管理
read_filefile文件读取
write_filefile文件写入
patchfile模糊匹配补丁
search_filesfile文件/内容搜索
vision_analyzevision图像分析
image_generateimage_gen图像生成
skills_listskills列出 Skills
skill_viewskills查看 Skill 内容
skill_manageskills创建/编辑/删除 Skill
browser_navigatebrowser浏览器导航
browser_snapshotbrowser浏览器截图
browser_clickbrowser浏览器点击
browser_typebrowser浏览器输入
browser_scrollbrowser浏览器滚动
browser_backbrowser浏览器后退
browser_pressbrowser浏览器按键
browser_get_imagesbrowser获取页面图片
browser_visionbrowser浏览器视觉分析
browser_consolebrowser浏览器控制台
text_to_speechtts文本转语音
todotodo任务规划和跟踪
memorymemory持久化记忆读写
session_searchsession_search历史会话搜索
clarifyclarify向用户提出澄清问题
execute_codecode_executionPython 沙箱执行
delegate_taskdelegation子 Agent 委派
cronjobcronjob定时任务管理
send_messagemessaging跨平台消息发送

RL 专用工具

工具名描述
rl_list_environments列出可用 RL 环境
rl_select_environment选择 RL 环境
rl_get_current_config获取当前 RL 配置
rl_edit_config编辑 RL 配置
rl_start_training启动 RL 训练
rl_check_status检查训练状态
rl_stop_training停止训练
rl_get_results获取训练结果
rl_list_runs列出训练运行
rl_test_inference测试推理