Roo Code(前身为 Roo Cline)一个 AI 驱动的自主编码代理

news2025/4/6 13:47:16

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安装插件

  1. 打开 VS Code
  2. 访问扩展:单击活动栏中的扩展图标,或者按 (Windows/Linux) 或 (macOS)Ctrl+Shift+XCmd+Shift+X
  3. 搜索: “Roo Code”
  4. 选择 RooVeterinaryInc 的“Roo Code”,然后单击 Install
  5. 如果出现提示,请重新加载 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 (非必须)

  1. 在项目目录中运行npm run build
  2. 在目录中找到生成的 VSIX 文件bin/
  3. 在 VS Code 中,打开“扩展”视图,然后选择“从 VSIX 安装...”来自 “...”菜单
  4. 浏览并选择生成的文件.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 组件是该项目的主要功能组件,负责应用程序的核心逻辑与用户界面。下面是该组件的一些关键特点和架构要点:

组件结构

  1. 导入的库和组件

    • 使用了 React 库以及多种其他库,如:@monaco-editor/react(用于代码编辑器)、react-use(用于钩子)和 react-toastify(用于通知)。
    • 引入了多个子组件:如 HeaderDeployButtonTabsAskAI 和 Preview
  2. 状态管理

    • 使用了 useState 钩子来管理多种状态,包括 HTML 内容、布局状态、错误状态等。
    • 使用 useLocalStorage 钩子来存储和恢复用户的 HTML 内容。
  3. 事件处理

    • 定义了多个处理函数(如 fetchMeresetLayout 等)来处理用户界面交互和窗口大小变化。
    • 在组件挂载和卸载时进行相应的事件处理和清理。
  4. 渲染逻辑

    • 组件渲染了一个基本的布局,包含 HeaderEditorAskAI 和 Preview,使用了样式类来控制布局和外观。
  5. 功能

    • 实现了拖动调整编辑器和预览窗口的大小,支持不同屏幕尺寸的布局适配。
    • 提供了错误提示和数据加载反馈,提升了用户体验。

结论

这个项目的架构是典型的现代 React 应用架构,结合了组件化设计、状态管理和用户交互逻辑,旨在为用户提供一个灵活和直观的编辑体验。核心功能围绕编辑和实时预览 HTML 内容展开,组件之间通过 props 和 hooks 进行数据和事件的传递。

接下来,我将检查src/utils/目录下的工具文件,以了解项目中使用的工具和常量,这有助于进一步分析整个项目的逻辑和架构。

......

App.tsx 组件是该项目的主要功能组件,负责应用程序的核心逻辑与用户界面。下面是该组件的一些关键特点和架构要点:

组件结构

  1. 导入的库和组件

    • 使用了 React 库以及多种其他库,如:@monaco-editor/react(用于代码编辑器)、react-use(用于钩子)和 react-toastify(用于通知)。
    • 引入了多个子组件:如 HeaderDeployButtonTabsAskAI 和 Preview
  2. 状态管理

    • 使用了 useState 钩子来管理多种状态,包括 HTML 内容、布局状态、错误状态等。
    • 使用 useLocalStorage 钩子来存储和恢复用户的 HTML 内容。
  3. 事件处理

    • 定义了多个处理函数(如 fetchMeresetLayout 等)来处理用户界面交互和窗口大小变化。
    • 在组件挂载和卸载时进行相应的事件处理和清理。
  4. 渲染逻辑

    • 组件渲染了一个基本的布局,包含 HeaderEditorAskAI 和 Preview,使用了样式类来控制布局和外观。
  5. 功能

    • 实现了拖动调整编辑器和预览窗口的大小,支持不同屏幕尺寸的布局适配。
    • 提供了错误提示和数据加载反馈,提升了用户体验。

结论

这个项目的架构是典型的现代 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的基础上再二次开发了。个人感觉这个东西值得花点时间去慢慢体会,应该是免费里面一线的产品。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

