Roo Code Enhance Prompt 功能全指南:一键优化提示词、自定义增强模板与上下文感知增强

发布时间:2026/9/12 1:28:17
Roo Code Enhance Prompt 功能全指南:一键优化提示词、自定义增强模板与上下文感知增强 Roo Code Enhance Prompt 功能全指南一键优化提示词、自定义增强模板与上下文感知增强【免费下载链接】Roo-CodeRoo Code gives you a whole dev team of AI agents in your code editor.项目地址: https://gitcode.com/GitHub_Trending/ro/Roo-CodeRoo Code 内置的 Enhance Prompt增强提示词功能让你在把请求发送给 AI 模型之前通过点击聊天输入框右上角的魔法棒wand图标自动将原始请求改写为更清晰、更具体、更易于模型理解的提示词。本文以官方文档为主体结合仓库源码support-prompt.ts、messageEnhancer.ts、webviewMessageHandler.ts与测试用例enhance-prompt.spec.ts完整讲解该功能的使用方法、自定义模板、独立 API 配置、基于会话历史的上下文感知增强以及底层实现原理帮助你更精准地驾驭与 Roo Code 的每一次对话。为什么使用 Enhance PromptEnhance Prompt 的价值在于对提示词的前端治理——在请求进入模型之前先由模型对提示词本身做一次结构化重写。官方文档总结的收益包括提升清晰度Improved ClarityRoo Code 会改写措辞让提示词对 AI 模型更易理解减少歧义。补充上下文Added Context增强过程可以自动注入相关上下文例如当前文件路径或选中的代码。给出更好的指令Better Instructions为模型追加指导性要求例如指定输出格式或详细程度引导模型给出更贴合需求的回答。降低模糊性Reduced Ambiguity消除意图含混的表述确保 Roo Code 正确理解你的目标。保持一致ConsistencyRoo 会以统一格式向 AI 呈现提示词让不同请求的输入口径保持一致。上下文感知建议Context-Aware Suggestions启用后增强过程会参考最近的对话历史生成更相关、更准确的增强结果。如何使用 Enhance Prompt使用流程非常简单共四步输入初始提示词在 Roo Code 聊天输入框中像平常一样输入你的请求。它可以是一句简单的问题也可以是一段复杂的任务描述。点击魔法棒图标不要按 Enter改为点击聊天输入框右上角的魔法棒图标。Roo 处理增强请求期间魔法棒图标会旋转以提示正在工作。审查增强后的提示词Roo Code 会用增强版本替换你的原始提示词。请仔细核对增强结果是否准确反映你的意图也可以继续手动修改。如果改主意了可以用CtrlZMac 上为CmdZ撤销增强恢复原始提示词。发送增强后的提示词按 Enter 或点击发送图标将其发送给 Roo Code。交互细节与底层逻辑从前端实现看这一交互由 ChatTextArea.tsx 驱动点击魔法棒触发handleEnhancePrompt通过vscode.postMessage({ type: enhancePrompt, text: trimmedInput })把输入框文本发给扩展侧webviewMessageHandler.ts。扩展侧enhancePrompt分支会读取当前 stateAPI 配置、自定义提示词、API 配置列表、增强专用 API 配置 ID、任务历史开关并调用MessageEnhancer.enhanceMessage(...)。增强完成后扩展侧通过postMessageToWebview({ type: enhancedPrompt, text: result.enhancedText })把结果回传给前端前端message.type enhancedPrompt分支接收后填入输入框。特殊行为空提示词增强Empty Prompt Enhancement如果输入框为空时就点击增强按钮Roo 不会报错而是显示一条说明性的提示消息解释该功能的用法。对应实现中当trimmedInput为空时前端会直接把输入框内容设置为t(chat:enhancePromptDescription)对应的描述文案相当于一次内置的功能引导。这对初次接触该功能的新用户非常友好。消息队列支持Message Queueing Support即使消息发送被禁用例如处于队列暂停状态增强按钮仍然保持可用。这意味着你可以随时预先把提示词增强好并放入发送队列等后续恢复发送时直接使用互不阻塞。自定义增强过程Enhance Prompt 使用一个可编辑的提示词模板你可以按需改写以适配自己的工作流和所使用模型的提示词格式。进入 Prompts 设置点击 Roo Code 面板中的齿轮图标或使用设置命令打开设置。切换到Prompts标签页。从下拉框中选择ENHANCE即可查看和编辑增强提示词。对应前端实现在 PromptsSettings.tsx 中activeSupportOption默认为ENHANCE选中后展示模板编辑区。默认增强提示词模板默认模板如下Generate an enhanced version of this prompt (reply with only the enhanced prompt - no conversation, explanations, lead-in, bullet points, placeholders, or surrounding quotes): ${userInput}模板中的${userInput}占位符会被你的原始提示词替换。这段模板在源码中位于 support-prompt.ts 的ENHANCE配置项与文档完全一致其中约束模型只回复增强后的提示词本身不附带对话、解释、引导语、列表、占位符或引号从而保证输出可以被直接当作可用提示词使用。占位符替换机制supportPrompt.create(type, params, customSupportPrompts)是模板与参数结合的入口support-prompt.ts先用正则/\${(.*?)}/g扫描模板中的所有${key}占位符再从params中取对应值替换如果参数缺失则替换为空字符串。这意味着你可以在自定义模板中自由使用${userInput}原始提示词也可以加入其他自定义占位符并通过参数注入。自定义模板的优先级逻辑也在此处体现support-prompt.tssupportPrompt.get会优先返回customSupportPrompts[type]即你在设置里保存的自定义模板未配置时回退到内置默认模板。测试你的自定义提示词Prompts 设置里包含一个测试区域可以预览自定义增强提示词的实际效果编辑完增强提示词后找到Test Enhancement测试增强区域输入一个示例提示词点击Test查看你的自定义模板会如何增强它根据测试结果继续调整增强提示词。这一边改边测的闭环让你无需进入真实对话就能迭代模板质量。API 配置为增强请求单独指定模型Enhance Prompt 默认使用与 Roo Code 任务相同的 API 配置但可以单独更换打开 Roo Code 设置进入Prompts标签页在下拉框中选择ENHANCE在API ConfigurationAPI 配置下拉框中选择一个已有配置。此后所有 Enhance Prompt 请求都会发送到该配置对应的提供商/模型。源码实现配置解析与回退从源码看这一独立配置通过扩展侧状态enhancementApiConfigId实现webviewMessageHandler.ts 中case enhancementApiConfigId将其写入全局状态。在 messageEnhancer.ts 中若指定了enhancementApiConfigId且能在listApiConfigMeta中找到对应配置则通过providerSettingsManager.getProfile({ id })读取该配置档案并作为configToUse若该配置不存在或读取失败则自动回退到当前任务所用的apiConfiguration。也就是说指定了增强专用配置就用专用配置否则用当前任务配置不会因配置缺失而中断增强流程。轻量级单次完成调用增强请求不创建完整任务而是走轻量级的单次完成通道。核心函数 single-completion-handler.ts 在发起调用前做了三层校验提示词为空 → 抛出No prompt text provided缺少有效的 API 配置无apiProvider→ 抛出No valid API configuration provided所选提供商不支持单次完成handler 上没有completePrompt方法→ 抛出The selected API provider does not support prompt enhancement。只有通过校验才会调用buildApiHandler(apiConfiguration)构建提供商处理器并执行completePrompt(promptText)拿到增强结果。这些行为都有对应测试覆盖enhance-prompt.spec.ts包括默认模板增强、自定义模板增强supportPrompt.create注入自定义ENHANCE模板、空提示词报错、缺失配置报错、不支持增强的提供商报错以及 API 错误向上传播。上下文感知增强Context-Aware Enhancement启用后Enhance Prompt 会参考当前对话的历史消息来生成更贴合的增强建议从而减少答非所问式幻觉提升增强结果的准确性。工作原理开启该选项后增强请求会包含当前会话中最近 10 条消息作为上下文帮助模型理解你正在做什么与之前的讨论保持一致避免提出无关或不正确的增强给出更有针对性的提示词改进。源码实现任务历史的提取与拼装对应实现位于 messageEnhancer.ts 与extractTaskHistory方法messageEnhancer.ts仅当includeTaskHistoryInEnhance为真且当前会话存在消息时才拼接历史过滤规则只保留用户消息type ask且有文本和助手文本消息type say say text且有文本排除工具调用等噪音消息数量上限取最后 10 条.slice(-10)避免上下文膨胀长度裁剪每条消息截断到 500 个字符超长部分以...结尾格式按User: .../Assistant: ...分行拼接附加在Use the following previous conversation context as needed:之后最终连同你的提示词一起注入${userInput}占位符。即使历史提取失败也不会导致增强中断——方法会记录错误并返回空字符串增强流程继续执行。启用或关闭打开 Roo Code 设置进入Prompts标签页选择ENHANCE勾选或取消勾选Include task history in enhancement增强时包含任务历史。关闭后增强仅考虑当前提示词不带任何会话上下文。在 PromptsSettings.tsx 中该开关通过updatedSettings: { includeTaskHistoryInEnhance: target.checked }写回状态且默认值为true未显式配置时按开启处理。视觉反馈与 UI 元素按钮外观魔法棒图标默认以 60% 透明度显示鼠标悬停时变为完全不透明100%位于聊天输入框右上角带有焦点环保证键盘可达性无障碍访问。加载状态处理增强请求期间魔法棒图标会旋转提供清晰的正在工作视觉反馈。提示气泡Tooltip悬停按钮时显示提示文案Enhance prompt with additional context使用额外上下文增强提示词帮助新用户理解按钮用途。前端同时设置了aria-label为屏幕阅读器提供等价信息。限制与最佳实践实验性功能Experimental Feature提示词增强仍是实验性能力增强质量会随请求复杂度与底层模型能力而波动。务必人工复核Review Carefully发送前一定要审查增强结果Roo Code 可能做出与你的意图不完全一致甚至相悖的改动。可迭代使用Iterative Process可以反复点击 Enhance Prompt 对同一段提示词进行多轮迭代优化。不能替代清晰表达Not a Replacement for Clear Instructions增强功能只是辅助手段从源头写出明确、具体的提示词仍然重要。总结Enhance Prompt 是 Roo Code 提供的一层轻量提示词前处理能力一条魔法棒点击触发经过模板改写可自定义、独立 API 配置可回退、可选会话历史注入最近 10 条、单条 500 字截断之后由单次完成通道交给模型产出增强结果。其完整链路——从 ChatTextArea.tsx 的前端触发到 webviewMessageHandler.ts 的消息路由再到 MessageEnhancer 的组装与 singleCompletionHandler 的调用——在仓库中均有清晰的源码与测试佐证enhance-prompt.spec.ts。掌握模板定制、配置选择与上下文开关这三项调节手段就能让增强结果更贴近你的实际工作流。【免费下载链接】Roo-CodeRoo Code gives you a whole dev team of AI agents in your code editor.项目地址: https://gitcode.com/GitHub_Trending/ro/Roo-Code创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考