Hermes Agent行为数据接入Anomaly检测系统有四种集成路径:一、ACP协议JSON Schema编码;二、CliAcpSessionPool内存快照编码;三、SignalR消息流Protobuf编码;四、MEMORY/USER.md文件变更Git diff编码。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

如果您在使用 Hermes Agent 过程中需要对运行时产生的日志、会话轨迹或工具调用序列进行异常检测,但缺乏结构化数据表征能力,则可能是由于原始行为流未经过统一语义编码。以下是将 Hermes Agent 行为数据接入 Anomaly 检测系统的多种集成路径:
一、基于 ACP 协议消息体的 JSON Schema 编码
该方法利用 Hermes Agent 与客户端通信所遵循的 ACP(Agent Communication Protocol)标准格式,提取 session/prompt、session/new 等关键请求/响应载荷,将其映射为固定字段的 JSON 结构,供下游异常识别模型消费。此方式无需修改 Hermes 内核,仅需在 StdioAcpTransport 层拦截并序列化标准输入输出流。
1、定位 StdioAcpTransport 实例,在其 writeAsync 和 readAsync 方法前后插入日志钩子。
2、对每个 ACP 消息对象执行字段裁剪:保留 method、id、params、timestamp、session_id、model_used、tool_calls 四个核心字段。
3、将裁剪后对象按行写入 /var/log/hermes/anomaly_input.jsonl,确保每行为合法 JSON 对象且无换行符嵌套。
4、配置 Anomaly 系统监听该文件路径,启用 JSONL 流式解析器自动加载新记录。
二、通过 CliAcpSessionPool 注入内存快照编码器
该方法依托 Hermes 的会话池复用机制,在每次会话生命周期结束(session/close)时,从内存中提取完整执行上下文快照,并以自定义二进制编码格式持久化,适配 Anomaly 系统对低延迟、高吞吐向量输入的需求。编码过程包含行为指纹哈希与稀疏状态压缩。
1、继承 CliAcpSessionPool 类,重写 onSessionClosed 方法。
2、在该方法中调用 HermesGrain 提供的 getSessionStateSnapshot(sessionId) 接口获取原始状态对象。
3、使用 SHA-256 对 tool_calls 序列、memory_access_pattern、error_stack_trace 三字段拼接后哈希,生成 behavior_fingerprint_v2 字段。
4、将哈希值与执行耗时、token_count、retry_count 组合成 8 字节定长结构体,写入共享内存段 /dev/shm/hermes_anomaly_001。
5、Anomaly 客户端进程以 mmap 方式挂载该段,每 200ms 轮询一次最新偏移位置并解码。
三、前端 SignalR 消息流实时编码桥接
该方法面向已启用 SignalR 实时通道的 Hermes 部署场景,直接复用前端与后端之间传输的 ExecutorAvatar 消息流,将用户指令、Agent 响应、工具调用结果三类事件统一转换为带时间戳和来源标识的归一化事件包,作为 Anomaly 系统的轻量级输入源。
1、在 SignalR Hub 中注册 OnMessageReceived 事件处理器,过滤 message_type 包含 "executor:hermes" 的所有 HubMessage。
2、解析 payload 字段,识别出 action_type(如 "prompt_submit"、"tool_executed"、"error_reported")并标准化为枚举值。
3、提取 client_ip、user_id、executor_id、trace_id 四个元数据字段,与 action_type 合并为键值对字典。
4、将字典序列化为 Protobuf 格式,通过 RabbitMQ exchange named anomaly.ingest.v3 发布到消息队列。
5、Anomaly 消费者绑定该 exchange,启用 auto-ack 并启用 prefetch=10,确保事件处理顺序性与低延迟。
四、MEMORY.md 与 USER.md 文件变更事件编码
该方法聚焦 Hermes Agent 的持久化记忆机制,将 MEMORY.md 和 USER.md 文件的内容增量变化建模为状态转移事件,用于检测记忆污染、偏好漂移或越权访问等高级异常模式。编码器以 Git diff 语义为基础,生成可比对的记忆变更向量。
1、在 HermesPlatformConfiguration 中启用 fs.watch 监控 /home/lighthouse/.hermes/memory/ 目录下 MEMORY.md 与 USER.md 的 change 事件。
2、每次文件变更触发时,调用 git diff --no-index /dev/null {file} 获取首次创建差异,或 git diff {prev_commit} {current_hash} 获取增量差异。
3、提取 diff 输出中的 + 行(新增)、- 行(删除)、@@ 行(上下文锚点),分别统计关键词密度:如 "password"、"api_key"、"ssh_private" 出现在 + 行则标记为 HIGH_RISK_INSERTION。
4、将统计结果封装为 MemoryDeltaEvent 结构,包含 file_name、delta_size、risk_score、keyword_hits 字段。
5、将结构体 JSON 序列化后写入本地 Unix Domain Socket /run/hermes-anomaly.sock,由 Anomaly 守护进程监听读取。