数字化三维实训室:无穿戴动作捕捉技术如何赋能体育与舞蹈

在高校体育与舞蹈教学中&#xff0c;精准的动作训练至关重要。传统训练方式依赖教练的肉眼观察与手动记录&#xff0c;存在效率低下、误差较大的情况。尤其在快速连续动作或复杂肢体形态的捕捉中&#xff0c;人工判读易受主观经验限制&#xff0c;难以实现标准化评估。面对传统…

leetcode51-N皇后

leetcode 51 思路 本题可以使用回溯算法来解决。回溯算法通过尝试所有可能的解决方案来找到问题的解的算法&#xff0c;当发现当前的选择无法得到有效的解决方案时&#xff0c;就回溯到上一步&#xff0c;尝试其他的选择。对于 N 皇后问题&#xff0c;我们可以逐行放置皇后&…

linux 命令 awk

awk 是 Linux/Unix 系统中一个强大的文本处理工具&#xff0c;尤其擅长处理结构化文本数据&#xff08;如日志、表格数据&#xff09;。它不仅是命令行工具&#xff0c;还是一种脚本语言&#xff0c;支持变量、条件、循环等编程特性 1. 基本语法 awk [选项] 模式 {动作} 文件名…

R语言——获取数据1

参考资料&#xff1a;学习R 数据的来源可以由很多。R内置有许多数据集&#xff0c;而在其他的附件包中能找到更多的数据。R能从各式各样的来源中读取&#xff0c;且支持大量的文件格式。 1、内置的数据集 R的基本分发包有一个datasets&#xff0c;里面全是示例数据集。很多其他…

从零开始打造HTML5拼图游戏:一个Canvas实战项目

从零开始打造HTML5拼图游戏&#xff1a;一个Canvas实战项目 先看效果&#xff1a; 你是否曾经被那些精美的网页拼图游戏所吸引&#xff1f;用 HTML5 的 Canvas 技术&#xff0c;从零开始&#xff0c;教你怎么画图、处理鼠标事件&#xff0c;还有游戏的核心逻辑&#xff0c…

每日一题洛谷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…

Linux(十二)信号

今天我们就要来一起学习信号啦&#xff01;&#xff01;&#xff01;还记得小编在之前的文章中说过的ctrlc吗&#xff1f;之前小编没有详细介绍过&#xff0c;现在我们就要来学习啦&#xff01;&#xff01;&#xff01; 一、信号的基本介绍 首先&#xff0c;小编带领大家先一…

LeetCode算法题(Go语言实现)_30

题目 给定单链表的头节点 head &#xff0c;将所有索引为奇数的节点和索引为偶数的节点分别组合在一起&#xff0c;然后返回重新排序的列表。 第一个节点的索引被认为是 奇数 &#xff0c; 第二个节点的索引为 偶数 &#xff0c;以此类推。 请注意&#xff0c;偶数组和奇数组内…

【读书笔记·VLSI电路设计方法解密】问题61:扫描插入的目的是什么

如问题60所述,要构建可测试电路,必须确保电路中每个节点都具有可控性和可观测性。但对于包含时序元件(如触发器、锁存器等存储元件)的电路,若不采取特殊设计则难以实现这两项特性。这是因为时序元件关联节点的逻辑状态不仅取决于当前输入,还受其先前存储状态影响——它们…

VirtualBox安装FnOS

1.下载FnOS镜像 下载网址&#xff1a; https://www.fnnas.com/2.创建虚拟机 虚拟机配置如图所示&#xff08;注意操作系统类型和网卡配置&#xff09; &#xff08;注意启动顺序&#xff09; 3.启动虚拟机 网卡类型选择桥接的Virtual Adapter 如果没有IP地址或者IP地址无法…

Pycharm(十二)列表练习题

一、门和钥匙 小X在一片大陆上探险&#xff0c;有一天他发现了一个洞穴&#xff0c;洞穴里面有n道门&#xff0c; 打开每道门都需要对应的钥匙&#xff0c;编号为i的钥匙能用于打开第i道门&#xff0c; 而且只有在打开了第i(i>1)道门之后&#xff0c;才能打开第i1道门&#…

