Roo Code之自定義指令(Custom Instructions),規則(Rules)

在Roo Code 中,Custom Instructions 可以通過Instructions 設定和Rules 規則文件實現。

什么是Custom Instructions?

自定義指令(Custom Instructions)定義了超出Roo基本角色定義范圍的具體行為、偏好和約束。示例包括編碼風格、文檔標準、測試要求和工作流程指南。

指令文件位置

可以通過全局規則(應用于所有項目)、工作區規則(針對特定項目)或在 Prompts 標簽界面中提供自定義指令。

全局規則目錄:自動應用于所有項目。

● Linux/macOS:~/.roo/rules/~/.roo/rules-{modeSlug}/  
● Windows:%USERPROFILE%.roo\rules\ 和 %USERPROFILE%.roo\rules-{modeSlug}\

工作區規則:僅應用于當前項目,可以覆蓋全局規則。

首選方法:目錄形式 (.roo/rules/)
```json . ├── .roo/ │ └── rules/ # 工作區范圍內的規則 │ ├── 01-general.md │ └── 02-coding-style.txt └── ...(其他項目文件) ```

備用方法:單文件形式 (.roorules)
```json . ├── .roorules # 工作區范圍內的規則(單文件) └── ...(其他項目文件) ```

模式特定指令:僅適用于特定模式(例如代碼模式)。

首選方法:目錄形式 (.roo/rules-{modeSlug}/)
.
├── .roo/
│   └── rules-code/     # 適用于“代碼”模式的規則
│       ├── 01-js-style.md
│       └── 02-ts-style.md
└── ...(其他項目文件)  
備用方法:單文件形式 (.roorules-{modeSlug})
```json . ├── .roorules-code # 適用于“代碼”模式的規則(單文件) └── ...(其他項目文件) ```

規則按順序加載:

先加載全局規則 , 然后是工作區規則(可以覆蓋全局規則)。

如何設置自定義指令

全局自定義指令

全局自定義指令適用于所有工作區,無論處理哪個項目,都能保持偏好設置。

設置步驟:

  1. 點擊右下角模式的菜單
  2. 在彈出的窗口點擊“模式設置”的按鈕

  1. 拉到最下方找到 “Custom Instructions for All Modes”

全局規則目錄

全局規則目錄功能提供了可復用的規則與自定義指令,這些規則會自動應用于所有的項目。Roo Code 既支持全局配置,也支持針對特定項目的覆蓋設置。

使用全局規則的好處

未使用全局規則時:必須在每個項目中單獨維護規則文件:

  • 將相同的規則復制到每個新項目

  • 手動在多個項目中更新規則

  • 項目之間無法保持一致性

使用全局規則后:只需創建一次規則即可隨處使用:

  • 全局設置偏好的編碼標準

  • 可根據需要為特定項目覆蓋特定規則

  • 在所有工作中保持一致性

  • 輕松一次性更新所有項目的規則

目錄結構

全局規則目錄的位置是固定的,不可自定義:

Linux/macOS:

~/.roo/                           # 全局配置目錄
├── rules/                        # 應用于所有項目的通用規則
│   ├── coding-standards.md
│   ├── formatting-rules.md
│   └── security-guidelines.md
├── rules-code/                   # 代碼模式專用規則
│   ├── typescript-rules.md
│   └── testing-requirements.md
├── rules-docs-extractor/         # 文檔提取模式規則
│   └── documentation-style.md
└── rules-{mode}/                 # 其他特定模式的規則目錄└── mode-specific-rules.md

Windows:

%USERPROFILE%\.roo\               # 全局配置目錄
├── rules\                        # 應用于所有項目的通用規則
│   ├── coding-standards.md
│   ├── formatting-rules.md
│   └── security-guidelines.md
├── rules-code\                   # 代碼模式專用規則
│   ├── typescript-rules.md
│   └── testing-requirements.md
└── rules-{mode}\                 # 其他特定模式的規則目錄└── mode-specific-rules.md
可用規則目錄
目錄名稱用途說明
rules/應用于所有模式的通用規則
rules-code/代碼模式專用規則
rules-docs-extractor/文檔提取專用規則
rules-architect/系統架構任務專用規則
rules-debug/調試工作流專用規則
rules-{mode}/自定義模式專用規則({mode}為模式標識占位符)
規則加載順序
規則按以下順序加載:
  1. 全局規則(來自 ~/.roo/ 目錄)
  2. 項目規則(來自 project/.roo/ 目錄)——可覆蓋全局規則
  3. 舊版文件(.roorules, .clinerules - 用于向后兼容)

