Roo Code 附加功能实战指南:建议回复、文本转语音与 18 种语言支持

发布时间:2026/9/12 18:11:45
Roo Code 附加功能实战指南:建议回复、文本转语音与 18 种语言支持 Roo Code 附加功能实战指南建议回复、文本转语音与 18 种语言支持【免费下载链接】Roo-CodeRoo Code gives you a whole dev team of AI agents in your code editor.项目地址: https://gitcode.com/GitHub_Trending/ro/Roo-Code本指南系统讲解 Roo Code 中三项显著提升日常开发效率的附加功能建议回复Suggested Responses——点击即可快速向 AI 追问、文本转语音Text to Speech——用耳朵收听 AI 回复以及全局语言支持Global Language Support——让 18 种语言的使用者都能以母语工作。通过本文你将掌握这三项功能的开启位置、交互细节以及它们背后的源码级实现原理从而把 Roo Code 调校到最适合自己的工作节奏。建议回复Suggested Responses建议回复是 Roo Code 为减少你手动打字而设计的一项交互优化当 Agent 在任务中提出需要你决策或提供信息的问题时它会在聊天区渲染出若干个候选回复按钮。点击任意一个按钮即可将其作为下一条指令立即发送实现一键续聊。功能体验从提问到一键应答当你向 Roo Code 提问后聊天界面会在输入框附近出现建议按钮从实现上看这些按钮渲染在对应聊天消息行内。其工作流如下Roo Code 的 Agent 判断需要用户输入时会发起一次提问并附带 24 条建议回复建议以按钮形式展示点击即可快速把该建议作为你的下一条 Prompt 发出如果你只想把建议内容借用到输入框中再编辑可以按住Shift键点击或点击按钮上的复制图标把建议文本填入输入框后再修改发送若建议附带模式切换信息例如切换到 Code / Architect 模式点击后会同步完成模式切换。底层实现ask_followup_question 工具建议回复并非硬编码在界面里而是 Roo Code 提供给 Agent 的一个原生工具。在 AskFollowupQuestionTool.ts 中工具名为ask_followup_question其参数结构为interface AskFollowupQuestionParams { question: string follow_up: Suggestion[] } interface Suggestion { text: string mode?: string }也就是说Agent 每次提问必须同时携带question与follow_up两个参数follow_up是建议回复列表每条建议包含text回复正文和可选的mode建议切换到某个模式。执行时工具会将参数转换为统一格式交给task.ask(followup, ...)并等待用户回应AskFollowupQuestionTool.tsconst follow_up_json { question, suggest: follow_up.map((s) ({ answer: s.text, mode: s.mode })), } const { text, images } await task.ask(followup, JSON.stringify(follow_up_json), false)而 Agent 端的能力边界由 Prompt 定义文件约束见 ask_followup_question.tsfollow_up必需提供 2~4 条建议回复。每条建议必须是完整、可执行、无占位符的答案可选地包含 mode 字段以切换模式code / architect 等。值得注意的细节如果 Agent 漏传question或follow_up参数工具会记录一次缺失参数错误并提示AskFollowupQuestionTool.ts而在流式输出的中途为避免渲染残缺的 JSON界面只先展示question文本完整建议列表要等工具调用结束才下发handlePartial逻辑。建议按钮的界面与自动批准联动建议按钮组件位于 FollowUpSuggest.tsx点击处理逻辑在 ChatView.tsx 中普通点击会立即发送该建议作为回复Shift点击则只把内容复制进输入框。更实用的场景是与**自动批准Auto-Approval**配合使用。在 Auto-Approve 设置中开启Question对应alwaysAllowFollowupQuestions后FollowUpSuggest 组件会启动一个倒计时默认超时时间为 60 秒DEFAULT_FOLLOWUP_TIMEOUT_MS 60000也可通过followupAutoApproveTimeoutMs全局设置自定义倒计时期间第一条建议按钮下方会显示类似Auto-approve enabled. Selecting in Ns…的提示超时后自动选中第一条建议作为答案从而在无人值守时让任务持续推进一旦用户手动点击了任意建议或开始输入倒计时立即取消避免自动批准与用户手动操作产生竞态相关逻辑见 FollowUpSuggest.tsx。这套机制让建议回复从单纯的省打字工具升级为自动化工作流的关键一环——你既可以用它做半自动交互也可以配合 Auto-Approval 实现全自动循环。文本转语音Text to SpeechRoo Code 内置了文本转语音TTS功能可以把 AI 的回复朗读出来让你用听的方式获取信息。这对需要护眼的用户、在通勤或做其他事务时想多任务的用户以及偏好听觉学习的用户都非常友好。开启与使用打开 Roo Code 的**设置Settings面板进入通知Notifications**分类勾选Text to Speech开关对应设置项ttsEnabled开启后聊天区中每条 AI 回复旁会出现喇叭图标点击即可开始朗读该条回复你还可以在同一个设置区域拖动**语速滑块TTS Speed**调整朗读速度默认值为1.0即 100%可上下调节百分比语速会实时持久化并生效。如果你希望朗读与你的打字/操作互不干扰在朗读进行中再次点击喇叭图标或触发停止指令即可中断当前朗读。播放机制与源码实现TTS 的后端实现集中在 tts.ts其核心是一个串行播放队列let isTtsEnabled false let speed 1.0 let queue: QueueItem[] [] export const playTts async (message: string, options: PlayTtsOptions {}) { if (!isTtsEnabled) { return } queue.push({ message, options }) await processQueue() } export const stopTts () { sayInstance?.stop() sayInstance undefined queue [] }关键设计点全局开关setTtsEnabled(false)时playTts直接返回不产生任何朗读因此关闭该功能不会影响其他流程顺序朗读多条回复会依次进入队列由processQueue()保证播完一条再播下一条避免多个语音重叠跨平台语音引擎实际发声依赖 Node.js 生态的say库require(say)由它调用操作系统自带的语音引擎与语音包因此无需额外配置发音人状态回传播放开始与结束都会通过 Webview 消息ttsStart/ttsStop通知前端见 ChatTextArea.tsx用于驱动界面上的朗读状态指示。Webview 与扩展主进程之间的消息通道定义在 webviewMessageHandler.tsttsEnabled消息写入全局状态并调用setTtsEnabled(bool)ttsSpeed消息写入全局状态并调用setTtsSpeed(speed)默认1.0playTts消息传入要朗读的文本并在onStart/onStop回调中向 Webview 回发ttsStart/ttsStop状态stopTts消息直接调用stopTts()停止并清空队列。这些设置项ttsEnabled、ttsSpeed与全局状态同步默认值分别为false与1.0持久化于扩展的全局存储中见 ClineProvider.ts。与声音通知的区别在通知设置中你还会看到Sound相关开关soundEnabled、soundVolume音量默认0.5。需要区分的是Sound指任务开始、结束、收到反馈等事件的通知提示音Text to Speech指把 AI 的完整回复内容逐条朗读出来。两者可以独立开关、互不影响你可以只保留提示音关闭朗读也可以开启朗读同时调低通知音量。全局语言支持Global Language SupportRoo Code 支持18 种语言覆盖了全球主要语区让不同语言背景的开发者都能以母语使用扩展的界面与交互文案。支持的 18 种语言语言语言代码语言语言代码English英语en日本語日语ja简体中文zh-CN한국어韩语ko繁體中文zh-TWItaliano意大利语itEspañol西班牙语esTürkçe土耳其语trहिन्दी印地语hiTiếng Việt越南语viFrançais法语frPolski波兰语plPortuguês葡萄牙语pt-BRCatalà加泰罗尼亚语caDeutsch德语deРусский俄语ruBahasa Indonesia印尼语idNederlands荷兰语nl语言代码的权威定义位于 vscode.ts通过languages数组和Language类型约束保证全仓库使用统一的语言标识。切换语言要切换界面语言进入 Roo Code 设置面板的高级设置Advanced Settings 语言Language从下拉列表中选择目标语言即可。你的选择会写入全局状态globalState中的language键之后重启或刷新都会保持。提示如果从未手动设置过语言Roo Code 会跟随VS Code 自身的界面语言自动选择。例如 VS Code 显示为中文时Roo Code 默认即为简体中文。多语言实现原理Roo Code 的多语言体系由两部分组成扩展主进程侧src/i18n与 Webview 前端侧webview-ui/src/i18n均基于 i18next 构建。在扩展侧setup.ts 启动时会扫描src/i18n/locales目录下所有语言子目录把每个语言目录中的多个 JSON 命名空间文件如common.json、tools.json、skills.json等批量加载为 i18next 资源并设置兜底语言为eni18next.init({ lng: en, fallbackLng: en, debug: false, resources: translations, interpolation: { escapeValue: false }, })语言初始化发生在扩展激活阶段extension.ts 调用initializeI18n(context.globalState.get(language) ?? formatLanguage(vscode.env.language))即优先读取用户手动设置的language否则把 VS Code 的区域设置交给 language.ts 中的formatLanguage()规范化——例如把en-us转为en-US、fr-ca转为fr-CA再与支持的 18 种语言比对命中才采用否则回退到英语。同文件还维护了语言代码到本地名称的映射如zh-CN→ 简体中文。翻译文案以 JSON 资源文件组织一个例子见 common.json其中既包含错误提示、确认对话框也包含支持 i18next 插值{{name}}与复数规则zero/one/other的模板。Webview 前端侧同样按 18 种语言维护了settings.json、chat.json等翻译文件保证设置界面、聊天界面与扩展命令的文案全程本地化。这套中心化语言代码定义 主进程/前端双 i18next 实例 VS Code 区域自动适配的架构让新增语言只需补充翻译文件并在 vscode.ts 的languages数组中登记代码即可全链路生效。小结建议回复让追问 Agent从逐字输入变为一键点击配合 Auto-Approval 的倒计时机制还能实现无人值守的自动应答文本转语音把 AI 回复变成可听的内容串行播放队列保证朗读不重叠语速可调且与声音通知相互独立全局语言支持以 18 种语言和自动跟随 VS Code 区域的语言体系降低了全球开发者的使用门槛。这三项功能虽然小而美却是把 Roo Code 打磨成顺手的日常开发工具的重要一环。想进一步了解它们与其他功能的协同方式可继续阅读 更多功能文档 中关联的主题章节或在设置面板中逐一体验。【免费下载链接】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),仅供参考