Roo Code(前身为 Roo Cline)一个 AI 驱动的自主编码代理
Roo Code(前身为 Roo Cline)
Roo Code 是一个 AI 驱动的自主编码代理,它存在于您的编辑器中。它可以:
- 用自然语言沟通
- 直接在您的工作区读写文件
- 运行终端命令
- 自动化浏览器操作
- 与任何 OpenAI 兼容或自定义的 API/模型集成
- 通过自定义模式调整其"个性"和能力
无论您是寻找灵活的编码伙伴、系统架构师,还是像 QA 工程师或产品经理这样的专业角色,Roo Code 都可以帮助您更高效地构建软件。官网:https://github.com/RooVetGit/Roo-Code/
star9.9k 下载324k
在openrouter deepseek-v3排名第2 。第一就是Cline
主要特性
多种模式
Roo Code 通过专业化的模式适应您的需求:
- 代码模式: 用于通用编码任务
- 架构师模式: 用于规划和技术领导
- 询问模式: 用于回答问题和提供信息
- 调试模式: 用于系统性问题诊断
- 自定义模式: 创建无限专业角色,用于安全审计、性能优化、文档编写或任何其他任务
智能工具
Roo Code 配备了强大的工具,可以:
- 读写项目中的文件
- 在 VS Code 终端中执行命令
- 控制网络浏览器
- 通过 MCP(模型上下文协议)使用外部工具
MCP 通过允许您添加无限自定义工具来扩展 Roo Code 的能力。与外部 API 集成、连接数据库或创建专业开发工具 - MCP 提供了扩展 Roo Code 功能以满足您特定需求的框架。
自定义
使 Roo Code 按照您的方式工作:
- 自定义指令实现个性化行为
- 自定义模式用于专业任务
- 本地模型用于离线使用
- 自动批准设置加快工作流程
本地设置和开发(不必须)
- 克隆仓库:
git clone https://kkgithub.com/RooVetGit/Roo-Code.git
- 安装依赖:
进入目录后执行:
npm run install:all
- 启动网页视图(Vite/React 应用,带热模块替换):
npm run dev
- 调试: 在 VSCode 中按
F5(或运行 → 开始调试)打开一个加载了 Roo Code 的新会话。
网页视图的更改将立即显示。核心扩展的更改将需要重启扩展主机。
或者,您可以构建一个 .vsix 文件并直接在 VSCode 中安装:
npm run build
bin/ 目录中将出现一个 .vsix 文件,可以用以下命令安装:
code --install-extension bin/roo-cline-<version>.vsix
我们使用 changesets 进行版本控制和发布。查看我们的 CHANGELOG.md 获取发布说明。
实践使用
本地安装Roo Code并不必须。可以直接在VSCode的插件里面选RooCode安装
VSCode安装插件
- 打开 VS Code
- 访问扩展:单击活动栏中的扩展图标,或者按 (Windows/Linux) 或 (macOS)
Ctrl+Shift+XCmd+Shift+X - 搜索: “Roo Code”
- 选择 RooVeterinaryInc 的“Roo Code”,然后单击 Install
- 如果出现提示,请重新加载 VS Code
安装后,在活动栏中找到 Roo 代码图标 (一个飞机图标) 以打开 Roo 代码面板。
VSCode配置Roo Code
主要是配置LLM模型调用信息,比如base_url和key。