在每個層級中,模式特定規則的加載優先級高于通用規則。

工作區級指令

工作區級指令僅適用于當前工作區,允許針對特定項目自定義 Roo Code 的行為。

工作區全局指令適用于當前項目中的所有模式,可通過以下文件方式定義:

首選方法:基于目錄的方式 (.roo/rules/)**

1. 在工作區根目錄創建名為 .roo/rules/ 的目錄

2. 將指令文件(如 .md, .txt 格式)放入該目錄。Roo Code 會遞歸讀取所有文件(包括子目錄),并按照文件名的字母順序將其內容附加到系統提示中

3. 當該目錄存在且包含文件時,其內容將與全局規則目錄一同加載

注意:如果 .roo/rules/ 目錄存在但為空,Roo Code 將回退使用 `.roorules 文件

備用方法:基于文件的方式 (.roorules)**

1. 如果 .roo/rules/ 目錄不存在或為空,Roo Code 會在工作區根目錄查找單個 .roorules 文件

2. 若找到該文件,則會加載其內容

(注:這種方式允許項目級定制,同時保持了與舊版本配置方式的兼容性)

模式專屬指令

模式專屬指令可通過兩種獨立的方式設置,這兩種方式可同時使用:
通過模式設置頁面設置:
  1. 點擊右下角模式的菜單
  2. 在彈出的窗口點擊“模式設置”的按鈕

  1. 在設置頁面找到 “Mode-specific Custom Instructions (optional)”,在下方的文本區域中輸入指令

  1. 保存更改:點擊"完成"保存設置

注:如果模式本身是全局模式(非工作區專屬),則為其設置的任何自定義指令都將在所有工作區中對該模式全局生效。

通過規則文件/目錄設置:
可通過文件方式提供模式專屬指令:
首選方法:基于目錄的方式 (.roo/rules-{modeSlug}/)
  1. 在工作區根目錄創建名為 .roo/rules-{modeSlug}/ 的目錄(例如 .roo/rules-docs-writer/)
  2. 將指令文件放入目錄(支持遞歸加載,包含子目錄)。系統按文件名字母順序讀取文件并將其內容附加到系統提示中
  3. 如果該目錄存在且包含文件,此方法的優先級高于備用文件方法
備用方法:基于文件的方式 (.roorules-{modeSlug})
  1. 如果 .roo/rules-{modeSlug}/ 目錄不存在或為空,Roo Code 會在工作區根目錄查找單個 .roorules-{modeSlug} 文件(例如 `.roorules-code)
  2. 若找到該文件,則會為該模式加載其內容

來自提示詞標簽頁的指令、全局規則、工作區規則和模式專屬規則將被組合使用。

指令組合方式

系統提示詞中的指令嚴格按照以下格式進行組合:
====
用戶自定義指令以下為用戶提供的額外指令,應盡力遵循這些指示,同時不得干擾"工具使用"準則。語言偏好:
[若已設置語言偏好]全局指令:
[來自模式設置的全局指令]模式專屬指令:
[當前模式下來自模式設置的模式專屬指令]規則:# 來自 rules-{modeSlug} 目錄的規則:
[若存在 ~/.roo/rules-{modeSlug}/.roo/rules-{modeSlug}/ 目錄,則包含其中所有文件的內容]# 來自 .roorules-{modeSlug} 的規則:
[若不存在模式專屬目錄或目錄為空,則使用 .roorules-{modeSlug} 文件內容]# 來自 .rooignore 的規則:
[若適用,包含與.rooignore相關的指令]# 代理規則標準 (AGENTS.md)[若工作區根目錄存在且啟用了 AGENTS.md 或 AGENT.md 文件,則包含其內容]# 來自 rules 目錄的規則:
[若存在 ~/.roo/rules/.roo/rules/ 目錄,則包含其中所有文件的內容]# 來自 .roorules 的規則:
[若不存在通用規則目錄或目錄為空,則使用 .roorules 文件內容]====

