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

Humon 直接证据精度保真 v1

为什么需要这一层

Humon 的目标不是把模糊的人类语言包装成精确测量,而是持续知道“我们究竟知道到什么粒度”。此前定性自述虽然来自真实的人,但低能量、高压力等表达曾被内部代表值 2/8 直接带入状态、ground truth、统计与显示链路,存在把“低/高”误写成“2/10 或 8/10”的风险。那会制造并不存在的测量精度,并可能污染校准、个人基线和长期趋势。

1.5.0 把证据内容与测量精度同时作为一等数据:定性表达仍能帮助当前回复,但永远不能冒充用户给出的 1–10 分数。

精度语义

value_kind何时成立对外值可以做什么禁止做什么
numeric用户明确给出 1–10原始整数ground truth、满足时效/置信门槛后的校准、数值基线/均值/趋势不得从形容词推导
ordinal用户只表达定性低/高`lowhigh`作为直接证据、调整当前回复语气、触发同回复的休息/减负提示
categorical用户明确表达 mood 标签受限标签直接 mood 证据不得映射成分数
derived-labelmood 由新鲜的 energy/focus/stress 直接证据派生受限标签仅作为带来源 TTL 的状态标签不是独立 ground truth;不得比来源活得更久

SQLite 的 energy/focus/stress 数字列暂时保留 2/8 等内部代表值,以兼容已有阈值和动作策略;任何读取者必须先检查 dimension_value_kinds 与 dimension_bands。内部代表值不是用户分数。

端到端契约

  • humon_self_report.py:解析器 v3;显式 1–10 才输出 numeric,定性状态输出 ordinal low/high,mood 输出 categorical。
  • humon-inline-evidence-v3:跨 Hermes 边界严格校验 value/value_kind/band 的一致性;额外字段整包拒绝。
  • ground truth v4:ordinal 的 numeric_value=NULL、calibration_eligible=false,并记录不含原话的 precision 元数据。
  • state metadata schema 4:为已知内在维度保存 dimension_value_kinds 与 dimension_bands;显式状态转折会同时清除旧值和精度元数据。
  • public projection:WebUI、CLI、/api/latest、/api/perception 与 Hermes context 只显示 ordinal band,不泄露兼容代表值;未知数字为 null。
  • humon-hermes-context-v2 / 插件 1.5.0:上下文包含 value_kinds,定性直接证据可在同一回复内给出帮助,但不会授权独立主动投递。
  • stats/trend/baseline/calibration:SQL 与时间序列入口都显式排除 ordinal 数字列。
  • humon-quality-v3:只审计 schema 4 新状态。已知内在维度若缺少/携带不兼容 kind,ordinal 缺少 low/high band,或未知维度残留精度元数据,operational gate 立即降级;违规记录不含状态值或原话。

保守性与隐私审计

部署前对 Alaya 用户库与 Codex 用户事件做了 90 天聚合审计:读取 5,607 个用户记录、去重后 5,372 个;新解析器发现 0 个可安全认定的状态报告、0 个状态转折,只有 2 个通用“完成”形状;扫描错误 0,raw_text_emitted=false。审计不写数据库,也不输出原文。

该样本中未发现可安全认定的直接状态证据;这不证明解析器在其他语料上的误报率为零,也不能评估召回率。系统仍须等待明确自述,并保持 unknown 状态。

2026-07-17 部署证据

  • 开发端与正式端各 77 项测试通过;两端 compileall 通过;开发端 Ruff 定向检查通过。
  • 开发、正式 Humon 源码逐文件哈希一致;Humon 集成插件与 Alaya 正式插件哈希一致。
  • 回滚点:${HOME}/.hermes/backups/humon-v3-pre-precision-preservation-20260717-163721;目录 700,在线 SQLite 备份与私有配置 600,备份 integrity=ok。
  • 正式 Humon 根目录/data 收紧为 700,live DB 与私有配置为 600。
  • humon-webui.service 与 hermes-gateway-alaya.service 重启后 active/running;Humon 监听 ${LOCALIP}:8657,Alaya 主平台监听 8644。
  • Hermes 真实 PluginManager:Humon 1.5.0 enabled、hook=1、error=null;安全普通消息的授权结果=1、未授权=0;context v2 block=1、inline v3,当前直接证据=false、转折=false、action=none。
  • 安全探针前后 observation/ground truth/feedback/privacy 写入增量均为 0;错误 Bearer 返回 403 且增量仍为 0;安全探针原文在 SQLite dump 中匹配 0。
  • live DB:integrity=ok,ground_truth=0、feedback=0、privacy_events=0、transitions=0。
  • 16:55 自然样本:source=auto、model=Humon-fusion-v3、state meta schema=4,absolute observed-at/TTL maps 存在,value-kind/band maps 为空(因为内在维度未知);availability/activity 已恢复可知。
  • 7 天质量:natural v3=245、close duplicates=0、duplicate five-minute bins=0、历史 race-deduped=1;quality=operational-collecting、operational_ready=true、state/privacy violations=0;longitudinal_ready=false、delivery_ready=false。

已知运行警告

Manas 仍持有 ${LOCALIP}:8642;Alaya 的可选 api_server 同样配置为 8642,因而周期性记录端口冲突。Alaya 主网关和 Humon hook 不依赖该可选 listener,当前仍 active;本轮没有猜测新端口,也没有在缺少 consumer audit 时修改它。后续应先枚举 8642 的真实调用方,再决定禁用 Alaya 的重复 api_server 或迁移到明确端口。

当前边界与下一步

  1. 等待自然出现的真实 numeric/ordinal/categorical 报告;禁止向正式库注入疲惫、压力或恢复话语做验收。
  2. 观察真实 ordinal 报告是否在同回复可用、延迟读取去重、TTL 到期后清除,并确认公开面只显示 band。
  3. 持续积累长期质量、真实 ground truth、shadow 标签与个人基线;在 longitudinal、baseline、帮助率和打扰率门槛未满足前保持 delivery disabled。
  4. 对 8642 做只读 consumer audit 后再决定端口治理。

关联