PromptMN:伪提示语言
摘要
PromptMN是一种领域特定语言,通过向自然语言提示中添加类型化指令来减少歧义。该语言在前沿模型上进行了评估,证明了其在实现更清晰的人机交互方面的可行性。
arXiv:2606.17164v1 公告类型:新
摘要:提示已成为人类与生成式AI之间的主要接口,然而许多自然语言提示仍然脆弱:角色、目标、约束和预期输出常常隐藏在行文中或隐含不表。在代理和软件开发工作流中,首次交接时的误读可能会扩散到每一步,因为代理故障中很大一部分源于上下文歧义而非模型限制。本文介绍了PromptMN,一种伪提示领域特定语言,它用紧凑的、以%为前缀的类型化指令注解自然语言,涵盖角色、目标、需求、优先级、约束、计划、输入和输出。语义解析允许作者以任意顺序编写,而模型按功能解释指令。PromptMN介于非正式提示和编程风格的伪代码之间:结构化到足以被检查和重用,又足够轻量,可供软件开发生命周期(SDLC)中的分析师、管理者、开发人员和利益相关者使用。PromptMN还结合了反向提示工程。要求模型将期望结果重述为PromptMN,使用户能够在行动之前检查推断出的角色、目标、约束和缺失的假设,从而减少修复周期,并产生一个可重用的工件来对齐人员和AI工具。PromptMN的可行性在多个前沿模型上进行了评估,包括Claude Fable 5、Claude Opus 4.8、Gemini 3.1 Pro和GPT-5.5。这些模型正确解析了PromptMN指令,包括重复、条件、方法和质数检查任务等复杂结构,而无需微调。相同的词汇表适用于所展示的SDLC场景中的新代码库、维护和重新设计。虽然大规模验证尚待未来工作,但这些初步结果表明,PromptMN是朝着更清晰、更可审核的人机交互迈出的切实一步。
查看缓存全文
缓存时间: 2026/06/17 05:38
# PromptMN:伪提示领域特定语言 **来源:** https://arxiv.org/html/2606.17164 ###### 摘要 提示已成为人类与生成式 AI 之间的主要交互界面,然而许多自然语言提示仍然脆弱:角色、目标、约束和预期输出往往被埋没在冗长的描述中,或者被隐式地表达。在智能体及软件开发工作流中,首次交互时的误解可能会层层传递,因为很大一部分智能体故障源于上下文歧义,而非模型本身的局限性。本文提出 PromptMN,一种伪提示领域特定语言,它通过紧凑的、以 `%` 为前缀的类型化指令(涵盖角色、目标、需求、优先级、约束、计划、输入和输出)来注释自然语言。语义解析机制允许作者以任意顺序编写,而模型则按功能解读指令。PromptMN 介于非正式提示与编程风格的伪代码之间:它足够结构化,便于审查和复用;又足够轻量,适用于软件开发生命周期中的分析师、管理者、开发者及利益相关方。PromptMN 还能与逆向提示工程配合使用。通过要求模型将期望结果重述为 PromptMN,用户可以在执行前检查模型推断出的角色、目标、约束以及缺失的假设,从而减少修正循环,生成一种可复用的产物来对齐人类与 AI 工具。本文在多个前沿模型上评估 PromptMN 的可行性,包括 Claude Fable 5、Claude Opus 4.8、Gemini 3.1 Pro 和 GPT-5.5。这些模型正确解析了 PromptMN 指令(包括重复、条件、方法及素数检查等复杂结构),且无需微调。相同的词汇表适用于所呈现的 SDLC 场景中的新代码库维护和重构。虽然大规模验证仍属未来工作,但初步结果表明 PromptMN 是朝着更清晰、更易审查的人机交互迈出的务实一步。 ††footnotetext: 代码:github.com/denkhzol/PromptMN (https://github.com/denkhzol/PromptMN) *K*eywords: PromptMN ⋅ Prompt Engineering ⋅ 领域特定语言 (DSL) ⋅ 大型语言模型 (LLMs) ⋅ 智能体 AI ⋅ 软件开发生命周期 (SDLC) ## 1 引言 电话游戏是心理学中所谓的“序列再现”的一个常见例子,即消息在通过解释链传递时会发生改变[5 (https://arxiv.org/html/2606.17164#bib.bib2)]。在这种情境下,失真发生在人与人之间,并且随着每一次转述而加剧。在 AI 时代,生成式 AI 已使人机交互成为人机交互中更为常见的一部分,人们要求大型语言模型和智能体系统从日常语言中推断目标、约束、优先级和可接受的输出。首次交互正是失真进入的地方:如果意图在交互开始时没有清晰传达,模型就会采用有缺陷的理解,而智能体系统可能将此理解向前传递并在每一步放大,类似于后一个玩家重复已经偏离的消息。在日常工作中,尤其是在软件开发生命周期中,初始推断的质量往往决定了 AI 支持是节省时间还是产生返工。 LLM 之所以有用,是因为它们能够解释上下文、总结信息、生成结构化内容、编写代码、规划步骤以及调用工具。当前的模型参数规模从数十亿到数万亿不等,包括 80 亿、700 亿,以及更大的 4050 亿和接近万亿参数的模型。参数数量并不直接等同于存储的知识,但它是表征能力的一个代理指标:Morris 等人[18 (https://arxiv.org/html/2606.17164#bib.bib1)]估计 GPT 系列模型每个参数约能存储 3.6 比特。按此估算,一个 700 亿参数的模型可能编码约数十 GB(约 30 GB)的压缩分布式知识。然而,这些知识并非以用户可检查的清晰数据库形式暴露,而是以统计模式存在于模型权重中,通过概率方式检索。因此,提示成为选择和塑造模型行为的主要界面。 有效的提示不仅仅是礼貌的措辞,它是将人类意图转化为模型能够识别、组织和执行的形式的实践行为[7 (https://arxiv.org/html/2606.17164#bib.bib10),14 (https://arxiv.org/html/2606.17164#bib.bib13)]。目前的提示实践仍然严重依赖于自由形式的描述。指南通常推荐角色、背景上下文、示例、约束、输出格式和迭代,而上下文工程则将这些选择视为在正确时间提供正确信息的工作[10 (https://arxiv.org/html/2606.17164#bib.bib11),19 (https://arxiv.org/html/2606.17164#bib.bib16)]。然而在实际任务中,这些元素往往被深埋在长段落中,以略有不同的形式重复出现,或者被隐式地表达。这对初学者来说代价高昂,因为他们可能不知道哪些元素重要,而对经验丰富的软件从业者来说也很尴尬,因为他们的工作思维通常由显式接口、需求、类型和控制结构塑造,而不是开放式的语义猜测。 因此,所需的转变并非简单地从短提示变为长提示,而是从把提示当作聊天消息转变为将其视为可检查的意图表达。一个用于驱动分析、编码、规划或智能体工作流的提示,应该在开始工作之前就让其假设、需求、边界和请求的输出可见。这并非要移除自然语言,而是为自然语言添加少量的结构,以便人与模型都能对相同的任务描述进行推理。 本文引入 PromptMN 作为实现此目的的伪提示领域特定语言。它使用紧凑的保留关键字(以 `%` 为前缀),作为普通文本中的类型化语义指令。关键字如 `%role`、`%goal`、`%req`、`%should`、`%could`、`%mustnot`、`%plan`、`%showplan`、`%in`、`%out` 命名了用户已经试图表达但往往表达不一致的提示部分。其需求标签也反映了 MoSCoW 优先级划分,其中“必须有”、“应该有”、“可以有”和“不会有”类别指导需求规划,通常将前三组按 60%、20%、20% 的分配启发式映射[16 (https://arxiv.org/html/2606.17164#bib.bib18)]。该语言设计为便于记忆而非沉重:用户可以为复杂任务编写完整的 PromptMN 块,也可以仅在需要轻量结构时在普通提示中附加少量指令。 这一设计有三个实际目标。第一,它通过为常见的提示职责赋予稳定的名称来减少措辞工作量。第二,它充当提醒模板,帮助作者包含上下文、约束、优先级、计划和输出期望,而无需反复从头构建结构。第三,它使提示更易于检查、复用和修改。例如在逆向提示中,模型可以将用户请求重述为 PromptMN,以便用户在执行前查看模型推断的计划、假设和缺失的约束。其结果是人类意图与机器理解之间更清晰的协商。 PromptMN 介于非正式提示与完整伪代码之间。它不要求非程序员成为软件工程师,也不要求软件工程师放弃自然语言。相反,它为业务分析师、管理者、开发者以及已经依赖结构化意图的 AI 辅助开发工具提供了一种共享的表示法。在高层面上,PromptMN 提供了可组合的小语义单元,以供用户根据目的自由组合,就像将独立的拼图碎片拼成完整的任务图景。本文的贡献在于定义该表示法,解释其设计原理,并展示它如何在不过度限制提示灵活性的前提下支持更可靠的人机协作。 本文的其余部分组织如下:第 2 节 (https://arxiv.org/html/2606.17164#S2) 综述了提示工程、上下文工程以及先前的结构化提示工作,并将 PromptMN 定位在非正式实践与编程风格伪代码之间。第 3 节 (https://arxiv.org/html/2606.17164#S3) 定义了语言,涵盖其语法、关键字集群、语义解析规则及解释器契约。第 4 节 (https://arxiv.org/html/2606.17164#S4) 通过从基本控制流到面向 SDLC 的场景以及逆向提示工程的示例,展示了当前模型对 PromptMN 的识别能力。第 5 节 (https://arxiv.org/html/2606.17164#S5) 反思了局限性和未来工作。 ## 2 相关工作 提示工程现已是一项成熟的实践,拥有有据可查的技术工具箱,例如角色提示、链式思考、少样本示例和显式约束[7 (https://arxiv.org/html/2606.17164#bib.bib10),14 (https://arxiv.org/html/2606.17164#bib.bib13),6 (https://arxiv.org/html/2606.17164#bib.bib9),15 (https://arxiv.org/html/2606.17164#bib.bib14)]。Liu 等人[14 (https://arxiv.org/html/2606.17164#bib.bib13)]将这些技术归纳为四个维度:角色与指令、知识、推理与规划,以及可靠性,并指出非结构化提示往往产生不稳定、可靠性较低的答案。Li 等人[13 (https://arxiv.org/html/2606.17164#bib.bib12)]将手动提示的脆弱性与对专家的依赖及格式敏感性联系起来,其中标点或措辞的微小变化都会改变结果。初学者指南也认同这一点,因为一个好的提示需要设定角色、限定范围并固定输出格式[6 (https://arxiv.org/html/2606.17164#bib.bib9),7 (https://arxiv.org/html/2606.17164#bib.bib10)],但这些指南仅将其作为建议而非可执行的结构。PromptMN 将这些杠杆重塑为类型化关键字(如 `%role`、`%mustnot`、`%format`),使推荐结构变得显式且可检查。 上下文工程将关注点从模型转向其接收的输入。Savva[19 (https://arxiv.org/html/2606.17164#bib.bib16)] 将上下文提供(即问题框架、信息选择、约束和评估标准)描述为一种依赖于专业知识且难以观察的高成本输入,并认为正是这种上下文(而非原始模型能力)决定了输出的价值。Hua 等人[10 (https://arxiv.org/html/2606.17164#bib.bib11)] 将上下文工程定义为设计和组织上下文以使机器行为符合人类意图的实践,并追溯到二十年来从人机交互到当今智能体的发展路径。证据支持这一点:Adam 等人[1 (https://arxiv.org/html/2606.17164#bib.bib3)] 报告称,筛查 F1 分数随提示组成大幅波动,并在提示命名任务并列出选择标准时得到改善。Gibreel 等人[9 (https://arxiv.org/html/2606.17164#bib.bib6)] 将提示工程能力解读为清晰陈述目标、约束和上下文的技能,而 MEMENTO[11 (https://arxiv.org/html/2606.17164#bib.bib7)] 表明模型自身的推理通过分块和压缩而受益。这些发现促使 PromptMN 设计了意图和需求集群,为框架、约束和成功标准预留了固定位置。 一旦提示开始驱动自主的多步骤工作,对结构的需求就会增长。实用指南将智能体描述为一个能够推理、规划并为达成目标而行动的系统,且只需有限的人为介入[2 (https://arxiv.org/html/2606.17164#bib.bib4)],而生产报告更倾向于工作流分解、确定性编排和外部化提示,而非单一的巨型提示[4 (https://arxiv.org/html/2606.17164#bib.bib8)]。模式目录和 SDLC 综述重复了相同的部分,例如提示链、评估器与反思-优化循环,以及带有迭代反馈的角色专业化[3 (https://arxiv.org/html/2606.17164#bib.bib5),20 (https://arxiv.org/html/2606.17164#bib.bib17)]。ReAct[22 (https://arxiv.org/html/2606.17164#bib.bib15)] 进一步指出,在行动中穿插推理轨迹可以抑制幻觉和错误传播,同时保持每一步可审计。PromptMN 通过有序步骤和计划披露(`%plan`、`%showplan`、`%trace`)、控制流(`%if`、`%repeat`、`%method`)以及显式数据边界(`%in`、`%out`)将这些基本元素引入提示。 最接近的先前工作是那些赋予提示类似代码形式的工作。Super-NaturalInstructions 研究[21 (https://arxiv.org/html/2606.17164#bib.bib19)] 引入了一个大型 NLP 任务集合,以考察语言模型如何从自然语言指令中泛化。每个任务结合了定义、正例和反例、输入以及预期输出。结果表明,基于示例的指令改善了跨任务迁移,但也揭示了对措辞的敏感性以及对高质量示例的依赖。PromptMN 在此基础上,将结构转化为一种伪提示语言,包含显式规则和约束,而非自由形式的文本。Mishra 等人[17 (https://arxiv.org/html/2606.17164#bib.bib20)] 将 132 个 Super-NaturalInstructions 任务重写为 Python 风格的伪代码提示,包含类型化函数、文档字符串和子任务调用。在 BLOOM 和 CodeGen 模型(2B–7B)上,这些提示将分类性能提升了 7–16 个 F1 点,ROUGE-L 提升了 12–38%,尤其对代码训练的模型效果显著。他们还发现注释、文档字符串和结构元素很重要,但编写伪代码需要专业知识,限制了其广泛使用。类似地,Kumar 等人[12 (https://arxiv.org/html/2606.17164#bib.bib21)] 训练 LLM 在生成响应之前将自然语言指令翻译成 Python 风格的伪代码。在经过增强的 TuluV2 数据上微调后,他们的方法在 12 个基准测试上将指令遵循性能提升了 8–21%,且不改变用户交互范式,在某些情况下甚至提升了数学和常识推理任务的性能。综合来看,这些工作表明结构(无论是角色、约束、计划、控制流还是可追踪推理)使提示更加可靠,但这种结构要么以非正式建议的形式出现,要么以要求编程技能的全伪代码形式出现[17 (https://arxiv.org/html/2606.17164#bib.bib20),12 (https://arxiv.org/html/2606.17164#bib.bib21)]。PromptMN 介于两者之间,它是一套紧凑、便于记忆的关键字集,用于注释普通文本并在执行前解析,从而使提示结构可审查且可复用,同时不脱离自然语言。 ## 3 方法论 本节介绍 PromptMN 的设计与结构。首先解释为何需要给提示赋予更明确的形式,然后描述语言的语法和关键字集,说明这些关键字如何分组为功能集群,最后阐述模型应如何处理 PromptMN 指令的契约。 ### 3.1 设计原理 提示工程已从非正式实验发展为一门公认的学科,拥有有据可查的技术,包括角色提示、链式思考推理、少样本演示和显式约束[7 (https://arxiv.org/html/2606.17164#bib.bib10),14 (https://arxiv.org/html/2606.17164#bib.bib13)]。然而,该实践在很大程度上仍是非结构化的:提示采用自由形式的自然语言指令形式,明显缺乏通用的词汇表、一致的格式约定,以及任何跨任务和上下文进行系统性适应的机制。
相似文章
BayesPrompt: 人类可读且合理的提示
本文介绍了BayesPrompt,一种贝叶斯方法,用于优化大型语言模型的提示,确保它们既高效又人类可读,而不像传统方法产生难以理解的伪提示。
PrompTessor
PrompTessor 是一个AI提示词生成器、优化器和库,帮助用户编写有效的提示词。
提示复杂性:大型语言模型中文本与行为的最短提示
本文正式定义了提示复杂性这一概念,该概念衡量固定语言模型生成目标文本或行为所需的最短合理提示,类比于资源有界的柯尔莫哥洛夫复杂性。
如何使用提示词
本文分析了过去两年中针对ChatGPT的提示词,发现提示逐渐转向间接和隐含指令,礼貌性减弱,表明用户正在适应LLMs的推理能力。
Promptic
Promptic 是一个通过基准测试模型、调整提示和代理,并与CI系统和仪表板集成来优化生成式AI应用质量和成本的平台。