請注意:系統會從所有適用的目錄(包括全局目錄 ~/.roo/ 和工作區目錄 .roo/)加載規則,而不僅僅是第一個包含文件的目錄。模式特定規則的顯示順序優先于通用規則。僅在確定使用哪種方法時,基于目錄的規則才優先于基于文件的后備方案,但系統會讀取所有適用的目錄內容。

(注:這意味著系統會合并所有有效目錄中的規則文件內容,模式專屬規則會排列在通用規則之前顯示,但實際加載時會處理所有符合條件的目錄)

關于規則文件的說明

文件位置:首選方法使用 .roo/ 目錄內的規則目錄(.roo/rules/ 和 .roo/rules-{modeSlug}/)。備用方法使用直接位于工作區根目錄的單個文件(.roorules 和 .roorules-{modeSlug})。

遞歸讀取:規則目錄采用遞歸讀取方式,包含子目錄中的所有文件
文件過濾:系統自動排除緩存文件和臨時文件(包括但不限于 .DS_Store、.bak、.cache、.log、.tmp、Thumbs.db 等)
空文件處理:空文件或缺失的規則文件將被靜默跳過
來源標頭:基于目錄的規則不包含標頭,而基于文件的規則會包含 # 來自 {文件名} 的規則: 的標頭
規則交互:模式專屬規則是對全局規則的補充而非替換
符號鏈接:完全支持文件和目錄的符號鏈接,最大解析深度為5層以防止無限循環

(注:系統會智能處理各類規則文件,確保配置靈活性的同時保持穩定性。符號鏈接支持方便用戶管理分散的規則文件,但通過深度限制避免了可能的循環引用問題)

AGENTS.md 支持說明

Roo Code 同時支持從工作區根目錄下的 AGENTS.md(或備用文件 AGENT.md)加載規則:

  • 功能說明:提供智能體專屬規則和人工智能行為指南
  • 文件位置:必須位于工作區根目錄
  • 加載機制:默認自動加載。如需禁用 AGENTS.md 加載,請在 VSCode 設置中配置 “roo-cline.useAgentRules”: false
  • 優先級:在模式專屬規則之后加載,但在通用工作區規則之前加載
  • 標題格式:在系統提示中添加 # 代理規則標準 (AGENTS.md): 標頭
  • 符號鏈接:支持鏈接到其他位置的 AGENTS.md 文件的符號鏈接

此功能允許團隊維護標準化的 AI 智能體行為規則,這些規則可與項目代碼一同進行版本控制。

(注:通過 AGENTS.md 文件可以實現團隊協作場景下的標準化 AI 行為管理,符號鏈接支持則提供了靈活的配置文件管理方式)

自定義指令示例

  • “始終使用空格進行縮進,縮進寬度為4個空格”
  • “變量命名采用駝峰命名法”
  • “為所有新函數編寫單元測試”
  • “在提供代碼前先解釋推理過程”
  • “專注于代碼的可讀性和可維護性”
  • “優先使用社區中最常見的庫”
  • “為網站添加新功能時,確保其具備響應式和無障礙特性”

實戰建議

雖然這里的介紹使用的都是中文,但實際在實戰中, 指令和規則的內容最好都是使用英文。

在團隊環境中,建議采用以下方法:
  • 項目標準化
    使用納入版本控制的工作區 .roo/rules/ 目錄,規范特定項目中 Roo 的行為表現。這可確保團隊成員之間保持一致的代碼風格和開發工作流程。
  • 組織標準化
    通過全局規則(~/.roo/rules/)建立適用于所有項目的組織級編碼標準。團隊成員可設置相同的全局規則,確保所有工作保持統一標準。
  • 混合方案
    將組織標準的全局規則與項目特定要求的工作區規則相結合。需要時,工作區規則可以覆蓋全局規則的設置。

