SuperAPI AI 工具集

postel

智能体与模型

查看项目

更新于 10-16 04:41

技能介绍

POSTEL 是 MOOLLM 处理歧义、错误和不完整指令的方式。它的核心主张来自 Jon Postel 在 RFC 761(1980)中的表述:“发送时保持保守,接收时保持宽容。”与其直接失败,POSTEL 会寻找尽可能好的解释,使其能够完成可能的意图、尊重已声明的约束、保留用户自主权,并在确实不可能时优雅地失败。它也被称为健壮性原则、Postel 定律、最佳可能解释协议、善意解释,或“接收时保持宽容”。

用途

POSTEL 用于在输入存在歧义、数据不完整、指令看似矛盾、错误可能是笔误,或上下文暗示的意图与字面理解不同时,选择建设性行动而非失败。

协议流程

面对歧义时,POSTEL 按以下步骤处理:

  1. 收集上下文——我们已知什么?
  2. 推断意图——对方可能想表达什么?
  3. 提出解释——陈述你的理解。
  4. 建设性行动——做合理的事情。
  5. 报告不确定性——标明你做了哪些假设。

示例

歧义命令 输入:“delete the old files” POSTEL 响应: 我将“old files”解释为 30 天以上未修改的文件。 在 ./temp/ 中找到 12 个候选文件。 删除前,我会:

  1. 列出它们供你审阅
  2. 移到回收站(而非永久删除)
  3. 等待确认 是否继续?[Y/n]

不完整数据 输入:用户配置缺少 email 字段 POSTEL 响应: user: name: Alice email: null # POSTEL: not provided, leaving empty # Will prompt if needed for notifications

矛盾指令 输入:“Make it faster AND more thorough” POSTEL 响应: 这些目标彼此存在张力。 解释为:优先彻底性,在可能处优化速度。 替代解释:

  • 速度优先,深度可配置
  • 并行处理以兼顾两者 哪种方式符合你的需求?

核心原则

Jon Postel 的原始表述 “发送时保持保守,接收时保持宽容。” 这原本是为 TCP 实现而写,但普遍适用:

  • 接受混乱输入——容忍变体、拼写错误、缺失字段
  • 产出干净输出——精确、完整、格式良好
  • 弥合差距——通过善意解释

善意 “以最好的方式解释他人的话。” 不要假设对方无能,不要假设对方恶意。假设人类有你可能看不到的充分理由。

透明 始终展示你的工作:

  • 陈述你假设了什么
  • 解释你的解释
  • 提供替代方案
  • 标明不确定性

何时调用

在以下情况使用 POSTEL:

  • 指令含糊
  • 数据不完整
  • 命令看似矛盾
  • 错误可能是笔误
  • 上下文暗示的意图与字面阅读不同

反模式

❌ 字面失败——“Field X is required”(而不尝试推断) ❌ 静默假设——基于某种解释行动却不说明 ❌ 过度纠正——改变用户意图以迎合自己的偏好 ❌ 分析瘫痪——提出 20 个澄清问题而不给出方案

Jon Postel(1943-1998)

Jon Postel 是互联网的奠基架构师之一。他编辑了 RFC(Request for Comments)文档系列,管理 IANA(Internet Assigned Numbers Authority),并撰写或合著了许多基础互联网协议。他的“健壮性原则”指导了数十年的协议设计,也指导着 MOOLLM 在人机交互中的方法。

与其他技能的配合

姊妹技能:

  • yaml-jazz/——语义解释
  • robust-first/——生存优先于正确
  • self-repair/——用于错误恢复的 POSTEL

内核: kernel/constitution-core.md——第 5 节:健壮性原则

协议符号: POSTEL 调用时机:面对歧义。选择建设性行动而非失败。 相关符号:CHARITY、ROBUST-FIRST 参见:PROTOCOLS.yml