什么是自定义模式?

简单来说,自定义模式就像是给Roo Code穿上不同的"职业装"。你可以创建针对特定任务或工作流程量身定制的模式,让Roo在不同场景下表现出专业的行为。

这些模式分为两种类型:全局模式(在所有项目中可用)和项目特定模式(仅在单个项目中定义)。这意味着你可以为不同的项目设置不同的Roo行为,比如为一个React项目设置前端开发模式,为一个Python项目设置数据分析模式。

探索社区模式库

不想从头开始创建模式?没问题!Roo Code提供了一个市场,让你可以一键浏览和安装社区贡献的模式。无论你是需要React开发、文档编写、测试还是其他专门任务的模式,都能在市场中找到由Roo Code社区创建和分享的解决方案。

这就像是有一个专门为开发者准备的"应用商店",里面充满了各种能提升工作效率的神奇工具。

使用自定义模式有什么好处?

专业化

创建针对特定任务优化的模式,比如"文档编写者"、“测试工程师"或"重构专家”。每个模式都可以被训练成特定领域的专家。

安全性

限制模式对敏感文件或命令的访问权限。例如,你可以创建一个"审查模式",将其限制为只读操作,防止意外修改重要文件。

实验性

安全地试验不同的提示和配置,而不会影响其他模式。这让你可以大胆尝试新想法,而不必担心破坏现有工作流程。

团队协作

与团队分享自定义模式,标准化工作流程。这特别适合需要保持一致编码风格和标准的开发团队。

自定义模式包含什么?

理解自定义模式的关键属性会帮助你更有效地定制Roo的行为:

  • Slug:模式的唯一内部标识符,用于引用模式,特别是关联模式特定的指令文件
  • Name:在Roo Code用户界面中显示的名称,应该具有可读性和描述性
  • Description:在模式选择器UI中显示的模式目的简短摘要
  • Role Definition:定义模式核心身份和专业知识的文本,放置在系统提示的开头
  • Available Tools(group):定义模式允许使用的工具集和文件访问权限
  • When to Use:(可选)为Roo的自动决策提供指导,特别是模式选择和任务协调
  • Custom Instructions:(可选)模式的具体行为指南或规则

导入/导出模式:轻松分享和备份

Roo Code让模式的分享和备份变得异常简单。你可以将任何模式及其相关规则导出到单个便携的YAML文件中,然后导入到任何项目中。

如何导出模式?

导出的过程非常简单直观,只需几步就能将你的模式及其所有规则保存为一个独立的 **<font style="color:rgb(64, 64, 64);background-color:rgb(236, 236, 236);">.yaml</font>** 文件。

  1. 找到模式管理界面:首先,在Roo Code侧边栏中进入 “Modes” (模式) 视图。这里会列出你所有的自定义模式和内置模式。
  2. 选择目标模式:从列表中找到你想要分享或备份的那个模式,点击选中它。
  3. 一键导出:点击界面上的 导出模式(Export Mode) 按钮(通常是一个下载图标)。
  4. 保存文件:在弹出的窗口中,选择一个你方便找到的位置来保存生成的 **<font style="color:rgb(64, 64, 64);background-color:rgb(236, 236, 236);">.yaml</font>** 文件。

这时,Roo Code会做一件很贴心的事:它不仅仅会打包你在界面上配置的模式基本信息(如名称、描述、权限等),还会自动搜寻并包含你项目目录下(**<font style="color:rgb(64, 64, 64);background-color:rgb(236, 236, 236);">.roo/rules-{模式slug}/</font>**)所有为该模式编写的特定规则文件。这一切都被整洁地封装在一个文件里,非常适合版本管理和分享。

如何导入并使用?

拿到了别人分享的YAML文件,或者想恢复自己的备份?导入过程同样轻松。

  1. 进入导入界面:同样在 “Modes” (模式) 视图下,找到并点击 导入模式(Import Mode) 按钮(通常是一个上传图标)。
  2. 选择文件:在文件选择器中,找到那份包含模式配置的 **<font style="color:rgb(64, 64, 64);background-color:rgb(236, 236, 236);">.yaml</font>** 文件。
  3. 决定模式归属:这是关键一步!系统会弹出一个对话框,让你选择导入层级(Import Level)
    • 项目(Project):选择此项,该模式将仅在当前项目/工作区中可用。它的配置会保存在项目根目录的 **<font style="color:rgb(64, 64, 64);background-color:rgb(236, 236, 236);">.roomodes</font>** 文件里,规则文件也会放在项目的 **<font style="color:rgb(64, 64, 64);background-color:rgb(236, 236, 236);">.roo/</font>** 目录下。这非常适合针对特定工程的环境配置。
    • 全局(Global):选择此项,该模式将对你所有的项目生效。它的配置会保存在你的用户全局设置中,规则文件也会存放在系统的全局Roo配置目录(如 **<font style="color:rgb(64, 64, 64);background-color:rgb(236, 236, 236);">~/.roo/</font>**)。这适合那些你经常使用的通用型模式。

