
Roo Code 3.10.2 补丁版本解析Windows 上下文提及修复、i18n 校正与 Sonnet 3.7 Token 上限修正【免费下载链接】Roo-CodeRoo Code gives you a whole dev team of AI agents in your code editor.项目地址: https://gitcode.com/GitHub_Trending/ro/Roo-Code本文基于官方更新说明 v3.10.2.md 展开结合 Roo Code 仓库源码逐项解析该补丁版本修复的四类问题Windows 平台上的上下文提及context mentions、德语翻译与遥测横幅的国际化、以及 Claude Sonnet 3.7 非思考模式下的最大输出 Token 限制。读完本文你将理解 Roo Code 的 提及解析链路、i18n 翻译加载机制与模型 Token 参数决策逻辑并掌握如何验证这些修复在实际代码中的落点。版本概览一次聚焦“正确性”的补丁发布Roo Code 3.10.2 于2025-03-21发布紧随 3.10.12025-03-20将建议回复改为可选以兼容自定义系统提示词与 3.10.02025-03-20引入建议回复、大文件分块加载与全新的 提及服务端查找。这是一个典型的patch release官方更新说明将其定位为“修复上下文提及、国际化和模型 Token 限制问题”修复 Windows 上的上下文提及context mentions问题修正德语翻译感谢 cannuri修复遥测横幅的国际化和i18n问题确保 Sonnet 3.7 非思考模式正确使用 8192 个最大输出 Token。与 v3.10.1、v3.10.3 等相邻版本相比3.10.2 没有新增功能全部改动围绕“行为正确性”展开这也使它成为理解 Roo Code 内部几个关键机制的良好切入点。修复一Windows 上的上下文提及Context Mentions什么是“上下文提及”在 Roo Code 中用户可以在消息中通过符号引用工作区文件、文件夹、URL、problems诊断问题、git-changes、terminal甚至斜杠命令这一机制在代码中被称为mentions。消息提交后提及会被解析并转换为独立的文本块格式化得看起来像一次read_file工具调用的结果让模型明确知道该文件已被读取。核心解析入口位于 src/core/mentions/index.ts 的parseMentions()函数约第 99 行而真正负责把用户内容转换成模型消息块的则是 src/core/mentions/processUserContentMentions.ts 中的processUserContentMentions()。后者会扫描包含user_message标记的文本块与tool_result块将提及解析结果拆分为用户原文提及被替换为干净的路径引用每个文件/文件夹的独立内容块形如[read_file for ...]的工具结果格式斜杠命令的帮助文本如有。Windows 上为什么容易出问题提及路径的匹配规则定义在 src/shared/context-mentions.ts 的mentionRegex第 63-64 行export const mentionRegex /(?:^|(?\s))(?!\\)((?:\/|\w:\/\/)(?:[^\s\\]|\\ )?|[a-f0-9]{7,40}\b|problems\b|git-changes\b|terminal\b)(?[.,;:!?]?(?[\s\r\n]|$))/ export const mentionRegexGlobal new RegExp(mentionRegex.source, g)该正则要求路径以/或协议://开头才能被识别为文件/文件夹提及。而 Windows 的绝对路径形如C:\Users\...盘符路径、反斜杠分隔符与正则约定的 POSIX 风格/path/to/file存在天然差异此外 Windows 文件系统大小写不敏感路径比较逻辑若不做大小写归一化也会导致“看似相同路径却不匹配”的误判。仓库中 src/utils/path.ts 专门处理了这类跨平台差异其头部注释明确说明了设计策略向 AI 与用户展示时统一使用正斜杠路径比较时使用arePathsEqual做安全比较实际文件系统操作仍走 Node.js 原生path模块。关键实现包括toPosixPath()将反斜杠统一替换为正斜杠p.replace(/\\/g, /)并对 Windows 的\\?\扩展长度路径原样返回第 30-39 行arePathsEqual()在process.platform win32时先toLowerCase()再比较第 65-68 行消除大小写差异字符串原型扩展String.prototype.toPosix供全局调用。从源码结构看3.10.2 的 Windows 提及修复正是围绕“提及正则与路径归一化在 Windows 上的配合”展开一方面确保提及在 Windows 路径场景下能被正确解析、去转义unescapeSpacessrc/shared/context-mentions.ts另一方面保证提及内容以正斜杠统一呈现给模型避免跨平台上下文不一致。这与 src/core/mentions/resolveImageMentions.ts图片提及解析共用同一套提及正则与unescapeSpaces工具因此修复是全局生效的。提及管线的测试保障src/core/mentions/tests/processUserContentMentions.spec.ts 覆盖了文本块、字符串型/数组型tool_result块、混合内容文本图片、showRooIgnoredFiles参数、斜杠命令内容拆分等场景src/core/mentions/tests/index.spec.ts 与 src/core/mentions/tests/resolveImageMentions.spec.ts 则分别验证 URL 提及替换、图片去重、忽略规则与不可读文件的容错行为。这些测试保证了提及修复不会破坏既有功能。修复二与三德语翻译校正与遥测横幅的国际化Roo Code 的 i18n 架构Roo Code 的国际化体系位于 src/i18n/核心是 src/i18n/setup.ts它以i18next为基础动态读取src/i18n/locales/语言/目录下的所有 JSON 文件按文件名作为命名空间namespace注册测试环境NODE_ENV test下跳过文件读取以保证可测试性。当前仓库支持 18 种语言每种语言目录下均包含common.json、embeddings.json、mcp.json、skills.json、tools.json、worktrees.json六个命名空间文件例如德语src/i18n/locales/de/简体中文src/i18n/locales/zh-CN/仓库还提供了翻译维护工具 scripts/find-missing-translations.js 与 scripts/find-missing-i18n-key.js用于发现缺失的翻译键说明社区驱动的多语言维护是 Roo Code 的常态。两处修复的含义德语翻译校正3.10.2 修正了德语语言包中的若干错误翻译。由于翻译直接以 JSON 键值对形式存在于 src/i18n/locales/de/该修复本质上是更正对应键的德语文案更新说明中特别感谢了社区贡献者 cannuri。遥测横幅 i18n 问题遥测telemetry横幅是首次启动时询问用户是否允许收集使用数据的提示条属于 webview 界面的一部分。3.10.2 修复了该横幅在多语言环境下国际化失效的问题——从机制上可以推断问题出在横幅文案的翻译键未正确接入 i18next 命名空间或未随语言切换生效。经过本次修复横幅文案将与其他界面文案一样随 src/i18n/setup.ts 加载的语言资源正确切换。提示遥测与数据收集的完整策略说明可参考仓库根目录的 PRIVACY.md其中包含遥测选项的开启/关闭与数据使用范围说明。修复四Sonnet 3.7 非思考模式的 8192 Token 上限问题背景Claude Sonnet 3.7claude-3-7-sonnet20250219是支持“思考预算”reasoning budget的混合推理模型其模型元数据中声明的maxTokens可达数万。但在非思考模式下若直接沿用模型声明的最大值会导致请求参数不符合 Anthropic API 对普通模型输出的预期。3.10.2 确保该模式下始终使用8192作为最大输出 Token。底层实现getModelMaxOutputTokens这一逻辑在 src/shared/api.ts 的getModelMaxOutputTokens()第 105-157 行中集中实现并被 src/api/transform/model-params.ts 的getModelParams()统一调用最终作用于 Anthropic / OpenAI / Gemini / OpenRouter 四种请求格式。其决策顺序如下混合推理模型shouldUseReasoningBudget为真返回settings.modelMaxTokens || DEFAULT_HYBRID_REASONING_MODEL_MAX_TOKENS16384Anthropic 上下文中的混合推理模型model.supportsReasoningBudget且模型 ID 含claude或格式为 anthropic丢弃模型实际 maxTokens直接返回ANTHROPIC_DEFAULT_MAX_TOKENS——这正是 3.10.2 修复所针对的路径第 125-128 行Anthropic 上下文且模型未声明 maxTokens同样兜底返回ANTHROPIC_DEFAULT_MAX_TOKENS显式声明 maxTokens 的模型钳制到上下文窗口的 20%Math.min(model.maxTokens, Math.ceil(model.contextWindow * 0.2))GPT-5 系列例外非 Anthropic 格式且未声明 maxTokens返回undefined兜底返回ANTHROPIC_DEFAULT_MAX_TOKENS。其中ANTHROPIC_DEFAULT_MAX_TOKENS 8192定义在 packages/types/src/providers/anthropic.ts随后被 src/api/providers/anthropic.ts 与 src/api/providers/anthropic-vertex.ts 用于构造请求体的max_tokens字段。测试如何固化这一行为仓库中有两处测试直接验证了“非思考模式强制 8192”的行为src/shared/tests/api.spec.ts“should return ANTHROPIC_DEFAULT_MAX_TOKENS for Anthropic models that support reasoning budget but arent using it”——给定supportsReasoningBudget: true、maxTokens: 64_000的模型且未启用思考断言结果为ANTHROPIC_DEFAULT_MAX_TOKENS并注释“Should be 8192, not 64_000”src/api/providers/tests/anthropic-vertex.spec.ts“does not honor custom maxTokens for non-thinking models”——对claude-3-7-sonnet20250219非:thinking后缀即使传入modelMaxTokens: 32_768getModel()仍断言maxTokens为 8192、reasoningBudget为undefined、温度为 0。这些测试恰好证明修复的目标不仅是“默认值正确”更是用户自定义 maxTokens 在非思考模式下同样被忽略从而避免任何绕过 8192 上限的配置路径。相关常量与函数名如DEFAULT_HYBRID_REASONING_MODEL_MAX_TOKENS、shouldUseReasoningBudget均可在 src/shared/api.ts 中追溯。升级、验证与后续版本对照如何升级到 3.10.2Roo Code 的完整安装与升级说明见仓库根目录 README.md。作为 VS Code 扩展3.10.2 可通过 VS Code 扩展市场正常渠道升级安装脚本 apps/cli/install.sh 与 scripts/install-vsix.js 则提供了命令行环境下基于 VSIX 包安装的途径。如何验证修复已生效Windows 提及在 Windows 上输入引用绝对路径文件观察回复中是否出现[read_file for ...]格式的内容块德语翻译将 VS Code 显示语言切换为德语检查遥测横幅与设置界面文案是否显示正确的德语Sonnet 3.7 Token使用claude-3-7-sonnet20250219不加:thinking后缀发起请求抓取 API 请求体确认max_tokens为 8192。与相邻版本的关系本版本在 3.10.x 系列中承前启后v3.10.02025-03-20引入建议回复、大文件分块加载与新的 提及文件查找服务端处理 gitignore 支持——3.10.2 的 Windows 提及修复正是对这一新提及管线的平台适配v3.10.12025-03-20将建议回复改为可选避免与自定义系统提示词冲突v3.10.32025-03-23进一步强化大文件处理显式整文件读取、自定义分块大小并修复二进制文件如 PDF的读取与提及、多块 diff 实验功能、OpenRouter 免费模型定价等——可见 3.10.x 系列围绕“提及、文件读取、模型参数”三条主线的持续打磨。小结Roo Code 3.10.2 虽是一个小型补丁版本却精准触达了三个对日常使用影响深远的机制跨平台路径与提及解析src/core/mentions/index.ts、src/utils/path.ts、i18n 翻译资源加载src/i18n/setup.ts以及模型输出 Token 的统一决策src/shared/api.ts 的getModelMaxOutputTokens。从源码与测试可以看出Roo Code 团队不仅修复了表面问题更通过集中式参数决策函数与针对性测试用例将“非思考模式固定 8192 Token”“Windows 路径归一化比较”等行为固化下来防止回归。对于希望深入理解 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),仅供参考