十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

Roo Code 3.7.8 深度解析:GPT-4.5 Preview、Vertex AI 提示缓存与自定义系统提示

Roo Code 3.7.8 深度解析:GPT-4.5 Preview、Vertex AI 提示缓存与自定义系统提示 Roo Code 3.7.8 深度解析GPT-4.5 Preview、Vertex AI 提示缓存与自定义系统提示【免费下载链接】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 官方发布说明 v3.7.8.md2025-02-27展开系统讲解该版本三大核心变更GPT-4.5 Preview 模型接入、Google Vertex AI 平台下 Claude 模型的 Prompt Caching 支持以及面向高级用户的文件化自定义系统提示Custom System Prompts机制。读完本文你将掌握如何为 Roo Code 配置新模型、理解提示缓存对成本与延迟的实际影响并能正确评估与使用完全替换系统提示这一高风险高级能力。一、版本概览3.7.8 带来了什么Roo Code 3.7.8 发布于 2025-02-27是紧随 Claude 3.7 Sonnet 发布3.7.3~3.7.5 系列引入 thinking 支持之后的一个能力增强版本。官方 CHANGELOG 对该版本的记载与发布说明完全一致CHANGELOG.md## [3.7.8] - 2025-02-27 - Add Vertex AI prompt caching support for Claude models (thanks aitoroses and lupuletic!) - Add gpt-4.5-preview - Add an advanced feature to customize the system prompt概括而言该版本包含两类常规更新与一项高风险高级功能变更类别具体内容面向用户模型与 Provider 支持新增gpt-4.5-preview模型所有使用 OpenAI 系通道的用户模型与 Provider 支持Vertex AI 平台为 Claude 模型启用 Prompt Caching通过 Google Vertex AI 调用 Claude 的用户高级功能高风险通过.roo/system-prompt-[slug]文件完全替换模式的系统提示仅限高级用户下文分别从模型能力与提示工程两个维度深入这三项变更并结合仓库源码说明其底层实现。二、新增模型支持GPT-4.5 Preview2.1 变更内容3.7.8 在模型选择器中新增了 OpenAI 的gpt-4.5-preview。在 Roo Code 中模型能力并非硬编码在调用逻辑里而是由 packages/types/src/providers/ 下的模型元数据ModelInfo统一驱动。以同目录的 openai.ts 为例每个模型条目都声明了maxTokens、contextWindow、supportsImages、supportsPromptCache、价格字段与工具白名单等信息模型选择器与调用层都据此动态工作。需要说明的是当前仓库的 openai.ts 已随版本演进更新为gpt-4.1/gpt-4.1-mini/gpt-4.1-nano等系列openai.ts而gpt-4.5-preview的标识至今仍保留在 vercel-ai-gateway.ts 的openai/gpt-4.5-preview路由映射中说明该模型可通过 Vercel AI Gateway 等 OpenAI 兼容网关继续使用。2.2 在 Roo Code 中使用新模型在 Roo Code 中切换到gpt-4.5-preview的操作路径与切换任何 OpenAI 模型一致在 Chat 面板打开 API 配置或 Settings → API ConfigurationProvider 选择 OpenAI或使用openai/gpt-4.5-preview网关标识的兼容通道在模型下拉框中选择gpt-4.5-preview按需配置maxTokens输出上限与上下文窗口策略。底层调用由 openai.ts 与 openai-native.ts 等 Provider 实现负责二者均会根据模型元数据中的supportsPromptCache字段决定是否注入cache_control断点——这正是下一节要讨论的提示缓存机制在 OpenAI 通道上的同源体现。三、Vertex AI 上的 Claude 提示缓存从用得上到省钱快3.1 什么是提示缓存Prompt CachingPrompt Caching 是 Anthropic 系 API 提供的缓存能力当请求中的system或历史消息带有cache_control标记时Provider 会将这部分内容缓存后续请求命中缓存后按远低于标准输入的价格计费同时显著降低首字延迟。在 Roo Code 的模型元数据中这一能力由supportsPromptCache开关与cacheReadsPrice/cacheWritesPrice价格字段表达见 vertex.tsclaude-3-7-sonnet20250219: { maxTokens: 8192, contextWindow: 200_000, supportsImages: true, supportsPromptCache: true, inputPrice: 3.0, outputPrice: 15.0, cacheWritesPrice: 3.75, // 写入缓存的价格 cacheReadsPrice: 0.3, // 命中缓存读取的价格仅为输入价的 1/10 },可以看到缓存命中的读取价格0.3仅为标准输入价3.0的十分之一这就是多轮编码任务中上下文基本不变、每轮都要重新计算场景下的主要成本优化来源。3.2 Vertex AI 缓存实现受约束下的三步缓存策略3.7.8 之前直接 Anthropic API 通道已经具备提示缓存anthropic.ts 中通过cache_control: { type: ephemeral }标记 system prompt 与消息块3.7.8 的贡献在于把同一能力带到了 Google Vertex AI 通道。实现位于 src/api/providers/anthropic-vertex.ts源码注释清晰说明了 Vertex API 的三条硬性限制anthropic-vertex.ts最多 4 个内容块可以携带cache_control只有文本块可以被缓存图片等其他内容类型不行缓存标记只能作用于用户消息不能作用于助手消息。针对这些限制实现采用了三步缓存策略缓存 system prompt占用 1 个块缓存倒数第二条用户消息的最后一个文本块1 个块缓存最后一条用户消息的最后一个文本块1 个块。这样始终把标记数量控制在 4 块上限之内同时让系统提示与最新的用户上下文都获得缓存收益。核心代码anthropic-vertex.tsconst params { model: id, max_tokens: maxTokens ?? ANTHROPIC_DEFAULT_MAX_TOKENS, temperature, thinking, // Cache the system prompt if caching is enabled. system: supportsPromptCache ? [{ text: systemPrompt, type: text as const, cache_control: { type: ephemeral } }] : systemPrompt, messages: supportsPromptCache ? addCacheBreakpoints(sanitizedMessages) : sanitizedMessages, stream: true, ...nativeToolParams, }supportsPromptCache来自 vertex.ts 中各 Claude 模型claude-3-7-sonnet20250219、claude-3-5-sonnet-v220241022等的元数据标志addCacheBreakpoints负责为最后两条用户消息的末尾文本块打上cache_control断点。响应处理还会把cache_creation_input_tokens与cache_read_input_tokens从流式事件中透出anthropic-vertex.ts这意味着 Roo Code 的用量统计面板可以如实展示每次请求中写入缓存与命中缓存的 token 数方便用户量化收益。3.3 测试验证src/api/providers/tests/anthropic-vertex.spec.ts 中的用例直接断言了请求体的形状anthropic-vertex.spec.tssystem被包装为带cache_control: { type: ephemeral }的文本块用户消息同样携带缓存标记——这就为Vertex AI 上确实启用了缓存提供了可执行的实现级证据。3.4 如何验证缓存是否生效配置完成后可通过以下方式确认在 Roo Code 的任务用量Usage / Cost面板观察cache read指标是否随对话轮次增长对比长对话后续轮次的请求耗时命中缓存后首字延迟通常明显下降直接查看网络请求体确认system与用户消息是否带cache_control。如果使用的是 Vertex AI 上的 Claude且模型元数据中supportsPromptCache: false例如部分旧版或实验模型见 vertex.ts 中对应条目Roo Code 会按 anthropic-vertex.ts 的分支逻辑自动退回普通文本消息不注入缓存标记属于设计内的安全降级。补充提示缓存在其他通道上也有延续。3.7.8 之后Roo Code 相继为 OpenRouter 的anthropic/claude-3.7-sonnet:beta3.7.2、Amazon Bedrockv3.11.5.md等补齐了同类支持openai.ts 中也为兼容通道实现了缓存最后两条用户消息的策略openai.ts。提示缓存已成为 Roo Code 多 Provider 体系下的通用优化手段。四、高级功能用.roo/system-prompt-[slug]完全替换系统提示4.1 功能定位与用法3.7.8 引入了面向高级用户的自定义系统提示能力在工作区根目录下创建.roo/system-prompt-[slug]文件即可为对应 slug 的模式完全替换默认系统提示。其中[slug]是模式标识例如模式slug覆盖文件名Code 模式code.roo/system-prompt-codeArchitect 模式architect.roo/system-prompt-architectAsk 模式ask.roo/system-prompt-ask文件内容即新的完整系统提示。Roo Code 默认按内置模式 模式角色定义roleDefinition 工具使用规范 能力说明 规则 系统信息 目标 自定义指令的层次组装系统提示生成逻辑见 src/core/prompts/system.ts入口SYSTEM_PROMPT在 system.ts任务层调用见 src/core/task/Task.ts 的getSystemPrompt()而该机制的作用是用文件内容整段替换掉这套默认组装结果。官方发布说明同时给出了明确的风险警告该机制会绕过内置的安全护栏有极高的不可预期行为风险务必极端谨慎使用。4.2 适用场景与替代方案该能力适合需要深度定制 Agent 行为、且充分理解 Roo Code 提示结构的用户例如为特定模式注入完全自定义的角色、约束与输出格式在无法通过现有设置表达时强制改变 Agent 的思考与工具使用方式。如果只是追加指令而不是整体替换建议优先使用更安全的内置机制全局自定义指令Global Custom Instructions作用于所有模式模式级自定义指令Mode Custom Instructions作用于单个模式二者会通过addCustomInstructions追加到系统提示末尾见 system.ts不破坏内置护栏。4.3 机制的后续演进重要提醒需要注意该文件覆盖机制在后来的版本中被移除。官方更新说明 v3.48.0.mdx 明确记载File-Based System Prompt Override Removed.roo/system-prompt-{mode}文件覆盖机制已随聊天内警告横幅和 Mode 设置中的 Advanced: Override System Prompt 一起移除。请迁移到自定义指令custom instructions或模式级提示定制mode-level prompt customization。也就是说如果你是在较新版本≥ 3.48.0的 Roo Code 上使用.roo/system-prompt-[slug]已不再生效应迁移到 4.2 节提到的自定义指令方案本文档所述行为以 3.7.8 及相近版本为准。这也是为什么当前仓库源码中已检索不到该文件读取逻辑、仅在 system-prompt.spec.ts 的测试命名中留下痕迹的原因。五、总结Roo Code 3.7.8 是一个模型能力 成本优化 高级定制三线并进的版本GPT-4.5 Preview扩充了 OpenAI 系模型矩阵可通过模型选择器或 OpenAI 兼容网关使用Vertex AI 提示缓存在 Vertex API最多 4 个缓存块、仅文本块、仅用户消息的限制下通过缓存 system prompt 最后两条用户消息末尾文本块的策略把 Claude 系列在 Google Cloud 上的多轮调用成本与延迟显著降低且cache_read_input_tokens等指标会如实反映到用量统计中自定义系统提示以.roo/system-prompt-[slug]文件为高级用户提供了完全控制 Agent 系统提示的能力但官方同时声明这是绕过内置护栏的高风险操作该机制后续已被移除长期方案应落在自定义指令与模式级提示定制上。对读者而言最稳妥的落地方式是默认使用自定义指令做增量调优若确需整体替换系统提示请务必先确认你所使用的 Roo Code 版本并充分评估其不可预期行为风险。参考与延伸阅读仓库内路径版本记录CHANGELOG.md发布说明原文apps/docs/docs/update-notes/v3.7.8.mdVertex AI Provider 实现src/api/providers/anthropic-vertex.ts缓存行为测试src/api/providers/tests/anthropic-vertex.spec.tsVertex 模型元数据packages/types/src/providers/vertex.tsOpenAI 模型元数据packages/types/src/providers/openai.ts系统提示生成src/core/prompts/system.ts、src/core/task/Task.tsAnthropic 官方通道缓存实现src/api/providers/anthropic.ts功能移除声明apps/docs/docs/update-notes/v3.48.0.mdxProvider 说明apps/docs/docs/providers/anthropic.md【免费下载链接】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),仅供参考
返回列表