点击确认后,模式就成功入驻你的Roo Code了,你可以立刻在模式选择器中找到并使用它。

主要功能

  • 可分享的设置:将模式及其规则打包到一个文件中,轻松与团队分享
  • 轻松备份:保存自定义模式配置,永不丢失
  • 项目模板:为不同类型的项目创建标准化模式模板
  • 简单迁移:在全局设置和特定项目之间轻松移动模式
  • 灵活的Slug更改:在导出文件中更改模式slug,无需手动编辑路径

实际应用场景

以前,你需要为每个新项目或团队成员手动重新创建自定义模式,并复制.roo/rules-{slug}/文件夹。更改slug需要在YAML文件中手动更新路径。

现在,只需单击一下即可将模式及其所有规则导出到YAML文件。再单击一下即可导入,自动设置所有内容。甚至可以在导出文件中更改slug,导入过程会自动处理所有路径更新。

导入导出常见问题解答

1. 导入时出现“重名”模式会怎样?

这是一个非常重要的问题!答案是:新的会覆盖旧的

Roo Code使用一个叫**<font style="color:rgb(64, 64, 64);background-color:rgb(236, 236, 236);">slug</font>**(标识符)的唯一字符串来区分不同的模式。如果你导入了一个模式,而其**<font style="color:rgb(64, 64, 64);background-color:rgb(236, 236, 236);">slug</font>**与现有模式完全相同,那么现有模式的全部配置都会被导入文件中的新配置所替换。

这意味着什么?
操作前务必想清楚!如果你之前对一个同名模式做过自定义修改,这些修改将在导入后完全丢失。所以,在导入团队分享的模式时,最好先沟通清楚,或者确认本地模式是否已无用处。

2. 全局导入和项目导入,我该怎么选?

这是决定模式适用范围的关键选择,两者的区别非常简单:

  • 全局导入(Global):选择这个,该模式将在你所有VSCode项目中可用。它的配置保存在你的用户个人目录下,与单个项目无关。这非常适合那些“万能”的通用模式,比如一个你在任何项目里都会用的“代码注释生成器”。
  • 项目导入(Project):选择这个,该模式仅在当前打开的这个项目(工作区) 中生效。它的配置会保存在项目根目录的一个名为**<font style="color:rgb(64, 64, 64);background-color:rgb(236, 236, 236);">.roomodes</font>**的文件里。这非常适合那些与特定项目强相关的模式,比如一个只能访问本项目**<font style="color:rgb(64, 64, 64);background-color:rgb(236, 236, 236);">src</font>**目录的“安全审查模式”。

简单记:全平台通用选全局,单项目专用选项目

3. 内置模式也能导出和分享吗?

当然可以! 但有一个重要的前提:只有当你对这个内置模式进行了自定义修改后,导出才有意义

Roo Code的原生内置模式(如Code、Architect)是每个人的标准配置。你直接导出一个没修改过的内置模式并分享给队友,队友那边本身就有一模一样的内置模式,所以这个操作意义不大。

但如果你修改了内置模式的指令或权限(比如定制了你们团队的“Architect”模式规范),那么导出功能就能完美地将你这些个性化定制打包分享出去。

4. 全局导入的模式,它的规则文件存到哪里去了?

这是一个很好的技术细节问题。规则文件并不会消失,只是换了个地方存放。

  • 项目模式的规则文件存储在项目本身的**<font style="color:rgb(64, 64, 64);background-color:rgb(236, 236, 236);">.roo/rules-{slug}/</font>**目录下。
  • 全局模式的规则文件则会被转移并存储到你的用户全局配置目录中,路径通常是**<font style="color:rgb(64, 64, 64);background-color:rgb(236, 236, 236);">~/.roo/rules-{slug}/</font>**(例如:**<font style="color:rgb(64, 64, 64);background-color:rgb(236, 236, 236);">~/.roo/rules-my-custom-mode/</font>**)。

