2026-10-09 校注:文中部署目录、服务、版本和验收计数为各段标注日期的历史记录;当前可验证状态见 current-status-2026-10-09,本次未复跑历史测试或读取私有健康/对话数据。

Humon 同回复结构化自述证据 v1

目的

此前 Hermes 当前消息中的明确状态自述,要等下一次五分钟采样读取会话后才进入 Humon;Alaya 正在生成的这一条回复仍可能看到 direct_inner_evidence=false。本层把延迟缩短到同一回复,同时坚持“最人类”不等于假装读心:只接受保守、明确、当前时态的第一人称状态表达,其他情况宁可漏掉也不猜。

流程

授权的当前 Hermes 消息
  → 共享保守解析器 humon_self_report.py
  → 当前回复内的 bounded direct evidence
  → bearer + loopback + exact-schema POST
  → observations + ground_truth_reports
  → 后续自然融合继续使用仍在 TTL 内的结构化证据

插件仍没有独立发送能力。当前入站消息只证明本回复可达;任何帮助提示只能自然融入这条回复。

解析与信任边界

  • sender/platform allowlist 在解析和网络访问之前检查;未授权消息既不解析也不访问 Humon。
  • Hermes 实时钩子与 Hermes/Codex 延迟读取器共用 humon-self-report-v2,避免两套语义漂移。
  • 解析器只产出 dimension、value、label、confidence、parser_version、observed_at 与不可逆 turn reference。
  • 指令/示例/正则讨论、代码、过去时、否定、疑问和超长输入 fail-closed;假阴性优先于误写入。
  • POST /api/ingest/reply-evidence 固定为 ${LOCALIP}:8657,只接受 JSON、最大 4096 bytes、Bearer 鉴权与精确字段集合。
  • HTTP payload 没有 raw text 字段;额外字段会拒绝整次请求。服务端时间成为写入时间。
  • 私有配置 ~/.config/humon/hermes_context.json 为 owner-only mode 600;密钥不进入日志、上下文或 gbrain。
  • 解析、写入或感知读取失败都 fail-open,不阻断 Hermes 正常回答。

当前回复语义

当前消息命中后,插件把 current_turn_direct=true 与对应维度加入临时上下文。低 energy 可以给出 offer-rest,高 stress 可以给出 reduce-load,但只允许在当前回复中使用。

仍在 TTL 内的旧直接报告可以保持语气与状态连续性,但插件强制 action=none。因此“曾经直接说过”不会变成后台提醒或另发消息的授权。自动解析写入 ground truth/observation,不创建 feedback 行;只有用户主动点击或明确 API 纠正才属于 feedback。

持久化与跨读取器防重

正常情况下,共享解析器用规范化消息与五分钟槽产生同一个不可逆 turn reference:

  • ground_truth_reports 的部分唯一索引为 (user, source_ref, dimension);
  • observation fingerprint 对显式自述忽略 source/timestamp,以 turn reference + dimension 去重;
  • 重试和延迟会话读取不会把一条人类陈述学习两次。

极少数消息可能跨五分钟哈希边界,使实时钩子与延迟读取器得到不同 reference。为封住此边界,hermes-inline-explicit 与 hermes-explicit-self-report 两个来源之间增加 120 秒事务化语义去重:

  • 只比较同 user、dimension、value、label/parser;
  • BEGIN IMMEDIATE 将检查与写入串行化;
  • 规则只跨这两个读取器,不合并同一读取器中的独立事件;
  • 121 秒后的相同再次报告仍保留为新事件。

已保存的结构化 observation 会在下一次自然融合中重载,所以即使会话读取器暂时不可用,直接证据仍能按维度 TTL 延续。

权威部署

  • 开发镜像:C:\Users\yunlu\AppData\Local\hermes\humon
  • 正式运行:${HOME}/.hermes/profiles/alaya/humon
  • Alaya 插件:${HOME}/.hermes/profiles/alaya/plugins/humon-context
  • 插件版本:1.3.0 首发;当前 1.4.0(状态转折与绝对 TTL)
  • WebUI:humon-webui.service
  • Gateway:hermes-gateway-alaya.service
  • 回滚点:${HOME}/.hermes/backups/humon-v3-pre-inline-reply-evidence-20260717-005951(目录 700;数据库/配置 600)

2026-07-17 验证证据

  • 开发镜像与正式目录均 compileall + 56 项单元测试通过;本轮文件 Ruff 定向检查通过。
  • 开发、正式、Humon 集成插件与 Alaya 插件副本逐文件一致。
  • 两项服务 active;Alaya 加载 humon-context 1.3.0。
  • 错误 Bearer 返回 403,ground truth/observation 计数前后不变。
  • 真实 PluginManager 的安全普通消息探针:授权 Humon block=1,未授权=0,current_turn_direct=false,in_reply_action=none。
  • 探针前后 ground_truth=0、feedback=0,安全探针原文不在 SQLite dump 中;没有制造测试性疲惫/压力报告。
  • 最新 natural v3=55、duplicate natural slots=0、privacy_events=0;历史竞态审计行 auto-race-deduped=1 保留。
  • quality=operational-collecting、operational_ready=true、longitudinal_ready=false、baseline_ready=false、delivery_ready=false。
  • 主动投递仍保持关闭;本层不改变任何长期放行门槛。

1.4.0 状态转折扩展

同回复接口已升级为 humon-inline-evidence-v2,可同时承载 reports 与 transitions。明确“不累了”等转折先撤销旧状态并回到 unknown,不猜测新的中性数值;随后若当前消息另有独立明确自报,再由新报告生效。直接证据以原始 observed_at 使用不可续期的维度 TTL,派生 mood 继承来源寿命。70 项开发/正式测试与真实 PluginManager 安全探针通过。详见 humon-explicit-state-transition-v1。

下一步

  1. 只从真实、自然出现的明确自述观察解析精度和帮助效果,不为验收制造报告。
  2. 持续检查同回复可见性、延迟读取器去重、TTL 延续与假阳性为零。
  3. 让自然采样、真实 ground truth、shadow labels 与个人基线按原门槛积累。
  4. 在长期证据不足前,保持 delivery disabled 与 unknown-first。

关联

1.5.0 精度保真扩展

同回复结构升级为 humon-inline-evidence-v3。报告必须显式携带 numeric|ordinal|categorical:只有用户给出的 1–10 可为 numeric;定性自述以 low/high ordinal 穿过边界,可影响当前回复动作,但不能伪装成 2/10 或 8/10。插件 1.5.0 使用 humon-hermes-context-v2 并注入 value kind。真实安全探针授权=1、未授权=0、写入增量=0。详见 humon-direct-evidence-precision-v1。