本地设置和开发(非必须)
下载源代码
git clone https://github.com/RooVetGit/Roo-Code.git
进入目录,安装依赖
cd Roo-Code
npm run install:all
启动网页视图
npm run dev
但是页面里没有东西,使用curl,发现输出是:
<!DOCTYPE html>
<html lang="en"><head><script type="module">
import RefreshRuntime from "/@react-refresh"
RefreshRuntime.injectIntoGlobalHook(window)
window.$RefreshReg$ = () => {}
window.$RefreshSig$ = () => (type) => type
window.__vite_plugin_react_preamble_installed__ = true
</script><script type="module" src="/@vite/client"></script><meta charset="UTF-8" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><title>Roo Code</title></head><body><div id="root"></div><script type="module" src="/src/index.tsx"></script></body>
</html>
经咨询,得知:
npm run dev是一个在Node.js项目中常用的命令,用于启动开发环境。它执行的是项目中package.json文件中scripts部分中定义的dev脚本,通常用于启动本地开发服务器,支持热重载、自动刷新、模块热更新(HMR)等功能,方便开发人员进行实时编码和调试。
看起来普通人不需要这一步。
从源码构建.vsix (非必须)
- 在项目目录中运行
npm run build - 在目录中找到生成的 VSIX 文件
bin/ - 在 VS Code 中,打开“扩展”视图,然后选择“从 VSIX 安装...”来自 “...”菜单
- 浏览并选择生成的文件
.vsix
=> Run vsce ls --tree to see all included files.DONE Packaged: bin\roo-cline-3.11.4.vsix (144 files, 27.1 MB)
生成了文件:2025/04/04 18:03 28,412,516 roo-cline-3.11.4.vsix
任务测试
你好,这个项目是Deesite的源代码,请分析一下它的架构
在当前工作目录中,我能够看到Deesite项目的文件结构。首先,README.md文件通常包含项目的基本信息和使用说明,可以提供关于项目架构和功能的上下文。其次,src/目录包含主要源代码,包括组件、样式和工具。
为了理解架构,我将从分析README.md文件开始,然后检查src/components/中的组件以及相关的中间件和公共资源。这样可以帮助我获取更全面的架构概述和设计选择。
从README.md文件中可以看出,Deesite(题目为DeepSite)是一个以Docker为基础的项目,配置了相关的属性和描述,包括:.....
为了更深入理解项目的架构,我将分析源代码中的组件。首先,我将列出src/components/中的组件,以获取该项目使用的构建块的概览。这将帮助我了解其主要功能和设计模式。
....
App.tsx 组件是该项目的主要功能组件,负责应用程序的核心逻辑与用户界面。下面是该组件的一些关键特点和架构要点:
组件结构
-
导入的库和组件:
- 使用了 React 库以及多种其他库,如:
@monaco-editor/react(用于代码编辑器)、react-use(用于钩子)和react-toastify(用于通知)。 - 引入了多个子组件:如
Header、DeployButton、Tabs、AskAI和Preview。
- 使用了 React 库以及多种其他库,如:
-
状态管理:
- 使用了
useState钩子来管理多种状态,包括 HTML 内容、布局状态、错误状态等。 - 使用
useLocalStorage钩子来存储和恢复用户的 HTML 内容。
- 使用了
-
事件处理:
- 定义了多个处理函数(如
fetchMe、resetLayout等)来处理用户界面交互和窗口大小变化。 - 在组件挂载和卸载时进行相应的事件处理和清理。
- 定义了多个处理函数(如
-
渲染逻辑:
- 组件渲染了一个基本的布局,包含
Header、Editor、AskAI和Preview,使用了样式类来控制布局和外观。
- 组件渲染了一个基本的布局,包含
-
功能:
- 实现了拖动调整编辑器和预览窗口的大小,支持不同屏幕尺寸的布局适配。
- 提供了错误提示和数据加载反馈,提升了用户体验。
结论
这个项目的架构是典型的现代 React 应用架构,结合了组件化设计、状态管理和用户交互逻辑,旨在为用户提供一个灵活和直观的编辑体验。核心功能围绕编辑和实时预览 HTML 内容展开,组件之间通过 props 和 hooks 进行数据和事件的传递。
接下来,我将检查src/utils/目录下的工具文件,以了解项目中使用的工具和常量,这有助于进一步分析整个项目的逻辑和架构。
......
App.tsx 组件是该项目的主要功能组件,负责应用程序的核心逻辑与用户界面。下面是该组件的一些关键特点和架构要点:
组件结构
-
导入的库和组件:
- 使用了 React 库以及多种其他库,如:
@monaco-editor/react(用于代码编辑器)、react-use(用于钩子)和react-toastify(用于通知)。 - 引入了多个子组件:如
Header、DeployButton、Tabs、AskAI和Preview。
- 使用了 React 库以及多种其他库,如:
-
状态管理:
- 使用了
useState钩子来管理多种状态,包括 HTML 内容、布局状态、错误状态等。 - 使用
useLocalStorage钩子来存储和恢复用户的 HTML 内容。
- 使用了
-
事件处理:
- 定义了多个处理函数(如
fetchMe、resetLayout等)来处理用户界面交互和窗口大小变化。 - 在组件挂载和卸载时进行相应的事件处理和清理。
- 定义了多个处理函数(如
-
渲染逻辑:
- 组件渲染了一个基本的布局,包含
Header、Editor、AskAI和Preview,使用了样式类来控制布局和外观。
- 组件渲染了一个基本的布局,包含
-
功能:
- 实现了拖动调整编辑器和预览窗口的大小,支持不同屏幕尺寸的布局适配。
- 提供了错误提示和数据加载反馈,提升了用户体验。
结论
这个项目的架构是典型的现代 React 应用架构,结合了组件化设计、状态管理和用户交互逻辑,旨在为用户提供一个灵活和直观的编辑体验。核心功能围绕编辑和实时预览 HTML 内容展开,组件之间通过 props 和 hooks 进行数据和事件的传递。
接下来,我将检查src/utils/目录下的工具文件,以了解项目中使用的工具和常量,这有助于进一步分析整个项目的逻辑和架构。
....
总结
defaultHTML 提供了应用程序的基础模板,有助于用户在使用编辑器时快速预览内容。该模板简洁但有效,允许用户轻松识别和理解其结构。同时,这也表明该项目的实用性,强调了一个用户友好的界面的重要性。
下一步
为了完成对整体架构的分析,我总结如下:
- 该项目的组件化设计使用 React,强调了灵活性和可维护性。
- 核心功能围绕编辑和实时预览 HTML 内容,并提供了用户互动(如 AI 辅助功能)。
- 目录结构 整洁且符合现代前端开发的惯例,利用了有用的工具和库。
如果需要更详细的信息或其他文件的分析,请告知我。
API Request
$0.0000
Task Completed
我已分析了Deesite项目的架构,了解了其核心组件和结构。主要组件是App.tsx,负责应用程序的逻辑与用户界面,同时定义了defaultHTML作为默认的HTML模板。该项目结合了现代的React架构,强调了组件化和用户交互。
总结
因为最近接触到多个AI编程助手,比如Trae、Cline、DeepSite等,因此对Roo Code的能力尚在意料之中,暂时没有那种说“王炸级”应用的感觉。
不过至少它不会比那几个竞争力弱,否则它也不需要在Cline的基础上再二次开发了。个人感觉这个东西值得花点时间去慢慢体会,应该是免费里面一线的产品。
相关文章:
Roo Code(前身为 Roo Cline)一个 AI 驱动的自主编码代理
Roo Code(前身为 Roo Cline) Roo Code 是一个 AI 驱动的自主编码代理,它存在于您的编辑器中。它可以: 用自然语言沟通直接在您的工作区读写文件运行终端命令自动化浏览器操作与任何 OpenAI 兼容或自定义的 API/模型集成通过自定…...
数字化三维实训室:无穿戴动作捕捉技术如何赋能体育与舞蹈
在高校体育与舞蹈教学中,精准的动作训练至关重要。传统训练方式依赖教练的肉眼观察与手动记录,存在效率低下、误差较大的情况。尤其在快速连续动作或复杂肢体形态的捕捉中,人工判读易受主观经验限制,难以实现标准化评估。面对传统…...
Linux make与makefile 项目自动化构建工具
本文章将对make与makefile进行一些基础的讲解。 假设我们要建造一座房子,建造过程涉及很多步骤,比如打地基、砌墙、安装门窗、粉刷墙壁等。每个步骤都有先后顺序,并且有些步骤可能依赖于其他步骤的完成。比如,你必须先打好地基才…...
leetcode51-N皇后
leetcode 51 思路 本题可以使用回溯算法来解决。回溯算法通过尝试所有可能的解决方案来找到问题的解的算法,当发现当前的选择无法得到有效的解决方案时,就回溯到上一步,尝试其他的选择。对于 N 皇后问题,我们可以逐行放置皇后&…...
linux 命令 awk
awk 是 Linux/Unix 系统中一个强大的文本处理工具,尤其擅长处理结构化文本数据(如日志、表格数据)。它不仅是命令行工具,还是一种脚本语言,支持变量、条件、循环等编程特性 1. 基本语法 awk [选项] 模式 {动作} 文件名…...
接口自动化学习四:全量字段校验
什么是全量字段校验: 校验接口返回响应结果的全部字段(更进一步的断言)。 校验内容: 1.字段值 2.字段名或者字段类型 校验流程: 1.定义 校验规则(json语法,只能针对json对象校验,如…...
R语言——获取数据1
参考资料:学习R 数据的来源可以由很多。R内置有许多数据集,而在其他的附件包中能找到更多的数据。R能从各式各样的来源中读取,且支持大量的文件格式。 1、内置的数据集 R的基本分发包有一个datasets,里面全是示例数据集。很多其他…...
自编码器(AutoEncoder)概念解析与用法实例:压缩数字图像
目录 1. 前言 2. 自编码器的基本概念 2.1 自编码器的结构 2.2 损失函数 3. 使用 PyTorch 构建自编码器:压缩数字图像 3.1 导入必要的库 3.2 定义自编码器模型 3.3 准备数据集 3.4 训练模型 3.5 可视化重建结果 3.6 完整代码 4. 自编码器的应用场景 5. …...
从零开始打造HTML5拼图游戏:一个Canvas实战项目
从零开始打造HTML5拼图游戏:一个Canvas实战项目 先看效果: 你是否曾经被那些精美的网页拼图游戏所吸引?用 HTML5 的 Canvas 技术,从零开始,教你怎么画图、处理鼠标事件,还有游戏的核心逻辑,…...
每日一题洛谷P8649 [蓝桥杯 2017 省 B] k 倍区间c++
P8649 [蓝桥杯 2017 省 B] k 倍区间 - 洛谷 (luogu.com.cn) #include <iostream> #include <vector> using namespace std; #define int long long signed main() {int n, k;cin >> n >> k;vector<int> a(n 1);vector<int> sum(n 1);vec…...
在uniapp中,video比普通的标签层级高解决问题
<view style"position: relative;"><video style"position: absolute;z-index:-1"></video><view style"position: absolute;z-index:999"></view> </view> 上面代码并没有解决view的层级比video高的问题&…...
《探索边缘计算:重塑未来智能物联网的关键技术》
最近研学过程中发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击链接跳转到网站人工智能及编程语言学习教程。读者们可以通过里面的文章详细了解一下人工智能及其编程等教程和学习方法。下面开始对正文内容的…...
Linux(十二)信号
今天我们就要来一起学习信号啦!!!还记得小编在之前的文章中说过的ctrlc吗?之前小编没有详细介绍过,现在我们就要来学习啦!!! 一、信号的基本介绍 首先,小编带领大家先一…...
LeetCode算法题(Go语言实现)_30
题目 给定单链表的头节点 head ,将所有索引为奇数的节点和索引为偶数的节点分别组合在一起,然后返回重新排序的列表。 第一个节点的索引被认为是 奇数 , 第二个节点的索引为 偶数 ,以此类推。 请注意,偶数组和奇数组内…...
无线通信技术(三):5G NR通信频带划分与应用场景
目录 一.5G NR频带划分概述 二.全球运营商5G频带分配对比 三.5G频带的应用场景 5G网络的发展离不开频谱资源的合理分配。不同的频段决定了5G的覆盖范围、传输速率和应用场景。本文将系统介绍5G NR频带划分,并结合实际应用场景,理解不同频段的特性及其适用环境。 …...
【读书笔记·VLSI电路设计方法解密】问题61:扫描插入的目的是什么
如问题60所述,要构建可测试电路,必须确保电路中每个节点都具有可控性和可观测性。但对于包含时序元件(如触发器、锁存器等存储元件)的电路,若不采取特殊设计则难以实现这两项特性。这是因为时序元件关联节点的逻辑状态不仅取决于当前输入,还受其先前存储状态影响——它们…...
VirtualBox安装FnOS
1.下载FnOS镜像 下载网址: https://www.fnnas.com/2.创建虚拟机 虚拟机配置如图所示(注意操作系统类型和网卡配置) (注意启动顺序) 3.启动虚拟机 网卡类型选择桥接的Virtual Adapter 如果没有IP地址或者IP地址无法…...
Pycharm(十二)列表练习题
一、门和钥匙 小X在一片大陆上探险,有一天他发现了一个洞穴,洞穴里面有n道门, 打开每道门都需要对应的钥匙,编号为i的钥匙能用于打开第i道门, 而且只有在打开了第i(i>1)道门之后,才能打开第i1道门&#…...
集合与容器:List、HashMap(II)
一、ArrayList 是集合框架中最核心的动态数组实现,高频使用的容器之一。 1. 核心数据结构 基于数组实现,维护elementData数组存储元素: transient修饰的elementData不会被默认序列化(通过自定义序列化逻辑优化存储)…...
Eclipse 视图(View)
Eclipse 视图(View) Eclipse 视图(View)是 Eclipse 界面的重要组成部分,它提供了用户交互的平台,使得用户可以通过图形界面来编辑、调试、分析代码等。在本文中,我们将深入探讨 Eclipse 视图的功能、使用方法以及它们在软件开发中的作用。 1. 视图的功能 Eclipse 视图具…...
《AI大模型应知应会100篇》第3篇:大模型的能力边界:它能做什么,不能做什么
第3篇:大模型的能力边界:它能做什么,不能做什么 摘要 在人工智能飞速发展的今天,大语言模型(LLM)已经成为许多领域的核心技术。然而,尽管它们展现出了惊人的能力,但也有明显的局限性…...
Springboot----@Role注解的作用
Role(BeanDefinition.ROLE_INFRASTRUCTURE) 是 Spring 框架中的一个注解,用于显式标记 Bean 的角色,表明该 Bean 是 Spring 容器内部的基础设施组件(如后置处理器、工具类等),而非用户直接使用的业务 Bean。其核心作用…...
小程序API —— 58 自定义组件 - 创建 - 注册 - 使用组件
目录 1. 基本介绍2. 全局组件3. 页面组件 1. 基本介绍 小程序目前已经支持组件化开发,可以将页面中的功能模块抽取成自定义组件,以便在不同的页面中重复使用;也可以将复杂的页面拆分成多个低耦合的模块,有助于代码维护࿱…...
前端页面鼠标移动监控(鼠标运动、鼠标监控)鼠标节流处理、throttle、限制触发频率(setTimeout、clearInterval)
文章目录 使用lodashjs库手动实现节流(通过判断之前设定的定时器setTimeout是否存在) 使用lodashjs库 <!DOCTYPE html> <html lang"zh-CN"><head><meta charset"UTF-8"><meta http-equiv"X-UA-Com…...
在 Android Studio 中运行安卓应用到 MuMu 模拟器
一、准备工作 1、确保 MuMu 模拟器已正确安装并启动 从官网下载安装最新版 MuMu 模拟器。启动后,建议在设置中调整性能参数(如 CPU 核心数和内存分配),以保证流畅运行。 2、配置 Android Studio 环境(按…...
从文本到多模态:如何将RAG扩展为支持图像+文本检索的增强生成系统?
目录 从文本到多模态:如何将RAG扩展为支持图像文本检索的增强生成系统? 一、为什么需要扩展到多模态? 二、多模态 RAG 系统的基本架构 三、关键技术点详解 (一)多模态嵌入(Embedding)技术 …...
【JavaEE】网络原理详解
1.❤️❤️前言~🥳🎉🎉🎉 Hello, Hello~ 亲爱的朋友们👋👋,这里是E绵绵呀✍️✍️。 如果你喜欢这篇文章,请别吝啬你的点赞❤️❤️和收藏📖📖。如果你对我的…...
Python项目-基于Flask的个人博客系统设计与实现(2)
源代码 续 {% extends base.html %}{% block title %}评论管理{% endblock %}{% block content %} <div class"container py-4"><div class"row"><div class"col-md-3"><div class"list-group mb-4"><a h…...
洛谷题单3-P1720 月落乌啼算钱(斐波那契数列)-python-流程图重构
题目描述 给定一个整数 N N N,请将该数各个位上数字反转得到一个新数。新数也应满足整数的常见形式,即除非给定的原数为零,否则反转后得到的新数的最高位数字不应为零(参见样例 2)。 输入格式 一个整数 N N N。 …...
NOIP2013提高组.华容道
题目 509. 华容道 算法标签: 搜索, b f s bfs bfs, s p f a spfa spfa 思路 不难发现, 在人移动的过程中, 箱子是不动的, 从当前位置到下一个箱子旁边的位置不会移动箱子, 可以预处理出人在每个位置到其他位置的距离预处理, 从某一个状态出发, 走到另一个状态的最短路使…...
