当前位置: 首页 > ai >正文

Roo Code自定义Mode(模式)

什么是自定义模式?

简单来说,自定义模式就像是给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.xdnf.cn/news/19522.html

相关文章:

  • 基于单片机智能家居环境监测报警系统Proteus仿真(含全部资料)
  • Cesium 加载桥梁3DTiles数据时,出现部分区域发暗、部分正常的现象
  • openEuler2403编译安装Nginx
  • 【期末复习】--软件工程
  • 苍穹外卖项目实战(日记十三)-记录实战教程及问题的解决方法-(day3-5) 修改菜品功能实现
  • C++ Bellman-Ford算法
  • 「数据获取」《中国住户调查年鉴》(2000-2024)(获取方式看绑定的资源)
  • # [特殊字符] 构建现代化黄金价格实时仪表盘:技术解析与实践
  • AI产品经理面试宝典第81天:RAG系统架构演进与面试核心要点解析
  • C++11新特性解析与应用
  • GPU 通用手册:裸机、Docker、K8s 环境实战宝典
  • Jetson AGX Orin平台R36.3.0版本1080P25fps MIPI相机图像采集异常调试记录
  • 在idea当中git的基础使用
  • 【公告】更新预告
  • 1.4 汽车的制动性
  • 面向对象六大设计原则(2.0详细版)
  • 永磁同步电机无速度算法--高频脉振方波注入法(测量轴系转子位置误差信号解耦处理)
  • Ansible 变量全解析与实践
  • MySQL DBA请注意 不要被Sleep会话蒙蔽了双眼
  • 【算法】124.二叉树中的最大路径和--通俗讲解
  • DeepSeek-V3.1 模型 API 新特性拆解:逆向 + 火山双渠道适配与推理模式智能切换指南
  • 保健品跨境电商:如何筑牢产品质量与安全防线?
  • 【推荐】Maye 更轻更简洁的快速启动工具【优化桌面】
  • AutoSar RTE介绍
  • FOC+MCU:重新定义吸尘器电机控制——高效、静音、智能的终极解决方案
  • LeetCode199. 二叉树的右视图 - 解题思路与实现
  • Linux Tun/Tap 多队列技术
  • CCache使用指南
  • 0901 C++的动态内存分配与回收
  • 全局网络,一目了然——OpManager可视化监控全景体验