Polymorph 是一个专注于表示转换的技能。它的核心是改变信息的表达结构,而不是改变标识符名称、运行时环境或系统架构。判断标准是:能否指出一个源产物和一个目标产物,两者表达相同信息但结构不同。如果是,则属于 Polymorph 的范畴。
用途 Polymorph 用于将数据、代码或规范从一种表示格式转换为另一种结构不同的格式,并执行语义映射。例如 CSV 转 JSON、Python 转 JavaScript、REST 转 GraphQL、YAML 转 HCL、Swagger 转 OpenAPI、Avro 转 JSON Schema 等。当用户要求“转换”“变换”“迁移”格式,或指出明确的格式对,或要求“保留结构但改变格式”“映射 X 概念到 Y”“标记无法转换的部分”时触发。
主要能力 该技能会明确源与目标表示格式,列出结构对应关系并识别没有等价物的部分,执行转换并保留语义,立即标记信息损失,验证输出在目标格式中是否合法,并生成映射报告,说明哪些内容被保留、近似或丢失。交付物包括转换后的产物、映射报告和格式验证结果,同时明确置信度、假设和未解决风险。
使用方式 使用前无需额外运行时依赖,只需 Hermes Agent 和当前会话的常规工具集。过程包括:重述目标和成功条件,识别源与目标格式,映射结构对应关系,执行转换,验证并报告。示例调用:/polymorph transform this from its current form into the target format, and tell me what survived the conversion and what did not。
适用场景 适用于需要真实语义映射的格式转换,包括数据格式迁移、代码语言转换、API 规范转换、配置格式转换等。当转换涉及不同结构且需要保留语义时适用。
限制 该技能不适用于:全局重命名或重构(相同结构不同名称)、伪装或包装层(不改变后端让 JSON 看起来像 XML)、工作流编排(关注执行顺序而非表示)、工作线程池或并行化(关注并发而非格式)、从零完全重设计(新架构而非映射)、克隆或复制(复制而非转换)。此外,必须始终报告转换损失,不声称无损转换,并标记歧义映射。