基于目錄的配置方式相比單一的 .roorules 文件具有更好的組織性,同時支持全局和項目層級的自定義配置。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/921628.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/921628.shtml
英文地址,請注明出處:http://en.pswp.cn/news/921628.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

9/8我是ai大師

一、變量定義部分(理解程序的 "記憶")c運行/* USER CODE BEGIN PV */ static uint8_t last_button_state 1; // 初始為高電平(未按下) static uint8_t device_mode 0; // 設備模式:0LD1, 1LD3, 2蜂鳴器, 3…

前沿重器[74] | 淘寶RecGPT:大模型推薦框架,打破信息繭房

前沿重器欄目主要給大家分享各種大廠、頂會的論文和分享,從中抽取關鍵精華的部分和大家分享,和大家一起把握前沿技術。具體介紹:倉頡專項:飛機大炮我都會,利器心法我還有。(算起來,專項啟動已經…

jenkins加docker 部署項目

jenkins加docker 部署springboot項目 1項目結構Dockerfile 內容 FROM openjdk:8-jdk-alpine ARG JAR_FILEtarget/*.jar COPY ${JAR_FILE} app.jar ENTRYPOINT ["java","-jar","/app.jar","--server.port9090"]在A服務器上啟動jenkins …

提示詞工程(Prompt Engineering)的崛起——為什么“會寫Prompt”成了新技能?

🎀【開場 貓貓狐狐的對話】🐾貓貓扒著屏幕:“喵?咱寫的這句 Prompt 怎么又跑偏啦?明明只是想讓它幫忙寫一段 Python 代碼,它偏要給咱寫論文摘要……” 🦊狐狐瞇著眼,聲音帶點冷意&a…

供應鏈管理系統入門知識:是什么,功能模塊,怎么定制開發?

如果你是剛接觸企業運營的新手,聽到 “供應鏈管理系統” 可能會覺得有點復雜。其實,它就像一個 “智能管家”,幫企業把從買材料到賣產品的一系列流程管得明明白白。今天就用大白話給你講清楚這個系統到底是什么,以及它能幫上什么忙…

kotlin - 平板分屏,左右拖動,2個Activity計算寬度,使用ActivityOptions、Rect(三)

kotlin - 平板分屏,左右拖動,2個Activity計算寬度,使用ActivityOptions、Rect使用平板,api33才支持,可以左右拖動,分屏第一個頁面 , 思考:分屏后,對整個app的影響&#x…

v0.29.3 敏感詞性能優化之繁簡體轉換 opencc4j 優化

敏感詞性能調優系列 v0.29.0 敏感詞性能優化提升 14 倍全過程 v0.29.1 敏感詞性能優化之內部類迭代器內部類 v0.29.2 敏感詞性能優化之基本類型拆箱、裝箱的進一步優化的嘗試 v0.29.3 敏感詞性能優化之繁簡體轉換 opencc4j 優化 背景 opencc4j opencc4j 中,因…

Spark SQL解析查詢parquet格式Hive表獲取分區字段和查詢條件

首先說一下,這里解決的問題應用場景: sparksql處理Hive表數據時,判斷加載的是否是分區表,以及分區表的字段有哪些?再進一步限制查詢分區表必須指定分區? 這里涉及到兩種情況:select SQL查詢和…

谷歌發布文本嵌入模型EmbeddingGemma(附部署方式)

EmbeddingGemma是谷歌于2025年9月開源的開放式文本嵌入模型,專為端側設備設計,具備以下核心優勢: 性能優勢 在MTEB基準測試中,EmbeddingGemma在500M以下參數規模的多語言文本嵌入模型中表現最佳,性能接近參數翻倍的頂…

CPU調度——調度的目標

2.2.2 調度的目標 當系統中“想運行”的實體多于 CPU 的數量時,調度就不可避免地要在“效率”與“公平”之間做取舍。直觀地說,一類目標希望把硬件壓榨到更高的利用率,讓單位時間內做更多的工作;另一類目標則關心個體體驗&#x…

C++ 8

封裝一個學生的類&#xff0c;定義一個學生這樣類的vector容器, 里面存放學生對象&#xff08;至少3個&#xff09;再把該容器中的對象&#xff0c;保存到文件中。再把這些學生從文件中讀取出來&#xff0c;放入另一個容器中并且遍歷輸出該容器里的學生。#include <iostream…

短視頻矩陣系統源碼開發搭建技術指南--支持OEM

短視頻矩陣系統架構設計短視頻矩陣系統通常采用分布式架構&#xff0c;包含內容管理、用戶管理、推薦算法、存儲分發等模塊。主流技術棧包括微服務框架&#xff08;Spring Cloud/Dubbo&#xff09;、消息隊列&#xff08;Kafka/RabbitMQ&#xff09;、數據庫&#xff08;MySQL/…

不連續頁分配器補充

vmalloc流程 1. 背景&#xff1a;vmalloc() 要解決的問題 kmalloc() 要求 虛擬地址連續&#xff0c;物理頁也連續。大塊內存分配可能失敗。vmalloc() 只保證 虛擬地址連續&#xff0c;物理內存可以由很多不連續的頁拼接。 實現的關鍵就是&#xff1a; 在 vmalloc 區域 找一塊空…

bug | 事務粒度不能太大,含demo

刷到一個說法&#xff0c;建議不要使用transaction注解。這個說法不太準確&#xff0c;注解可以用&#xff0c;但標注的事務粒度不能太大&#xff0c;這樣可能會引起數據庫阻塞問題。以下介紹注解事務和編程式事務的兩種用法。 關鍵字&#xff1a;聲明式事務&#xff0c;編程式…

別再看人形機器人了!真正干活的機器人還有這些!

每次提起“機器人”&#xff0c;你腦海中是不是立刻浮現出雙足行走、擬人微笑、還能陪你聊天的那種“人形機器人”&#xff1f;但真相是&#xff1a;人形機器人并非更實用&#xff0c;只是滿足了我們對“人類替代品”的幻想。事實上&#xff0c;機器人的世界遠比我們想象的更豐…

垃圾回收,幾種GC算法及GC機制

1.什么是垃圾回收&#xff1f;如何觸發垃圾回收&#xff1f; 垃圾回收(GC)是自動管理內存的一種機制&#xff0c;它負責自動釋放不再被程序引用的對象所占用的內存&#xff0c;這種機制減少內存泄漏和內存管理錯誤的可能性。可以通過多種方式觸發&#xff1a;內存不足時&#x…

更智能的零售終端設備管理:合規、安全與高效

目錄 引言&#xff1a;為什么零售連鎖和自助終端需要更智能的設備管理&#xff1f; 典型應用場景 1. 便利店連鎖 2. 大型超市 3. 加油站 4. 自助終端 核心功能&#xff0c;驅動高效與安全 1. 批量配置 2. 定時策略同步 3. 設備狀態監控 4. Kiosk 模式&#xff0c;保…

Elasticsearch:向量搜索過濾 - 保持相關性

作者&#xff1a;來自 Elastic Carlos Delgado 僅執行向量搜索以找到與查詢最相似的結果是不夠的。通常需要過濾來縮小搜索結果。本文解釋了在 Elasticsearch 和 Apache Lucene 中向量搜索的過濾是如何工作的。 Elasticsearch 擁有豐富的新功能&#xff0c;幫助你為自己的用例構…

Linux 性能調優之 OOM Killer 的認知與觀測

寫在前面 博文內容涉及到OOM Killer機制,以及利用 Cgroup/dmesg/BPF 觀測 OOM Killer 事件,包括云原生環境下的 OOM Killer 機制的簡單介紹 這是內存調優的最后一篇,之后會分享一些網絡調優相關內容 理解不足小伙伴幫忙指正 ??,生活加油 我不再將這個世界與我所期待的,塑…

webrtc之高通濾波——HighPassFilter源碼及原理分析

文章目錄前言一、導讀二、高通濾波過程1.HighPassFilter的創建1&#xff09;HighPassFilter的作用2&#xff09;開啟條件3&#xff09;開啟配置2.高通濾波整體過程1&#xff09;觸發時機2&#xff09;濾波器創建3&#xff09;高通濾波過程三、算法實現1.原理1&#xff09;濾波器…