这样做的好处是保持了全局配置的整洁性,所有全局性的设置都集中在用户目录下,与具体项目分离。

5. 导入前能修改模式的名字(slug)吗?如何操作?

能!而且这个功能非常实用! 它的工作流程如下:

  1. 你导出一个slug为**<font style="color:rgb(64, 64, 64);background-color:rgb(236, 236, 236);">original-mode</font>**的模式,得到一个YAML文件。
  2. 你用文本编辑器打开这个文件,将里面的**<font style="color:rgb(64, 64, 64);background-color:rgb(236, 236, 236);">slug</font>**字段值修改为**<font style="color:rgb(64, 64, 64);background-color:rgb(236, 236, 236);">new-mode</font>**
  3. 你导入这个修改后的YAML文件。

此时,导入功能会自动处理后续所有事情:它会创建一个全新的模式**<font style="color:rgb(64, 64, 64);background-color:rgb(236, 236, 236);">new-mode</font>**,并且会自动更新所有规则文件的内部路径引用,让它们与这个新**<font style="color:rgb(64, 64, 64);background-color:rgb(236, 236, 236);">slug</font>**匹配。你完全不需要手动去修改规则文件里的路径,系统帮你搞定了一切。

创建和配置自定义模式的方法

1. 直接问Roo!(推荐)

最快创建基本自定义模式的方法就是直接让Roo Code帮你完成。例如,你可以说:“创建一个名为’文档编写者’的新模式。它应该只能读取文件和编写Markdown文件。”

Roo Code会引导你完成整个过程,提示输入所需信息,并使用首选的YAML格式创建模式。

2. 使用提示选项卡

打开提示选项卡,点击模式标题右侧的"新建"按钮,填写各个字段(名称、slug、描述、保存位置、角色定义、可用工具和自定义指令),然后点击"创建模式"按钮。

3. 手动配置(YAML和JSON)

对于想要完全控制所有属性的用户,可以直接编辑配置文件来创建或修改自定义模式。Roo Code支持YAML(首选)和JSON格式。

YAML格式因其更好的可读性、支持注释、更清晰的多行字符串语法和更少的标点符号而成为首选格式。

customModes:- slug: docs-writername: 📝 Documentation Writerdescription: A specialized mode for writing and editing technical documentation.roleDefinition: You are a technical writer specializing in clear documentation.whenToUse: Use this mode for writing and editing documentation.customInstructions: Focus on clarity and completeness in documentation.groups:- read- - edit  # First element of tuple- fileRegex: \.(md|mdx)$  # Second element is the options objectdescription: Markdown files only- browser- slug: another-modename: Another Mode# ... other properties

JSON 格式示例:

{"customModes": [{"slug": "docs-writer","name": "📝 Documentation Writer","description": "A specialized mode for writing and editing technical documentation.","roleDefinition": "You are a technical writer specializing in clear documentation.","whenToUse": "Use this mode for writing and editing documentation.","customInstructions": "Focus on clarity and completeness in documentation.","groups": ["read",["edit", { "fileRegex": "\\.(md|mdx)$", "description": "Markdown files only" }],"browser"]},{"slug": "another-mode","name": "Another Mode"}]
}

模式特定指令:通过文件/目录提供

除了使用customInstructions属性外,你还可以通过工作区中的专用文件或目录为自定义模式提供指令。这对于组织冗长或复杂的指令特别有用。

首选方法是使用目录(.roo/rules-{mode-slug}/),你可以在其中放置一个或多个包含指令的文件。如果目录不存在或为空,Roo Code会查找名为.roorules-{mode-slug}的单个文件。

覆盖默认模式

你可以通过创建与默认模式相同slug的自定义模式来覆盖Roo Code的内置模式(如💻 Code、🪲 Debug、❓ Ask等)。

这意味着你可以全局或项目特定地自定义默认模式的行为,比如限制文件访问、为你的技术栈定制专业知识、添加自定义指令或更改可用工具。

理解正则表达式在自定义模式中的应用

正则表达式(fileRegex)提供了对文件编辑权限的细粒度控制。你可以创建模式来匹配文件路径,从而精确控制哪些文件可以被编辑。

重要的是要注意在JSON字符串中,反斜杠(\)必须双转义(如\\.md$),而在YAML中,单个反斜杠通常就足够了。

