引擎参考

引擎工作原理

本页所有内容都由引擎自身的数据(RULES、DIMENSIONS、SEVERITY_PENALTY、STAGE_LABELS)生成,因此不会与代码脱节。

流水线

  1. 提示词解析 parse
  2. 意图识别 intent
  3. 结构分析 structure
  4. 需求提取 requirements
  5. 歧义检测 ambiguity
  6. 缺失上下文检测 missing_context
  7. 指令质量 instruction_quality
  8. 约束分析 constraints
  9. 输出格式分析 output_format
  10. token 分析 tokens
  11. 冗余检测 redundancy
  12. 安全与注入分析 security
  13. 优化策略 strategy
  14. 提示词转换 transform
  15. 验证 validation
  16. 质量评估 evaluation
  17. token 与成本对比 comparison

阶段 1–12 在每次分析时运行。阶段 13–17 在优化时运行。只有解析可能失败,而且仅限于空提示词。安全问题会被报告,但绝不会中断流水线。

规则目录

每条规则都链接到一个参考页面,包含触发它的示例、引擎的解释和修正后的版本。

代码维度触发条件
missing_objective完整性没有任务关键词、祈使句或问句。
too_short具体性实词少于 5 个。
vague_language清晰度“某些”“东西”“等等”“诸如此类”。
unquantified_size具体性没有数字的“短”“几个”“详细”。
unclear_reference完整性“这个”或“上面的内容”,但没有附上可指代的材料。
missing_language具体性请求代码但没有指明语言或框架。
hedged_instruction清晰度“尽量”“如果可能”“也许”。
long_sentence清晰度超过 40 个词的叙述性句子。
negative_only_constraints清晰度3 条以上禁令,且没有正面要求。
contradictory_instructions一致性格式、篇幅、字数限制、工具或语言相互冲突。
near_duplicate_instruction一致性两个句子的词语重合度 ≥ 80%。
missing_output_format输出规范没有指明输出格式。
missing_length_guidance输出规范内容或摘要任务没有篇幅上限。
wall_of_text结构超过 120 个词,却没有分节、列表或分段。
duplicate_instruction效率一个句子被逐字重复。
filler_phrases效率不改变任务的礼貌用语和强调词。
prompt_injection_signature安全性带权重的注入/越狱特征(风险 ≥ 60 时为严重)。
sensitive_data安全性凭据(严重)或个人数据(警告)。
undelimited_variable安全性位于标签、代码围栏或三重引号之外的 {{var}} 或 ${var}。
destructive_operation安全性rm -rf /、DROP TABLE、全部删除、curl | sh。

注入特征版本:2026.11.1。特征匹配报告的是风险,不是证据:它可能漏掉新型攻击,也可能标记为了讨论而引用攻击的文本。

评分

  • 每个问题的扣分:严重 30,警告 10,提示 3。
  • 总分 = 100 − 所有扣分之和,限制在 0–100 之间,只要有严重问题,上限为 50。
  • 每个维度 = 100 − 该维度中问题的扣分。结构维度只适用于 120 词以上的提示词。
  • 等级:85 分以上为优秀,70–84 为良好,50–69 为待改进,低于 50 为较弱。

每份报告都会列出每个维度运行的检查及其是否通过,并附上证据。

转换与模式

模式转换
conservative规范空白;删除完全重复的句子。
balanced+ 删除冗词和客套话(please、basically、句首的 I would like you to、问候语);in order to → to。
structured+ 把句子整理到 Task、Context、Requirements、Output format 和 Input 几个部分;用标签包裹模板变量。

代码块、行内代码、引用文本、URL、XML 标签块和模板变量受到保护:它们会在任何转换之前被屏蔽,并逐字节还原。除了章节标题和变量分隔符之外,没有任何转换会添加内容,而这两者也都会作为修改被报告。

候选验证

每种模式产生一个候选。只有同时满足以下条件,候选才有资格:

  • 每个受保护片段都仍然存在;
  • 每个原始句子都仍然存在(经过与转换相同的规范化之后);
  • 每条提取出的需求都仍然存在;
  • 没有引入新的警告或严重问题;
  • 对于 conservative 和 balanced 模式,token 不比原文多。

然后引擎按目标选择:tokens(最少)、quality(得分最高)或 balanced(在原文 token 的 115% 以内得分最高)。原文始终是候选之一,当没有更好的选择时,原文胜出。

重构

restructurePrompt 把写得随意的需求变成分节的工程提示词。它与优化是不同的操作:优化删除词语并证明没有丢失任何内容;重构则重新组织,并在软件任务中加入测试计划。

  1. 清理。与 balanced 模式相同的冗词和重复删除。
  2. 拆分。在引出新指令的连词处,把一口气写下的长句拆成分句(fix X and make Y work and don't break Z)。动词搭配和名词列表保持不动。
  3. 归类。每个分句归入 Role、Objective、Context、Requirements、Constraints 或 Expected output。代码、引文、URL 和变量绝不会被编辑。
  4. 搭建框架。仅针对软件任务,根据检测到的意图(调试、新代码、重构、测试、审查、配置、解释)和主题(身份验证、API、数据库、界面、性能、支付)加入固定的指导:边界情况、测试、验收标准和默认输出格式。

结果中的每一行都被标注为 prompt(你的)、engine(新增的指导)或 codebase(VS Code 扩展提供的项目信息),这样界面就能准确显示新增了什么。没有内容的部分会被省略:清晰的一句话需求原样返回,不是代码的提示词也不会得到测试计划。你已经给出的指导不会重复,你自己的输出格式会取代默认格式。传入 scaffold: false 可以只重新组织而不添加任何内容。

这些指导是引擎源码中的一张固定表,不是模型的输出,因此相同的需求总是产生相同的提示词。章节标题和指导行是英文的。

token 与成本

OpenAI 模型使用 o200k_base(GPT-4/3.5 使用 cl100k_base)计数并标注为精确。其他服务商以 o200k_base 作为近似,并标注为近似值。在没有加载分词器时,计数回退为字符数 ÷ 4,并标注为启发式。成本使用带有每个价格核对日期的参考价格表。参见模型目录。