引擎参考
引擎工作原理
本页所有内容都由引擎自身的数据(RULES、DIMENSIONS、SEVERITY_PENALTY、STAGE_LABELS)生成,因此不会与代码脱节。
流水线
- 提示词解析
parse - 意图识别
intent - 结构分析
structure - 需求提取
requirements - 歧义检测
ambiguity - 缺失上下文检测
missing_context - 指令质量
instruction_quality - 约束分析
constraints - 输出格式分析
output_format - token 分析
tokens - 冗余检测
redundancy - 安全与注入分析
security - 优化策略
strategy - 提示词转换
transform - 验证
validation - 质量评估
evaluation - 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 把写得随意的需求变成分节的工程提示词。它与优化是不同的操作:优化删除词语并证明没有丢失任何内容;重构则重新组织,并在软件任务中加入测试计划。
- 清理。与 balanced 模式相同的冗词和重复删除。
- 拆分。在引出新指令的连词处,把一口气写下的长句拆成分句(fix X and make Y work and don't break Z)。动词搭配和名词列表保持不动。
- 归类。每个分句归入 Role、Objective、Context、Requirements、Constraints 或 Expected output。代码、引文、URL 和变量绝不会被编辑。
- 搭建框架。仅针对软件任务,根据检测到的意图(调试、新代码、重构、测试、审查、配置、解释)和主题(身份验证、API、数据库、界面、性能、支付)加入固定的指导:边界情况、测试、验收标准和默认输出格式。
结果中的每一行都被标注为 prompt(你的)、engine(新增的指导)或 codebase(VS Code 扩展提供的项目信息),这样界面就能准确显示新增了什么。没有内容的部分会被省略:清晰的一句话需求原样返回,不是代码的提示词也不会得到测试计划。你已经给出的指导不会重复,你自己的输出格式会取代默认格式。传入 scaffold: false 可以只重新组织而不添加任何内容。
这些指导是引擎源码中的一张固定表,不是模型的输出,因此相同的需求总是产生相同的提示词。章节标题和指导行是英文的。
token 与成本
OpenAI 模型使用 o200k_base(GPT-4/3.5 使用 cl100k_base)计数并标注为精确。其他服务商以 o200k_base 作为近似,并标注为近似值。在没有加载分词器时,计数回退为字符数 ÷ 4,并标注为启发式。成本使用带有每个价格核对日期的参考价格表。参见模型目录。