集合与容器:List、HashMap(II)

一、ArrayList 是集合框架中最核心的动态数组实现&#xff0c;高频使用的容器之一。 1. 核心数据结构 基于数组实现&#xff0c;维护elementData数组存储元素&#xff1a; transient修饰的elementData不会被默认序列化&#xff08;通过自定义序列化逻辑优化存储&#xff09;…

《AI大模型应知应会100篇》第3篇:大模型的能力边界:它能做什么,不能做什么

第3篇&#xff1a;大模型的能力边界&#xff1a;它能做什么&#xff0c;不能做什么 摘要 在人工智能飞速发展的今天&#xff0c;大语言模型&#xff08;LLM&#xff09;已经成为许多领域的核心技术。然而&#xff0c;尽管它们展现出了惊人的能力&#xff0c;但也有明显的局限性…

小程序API —— 58 自定义组件 - 创建 - 注册 - 使用组件

目录 1. 基本介绍2. 全局组件3. 页面组件 1. 基本介绍 小程序目前已经支持组件化开发&#xff0c;可以将页面中的功能模块抽取成自定义组件&#xff0c;以便在不同的页面中重复使用&#xff1b;也可以将复杂的页面拆分成多个低耦合的模块&#xff0c;有助于代码维护&#xff1…

前端页面鼠标移动监控(鼠标运动、鼠标监控)鼠标节流处理、throttle、限制触发频率(setTimeout、clearInterval)

文章目录 使用lodashjs库手动实现节流&#xff08;通过判断之前设定的定时器setTimeout是否存在&#xff09; 使用lodashjs库 <!DOCTYPE html> <html lang"zh-CN"><head><meta charset"UTF-8"><meta http-equiv"X-UA-Com…

在 Android Studio 中运行安卓应用到 MuMu 模拟器

一、准备工作 1、​​确保 MuMu 模拟器已正确安装并启动​​ 从官网下载安装最新版 MuMu 模拟器。启动后&#xff0c;建议在设置中调整性能参数&#xff08;如 CPU 核心数和内存分配&#xff09;&#xff0c;以保证流畅运行。 2、​​配置 Android Studio 环境​&#xff08;按…

【JavaEE】网络原理详解

1.❤️❤️前言~&#x1f973;&#x1f389;&#x1f389;&#x1f389; Hello, Hello~ 亲爱的朋友们&#x1f44b;&#x1f44b;&#xff0c;这里是E绵绵呀✍️✍️。 如果你喜欢这篇文章&#xff0c;请别吝啬你的点赞❤️❤️和收藏&#x1f4d6;&#x1f4d6;。如果你对我的…

NOIP2013提高组.华容道

题目 509. 华容道 算法标签: 搜索, b f s bfs bfs, s p f a spfa spfa 思路 不难发现, 在人移动的过程中, 箱子是不动的, 从当前位置到下一个箱子旁边的位置不会移动箱子, 可以预处理出人在每个位置到其他位置的距离预处理, 从某一个状态出发, 走到另一个状态的最短路使…

政安晨【超级AI工作流】—— 基于COZE探索有趣的主题互动问答工作流(同宇宙儿童提问机)

政安晨的个人主页&#xff1a;政安晨 欢迎 &#x1f44d;点赞✍评论⭐收藏 希望政安晨的博客能够对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出指正&#xff01; 本例&#xff0c;我们将从零展示如何创建一款专门针对儿童对某项主题进行问答的对话流智能体…

Derivatives and Differentiation (导数和微分)

Derivatives and Differentiation {导数和微分} 1. Derivatives and Differentiation (导数和微分)1.1. Visualization Utilities 2. Chain Rule (链式法则)3. DiscussionReferences For a long time, how to calculate the area of a circle remained a mystery. Then, in Anc…