状态:新增设计提案,尚未实现。本文是本次新增需求的本地记录,不表示已同步到云端项目设计、发布或部署。
内容被保存下来,不代表其中的知识一直适用。软件版本、接口、价格、规则和环境会变化;旧教程即使曾经验证成功,也可能已经无法解决今天的问题。搜索、推荐和 Agent 引用需要能表达这种变化,而不是把历史内容一直当作当前答案。
知识衰减表示「对当前适用性的把握随时间和环境变化而下降」,不是自动判定内容错误。时间经过只能触发复核;确认失效需要具体声明或证据。数学证明、历史记录等内容也不能只因年纪大就被降低价值。
时效信息绑定 Resource ID、Revision ID 和内容 digest。修改正文产生新 Revision,旧版的验证和时效声明不自动继承;历史正文、签名和已有证明保持不变。
一篇帖子可以包含多个结论。首版按整篇 Revision 记录,有任何关键步骤失效就提示该版本需复核;后续可以增加稳定的结论标识,但不能用易变化的段落序号冒充标识。
| 字段 | 含义 |
|---|---|
applicability |
适用的软件版本、环境、地域等;未填写时显示「适用范围未说明」 |
valid_from / valid_until |
声明的适用时间窗,可为空;声明者负责其内容,平台不担保 |
review_interval_seconds |
从最近一次合格验证起,多久需要复核;为空表示未设置周期,不表示永不过时 |
verified_at |
符合该适用范围的验证事件的服务器记录时间;没有验证时为空 |
superseded_by |
同一适用范围中明确替代该版本的 Resource + Revision 引用,可为空 |
policy_version |
计算复核日期和展示状态所用策略的版本 |
适用范围是显式约束,不让自由文本自动变成机器可判断的版本兼容规则。不能比较的环境标记为「未确认匹配」,不能据此宣布适用或失效。
不同范围可能有不同替代版本,例如新版软件教程不会自动废掉旧版软件仍可用的教程。首版每个声明只描述一个适用范围。
作者或有编辑权限者可声明适用范围、复核周期、明确失效及替代版本。普通读者可提交带理由的复核建议或失效报告;报告保持为报告,不能直接覆盖作者声明或让任意人把内容踢出搜索。
所有声明和撤回记录 actor、服务器时间、目标 Revision、digest、理由、依据和认证方式。token 认证声明不能显示为用户私钥签名。并发更新绑定声明版本,重试沿用请求 ID,不能凭重复请求刷新时间。
状态投影分别保留三条轴,避免把不同含义压成一个可信度分数:
| 维度 | 状态 | 含义 |
|---|---|---|
| 复核 | 未验证 | 没有符合范围的验证记录 |
| 复核 | 已验证,复核未到期 | 有具备步骤、环境、结果的验证,且未到复核日期;不代表平台保证正确 |
| 复核 | 待复核 | 复核周期已到,或已知依赖变化;不直接等于错误 |
| 生命周期 | 正常 / 已失效 / 已被替代 | 有权主体的明确声明;已失效和已替代可以同时存在 |
| 异议 | 无待处理报告 / 有待处理报告 | 保留读者提交的待处理证据,不自动改变生命周期 |
默认显示最近的合格验证,并能展开其他范围、相反证据和声明历史。撤回错误声明增加事件,不删除旧事件。平台管理处置独立标明来源,不冒充作者确认。
- 周期由作者显式选择,服务端限制为正整数及公开的配置上限。产品可提供价格/接口/教程等周期建议,但不偷偷给所有历史内容套一个统一期限。
- 复核时间为最近一次合格验证的记录时间加复核周期;没有验证时,以该 Revision 的创建时间安排首次复核,并始终标明「未验证」。声明更新、迁移导入、阅读、编辑标题和推荐曝光都不重置这个起点。
valid_until到期显示「声明有效期已过」,要求重新核实;它证明声明的时间窗结束,不证明正文一定错误。正文中明确的历史日期仍作为历史信息保留。- 阅读、ACK、USED、SOLVED、THANKS、点赞、复制和普通回复均不能刷新验证时间。既有 VERIFIED 是该 actor 的认证声明;只有显式提供步骤、环境、结果且范围匹配的验证事件参与本设计的复核计时,旧的空泛声明不回填为合格验证。
- 再验证追加证据事件,绑定原 Revision。重新验证可以更新复核日期,但不能自动撤销已失效/已替代声明;撤销需要有权主体显式说明。发现正文需要修改时发布新 Revision,再验证新版本。
- 依赖变化可提前触发待复核。例如引用的接口说明出现新 Revision。依赖绑定精确版本,仅标记直接可确认的变化;不能因上游帖子过期就断言所有下游结论错误。
复核计时使用服务器 UTC 和明确的 as_of;不接受客户端未来时间刷新状态。索引或定时任务可以延迟,读取时仍按当前时间计算到期,不能把尚未运行任务理解为仍然新鲜。
不提供「可信度 83%」之类无法解释的数值。若以后增加时间权重,只能参与推荐排序,必须公开策略、范围、计算时点和原因,不能把时间权重当作真假概率。
- 阅读页靠近正文显示适用范围、最近验证日期和复核提示。待复核显示「上次验证于……,需要重新检查」;明确失效或被替代时显示理由及可读的替代版本。旧版仍能查看和引用。
- 搜索返回复核、生命周期、异议状态及计算时点,支持显式筛选。默认保留待复核内容并说明原因;已失效/已被替代内容降低优先级,历史检索仍可找到。未验证内容不能被包装成当前有效。
- 推荐把时效性作为可解释因素,适用范围和相关性先于单纯发布时间;新发但未验证的内容不能仅靠年龄盖过旧而已验证的内容。正文更新时间不等于验证时间。
- Agent 获取引用时一并取得 Revision、digest、适用范围、验证日期和状态。生成涉及当前事实的答案时,需说明过期或未验证依据,或显式执行再验证;涉及历史事实时保留当时的语境。
- Agent 缓存记录读取时点和复核日期;跨过复核日期、得知依赖变化或准备再次执行操作时重新读取状态和当前授权。再验证失败保持原提示,不能用读取动作刷新日期。
未来增加时效字段需要新版本的操作契约,并在客户端、网页、搜索和推荐使用同一投影。本文不提前声明任何 API 或命令已经可用。
到期提醒先给作者和显式订阅复核的人,同一 Revision、范围和复核周期去重。读取不自动订阅,不自动创建任务,不自动发私信。作者无人响应时继续显示待复核,不自动删除内容,也不把主体不在线当作失效证据。
时效声明、证据、依赖和替代链接分别检查当前读写权限。私有证据和私有替代内容不能通过摘要、数量、搜索片段或通知泄露;看不到的依据不输出其 ID、标题、链接或隐藏事件导出的状态变化。可公开展示的状态必须有可读声明支撑。替代引用不能授予读取权限。
拒绝同一 Resource/Revision 的自替代和可检测的替代环;分页和解析限制步数,不递归泄露不可读目标。不因被替代而自动搬运正文、订阅、证明或权限。
权威声明和证据进入现有持久存储及恢复清单,搜索索引和状态投影可重建。恢复保留原事件时间和声明撤回,不把备份时间当作再验证;恢复后按当前 UTC 重新计算到期。清理缓存不能改变声明事实。
先实现显式适用范围、作者时效声明、范围内验证记录、待复核提示和精确替代引用,再接搜索/推荐、订阅提醒和显式依赖变化。自动外部监测、逐结论事实核验、AI 自动判错和全文级依赖传播均不属于首版。
后续实现至少需要验证:
- 到期前后状态一致,定时任务延迟也不会返回过期的「复核未到期」;无周期不等于永远有效。
- 老内容能再验证,新内容能明确失效;阅读和重复提交不能续期,未来客户端时间不能续期。
- 编辑生成新 Revision 后不继承旧版验证;替代仅适用于声明范围,旧版历史和签名保持不变。
- VERIFIED 没有步骤/环境/结果时不能参与计时;相反证据可见,再验证不自动清除失效声明。
- 普通报告不能篡改作者状态;并发更新、幂等重试和声明撤回能正确追溯。
- 私有证据、依赖和替代引用不进入公开投影;撤权后读取、缓存和通知仍遵守当前权限。
- 备份恢复后声明、证据、撤回和过期状态一致,重建索引不刷新知识年龄。
完成这些验收后才能把状态改为已实现;发布和线上验收仍需单独记录。