结语

Roo Code的自定义模式功能为开发者提供了前所未有的灵活性和控制力。无论你是想提高个人工作效率,还是希望标准化团队工作流程,这些工具都能帮助你打造真正适合自己的AI编程助手。

通过合理利用自定义模式,你可以让Roo Code成为你在不同开发任务中的专业合作伙伴,每个模式都像是一个专门为特定任务训练的专业团队成员。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/diannao/97602.shtml
繁体地址,请注明出处:http://hk.pswp.cn/diannao/97602.shtml
英文地址,请注明出处:http://en.pswp.cn/diannao/97602.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Next.js渲染模式:SSR、SSG与ISR揭秘

Next.js 核心渲染模式深度解析&#xff1a;SSR、SSG 与 ISR 在构建现代 Web 应用时&#xff0c;性能和用户体验是至关重要的考量。Next.js 作为 React 生态中一个备受推崇的框架&#xff0c;其强大的服务端渲染&#xff08;SSR&#xff09;、静态站点生成&#xff08;SSG&#…

Veo Videos Generation API 对接说明

本文介绍了如何对接 Veo Videos Generation API&#xff0c;通过输入自定义参数生成Veo官方视频。 下面将详细阐述 Veo Videos Generation API 的对接流程。 申请流程 使用 API 前&#xff0c;需前往 Veo Videos Generation API 页面申请服务。进入页面后&#xff0c;点击「…

YOLO 目标检测:YOLOv3网络结构、特征输出、FPN、多尺度预测

文章目录一、YOLOV31、网络结构1.1 整体结构1.2 主干网络1.3 特征输出1.4 特征融合FPN&#xff08;Feature Pyramid Networks&#xff09;FPN 融合上采样融合2、多尺度预测3、损失函数4、性能对比一、YOLOV3 YOLOv3&#xff08;You Only Look Once v3&#xff09;是YOLO系列中…

【GIS图像处理】有哪些SOTA方法可以用于将1.5米分辨率遥感图像超分辨率至0.8米精度的?

针对将1.5米分辨率遥感图像超分辨率至0.8米的需求,当前主流方法可分为以下几类,结合最新研究进展和实际应用场景,具体技术方案及SOTA方法如下: 一、基于Transformer的高效建模 1. Top-k标记选择Transformer(TTST) 核心机制:通过动态选择前k个关键标记(token),消除冗…

【电力电子】逆变器控制策略:PQ Droop下垂控制、电压电流双环控制与SPWM调制

逆变器中的 PQ Droop 控制。 1. PQ Droop 控制的定义 PQ Droop(有时也称为功率下垂控制,Power Droop Control)是微电网、并联系统或逆变器并网运行中常用的一种分布式功率控制方法。 P-Droop(有功下垂):通过调节逆变器输出频率与有功功率之间的关系实现功率分配。 Q-Dro…

【LeetCode 热题 100】5. 最长回文子串——中心扩散法

Problem: 5. 最长回文子串 文章目录整体思路完整代码时空复杂度时间复杂度&#xff1a;O(N^2)空间复杂度&#xff1a;O(1)整体思路 这段代码旨在解决经典的 “最长回文子串” (Longest Palindromic Substring) 问题。问题要求在一个给定的字符串 S 中&#xff0c;找到一个最长…

六、练习3:Gitee平台操作

练习3&#xff1a;Gitee平台操作 练习目标 掌握Gitee平台的基本操作&#xff0c;包括创建仓库、推送代码、团队协作等。 练习步骤 步骤1&#xff1a;Gitee账号准备 访问 gitee.com注册账号&#xff08;如果还没有&#xff09;登录Gitee 步骤2&#xff1a;配置SSH密钥 # …

Git软件版本控制

软件版本控制作用&#xff1a;软件源码版本管理、多人协作开发、版本多分支开发、代码回滚&#xff08;回退&#xff09;等功能。集中式版本控制&#xff1a;将代码仓库放在一台服务器上&#xff0c;开发时要依赖这台服务器。优点&#xff1a;简单、方便管理、适合中小型项目缺…

生产环境Spark Structured Streaming实时数据处理应用实践分享

生产环境Spark Structured Streaming实时数据处理应用实践分享 一、业务场景描述 我们所在的电商平台需要实时监控用户行为数据&#xff08;如点击、下单、支付等&#xff09;&#xff0c;基于事件级别的流式数据进行实时统计、会话聚合、漏斗分析&#xff0c;并将结果推送到Da…

海康相机开发---HCNetSDK

HCNetSDK&#xff08;Hikvision Network Software Development Kit&#xff09;是海康威视专为旗下安防监控设备打造的二次开发工具包&#xff0c;是连接上层应用与海康设备的核心桥梁。其封装了设备底层通信协议&#xff08;包括私有协议与部分标准协议&#xff09;&#xff0…

构建无广告私人图书馆Reader与cpolar让电子书库随身携带

文章目录前言&#xff1a;告别书荒&#xff0c;拯救灵魂的“摸鱼神器”1、关于Reader&#xff1a;小而美的开源在线阅读器2、Docker部署3、简单使用reader和添加书源4.群晖安装Cpolar工具5.创建reader阅读器的公网地址6.配置固定公网地址前言&#xff1a;告别书荒&#xff0c;拯…

amd cpu是x86架构吗

是的&#xff0c;AMD CPU属于x86架构‌&#xff0c;其64位扩展&#xff08;x86-64&#xff09;最初由AMD设计并成为行业标准。‌ ‌AMD与x86架构的关系‌ ‌技术渊源‌&#xff1a;AMD自1976年起通过技术授权成为x86架构的合法制造商&#xff0c;与英特尔共同主导x86市场。2003…

vercel上线资源无法加载

背景&#xff1a;在本地跑开发服务器没问题&#xff0c;但是部署到 vercel 上就有问题上一次出现类似问题是在更新游戏引擎方法后本地可以跑但是上线没有成功&#xff0c;当时是因为 runner.html 是在部署时通过脚本从远端仓库拉取的&#xff0c;所以解决方案&#xff1a;1.更新…

Node.js 的模块化规范是什么?CommonJS 和 ES6 模块有什么区别?

目录 一、为什么需要模块化&#xff1f; 二、Node.js 的模块化规范 三、CommonJS 模块化 1. 基本语法 2. 特点 3. 缺点 四、ES6 模块&#xff08;ESM&#xff09; 1. 基本语法 2. 特点 3. 在 Node.js 中的使用 五、CommonJS 和 ES6 模块的区别 六、实际开发中的选择…

设计模式:代理模式(Proxy Pattern)

文章目录一、代理模式的定义二、实例分析三、示例代码一、代理模式的定义 代理模式是一种结构型设计模式&#xff0c;它为某个对象提供一个代理或占位符&#xff0c;以控制对这个对象的访问。简单来说代理对象在客户端和目标对象之间起到中介作用&#xff0c;客户端并不会直接操…

数据类型序列化-封装

/// <summary> /// 定义泛型接口 /// </summary> /// <typeparam name"T">T</typeparam> public interface ISettingValue<T> {/// <summary>/// value/// </summary>T DoubleValue { get; }/// <summary>/// key//…

PitVis-2023挑战赛:内镜下垂体瘤手术视频中的手术流程识别|文献速递-深度学习人工智能医疗图像

Title题目PitVis-2023 challenge: Workflow recognition in videos of endoscopic pituitary surgeryPitVis-2023挑战赛&#xff1a;内镜下垂体瘤手术视频中的手术流程识别01文献速递介绍内镜视觉挑战赛与PitVis-2023挑战赛背景及核心内容 “内镜视觉&#xff08;EndoVis&#…

2025年8月个人工作生活总结

本文为 2025年8月工作生活总结。研发编码 无处不在的AI 现在很多地方都在推AI&#xff0c;广西的人工智能走在前列&#xff0c;要赋能各行各业。至于我&#xff0c;主要就是在写点代码&#xff0c;写点交差的文档。其实现在我已经有点分析哪些代码哪些文字是AI写的了。我工作用…

Dubbo常见面试题

1、默认使用的是什么通信框架&#xff0c;还有别的选择吗? 默认也推荐使用netty框架&#xff0c;还有mina。 2、服务调用是阻塞的吗&#xff1f; 默认是阻塞的&#xff0c;可以异步调用&#xff0c;没有返回值的可以这么做。 3、一般使用什么注册中心&#xff1f;还有别的…

简单的加密算法

// 加密函数&#xff08;32位版本&#xff09; //这里的 data 是ID&#xff0c; dword encrypt(dword data, dword key, int shift) {data ^ key; // 第一步&#xff1a;异或混淆// 循环左移&#xff08;shift范围1-31&#xff09;return (data << sh…