夜雨聆风学习资料网

ARTICLE · 1287834

REA 深度教程:让 AI 拆懂一个软件功能,再做成自己的工具

REA 深度教程:让 AI 拆懂一个软件功能,再做成自己的工具

大家在用某个软件的时候肯定都想过:这个功能真的不错哎,能不能给自己的工具也加一个?

比如,把笔记一键导成表格。你把截图交给 AI,它很快做出了差不多的按钮。可标题里一出现逗号,导出的表格就错列了。

原因很简单:截图能告诉 AI 界面长什么样,按钮背后的处理办法,还得去代码里找。

REA 就是帮 AI 做这件事的工具。

这个项目现在超级火,上线差不多一个月,已经 410K 的 star 了。

有人说他是给黑客和想 0 元购软件的人准备的,其实不然,他更大的作用是给 代码 0 基础小白来帮助自己实现某个想要功能的最好帮手。

接下来,咱们从一个小功能入手:来读懂笔记软件怎样导出 CSV,再让 AI 做出自己的选题导出工具。

做完以后,你可以把选题交给一个小脚本,得到一张包含“标题、平台、进度”的表格。以后换一批选题,还能继续用。

新手上路:先知道最后要做出什么

这次会用到三样东西:

1. 你平时用的 AI 编程助手,比如 Codex、Claude Code 或 Cursor,选一个就行。这些都没有的话,用包姐也行,豆包现在也不弱。

2. REA,让助手能够分析应用文件、寻找功能之间的联系。从 github 上克隆下来,不会克隆的,就去releases界面 下载最新版本安装

3. 一个官方练习包,里面只有六个文件,适合第一次上手。

整条路线是:

装好 REA↓ 下载笔记导出练习包↓ 让 AI 读懂导出按钮背后的代码↓ 整理出 CSV 的处理规则↓ 做成自己的选题导出工具

如果你刚接触这些工具,就按章节顺序往下做。

如果已经接好 REA,请从第 3 章开始。

有些英文文件名现在看不懂,先往下读。等它们在一个具体功能里各自做过什么,你就容易记住了。

先学会一个功能,再做成自己的工具

第 1 章:REA、AI 助手和你,各自做什么

REA 的全称是 Reverse Engineer Anything。你可以先把它理解成:给 AI 编程助手配一套读软件的工具。

REA 官方 GitHub 项目首页

 项目装好后,假如你对导出按钮感兴趣,你可以问agent“导出按钮点下去以后发生了什么”,REA 可以帮助你的 agent助手找到应用中的模块、相关代码和调用关系。助手沿着这些线索继续阅读,再用人话解释给你。项目介绍

这有点像请人帮你研究一台机器。

你决定想弄懂哪个功能;REA 提供放大镜和拆解工具;AI 助手负责看、读、解释,并按你的需求写新程序。

放到这次的任务里,分工就是:

谁
负责什么
你
决定要学会“导出表格”,并把它用到选题整理中
REA
提供应用分析工具,帮助找到相关文件和调用关系
AI 助手
读懂处理逻辑,讲清规则,再编写独立的小工具

开始前,你可以跟你的 agent 这么讲:

我想弄懂这个软件怎样导出 CSV,再给自己的选题库做一个类似功能。

你的目标越具体,你的助手就越容易顺着一条线往下找。

第 2 章:把 REA 接到你的 AI 助手上

这里以 Windows PowerShell 为例。

先准备一个能正常回复、能够处理本地项目的 AI 编程助手。它自己的账号或模型配置,按你平时使用的方式准备好。

1. 安装 Node.js

Node.js 是运行这类 JavaScript 工具的环境。npm 是它配套的工具包管理器,安装 Node.js 时通常会一起装好。

从 Node.js 官网下载并安装符合 REA 要求的版本。

选 24 系列的 24.22.1 或更新版本即可。REA 6.8.0 也支持 22 系列的 22.23.4 或更新版本,以及 26.12.1 及以上版本。REA 运行要求

装完后,重新打开 PowerShell,分别输入:

node --versionnpm --version

两条命令都能显示版本号,就可以继续。

如果提示“无法识别”,先重新打开终端;仍然不行,再把完整报错发给 AI 助手,请它帮助处理 Node.js 安装或路径问题。

2. 运行 REA 安装向导

在 PowerShell 输入:

npx rea-agents@latest setup

npx 可以理解成“找到这个工具包,然后运行它”。这里运行的是 REA 的接入向导。

跟着提示选择你正在使用的助手。向导列出准备修改的配置后,读一遍,再确认写入。完成后按提示重启助手。安装指南

REA 官方安装入口

*官方安装页把准备电脑、选择助手、连接 REA 和第一次使用分成四步;Node.js 要求也列在这里。来源:rea.tools/get-started。*

安装时可能会看到两个词:

  • MCP:让助手接入外部工具的连接方式。
  • Skill:告诉助手什么时候、怎样使用这些工具的说明。

可以把 MCP 想成插座,把 Skill 想成使用说明书。两部分配合起来,助手才更容易把工具用对。

这次走 JavaScript/Electron 练习路线,先把上面的接入做好即可。官方入门教程

第 3 章:下载第一份练习材料

第一次上手,用 REA 官方的笔记导出示例。

打开 JavaScript/Electron 教程,点击 Download example ZIP。也可以直接下载练习压缩包。

REA JavaScript 官方教程

*官方 JavaScript/Electron 教程同时提供练习包下载按钮和分析命令,适合照着本章开始。来源:rea.tools/guides/javascript。*

解压后,把 notes-example 文件夹放到:

C:\rea-lab\notes-example

打开这一层文件夹,应该能直接看到:

notes-example/├── package.json├── index.html├── renderer.js├── preload.js├── main.js└── csv.js

如果里面又套了一层同名文件夹,就继续打开,找到直接放着这六个文件的那一层。后面给 AI 的路径,要指向这一层。

这个练习可以直接分析文件,不需要先安装 Electron、启动一个完整的桌面应用。你要学的是“导出功能怎么写”,先把这条逻辑读懂就够了。

把第一条任务交给 AI

在已经接好 REA 的助手里,发送:

请使用 REA 分析这个示例应用:C:\rea-lab\notes-example我想学会它的“导出笔记为 CSV”功能,然后给自己的选题库做一个导出小工具。先不要修改文件。请只研究这一个功能,并告诉我:1. 点击导出按钮后,首先调用什么?2. 请求怎样从页面传到主进程?3. 哪个函数把笔记变成 CSV 文本?4. 最后由谁把文件保存到哪里?请按执行顺序讲,附上文件名和相关函数。每一步都用新手能听懂的话解释。

这里的关键是把问题说小:只看导出这一条线。

如果助手开始介绍整个项目,补一句:

先回到导出功能。请从按钮出发,一步一步跟着数据走到保存文件的位置。

接下来,重点看它有没有把下面几段接起来。

第 4 章:读懂一个导出按钮的“接力赛”

这个示例里,导出请求会经过四个文件。有一个文件要出现两次,因为它先安排处理,最后再保存结果。

一个导出按钮背后的接力过程

第一棒:renderer.js 接到点击

renderer.js 处理页面上的操作。用户点导出按钮后,它会调用:

window.notes.exportCsv()

你可以把它理解成前台接到了一张订单:“请把笔记导出来。”

第二棒:preload.js 把请求传出去

preload.js 给页面提供一个传话入口,把请求送进名叫 notes:export 的消息通道。

这种进程之间的消息传递叫 IPC。这里先记住它的作用:页面把“要导出”的请求交给另一边处理。

第三棒:main.js 接住请求

main.js 是负责执行任务的主进程代码。

它接到 notes:export 后,会准备保存位置,并调用 toCsv(notes),请 CSV 函数把笔记整理成文本。

第四棒:csv.js 把笔记排成 CSV

csv.js 关心的是数据怎么排:表头是什么、每条笔记放在哪一行、标题里的引号怎样处理。

CSV 是用逗号分隔各列的文本格式,可以导入 Excel 等表格软件。

它看起来简单,标点处理却很重要。下一节就会用到。

最后一棒:main.js 保存文件

CSV 文本整理好后,回到 main.js,由它把文本写入下载目录中的 notes.csv。

把这几步连起来就是:

renderer.js:接到点击↓ preload.js:传递导出请求↓ main.js:接收请求,调用格式化函数↓ csv.js:生成 CSV 文本↓ main.js:写入 notes.csv

这条路线来自官方练习包。导出功能说明

你现在能看见职责是怎样分开的:按钮负责触发,消息负责传递,函数负责整理数据,主进程负责写文件。

以后想做一个命令行导出工具,就可以保留处理数据的方法,重新安排自己的输入和保存方式。

继续追问,才能学到有用的细节

如果助手只给了几个文件名,再发:

请继续沿 notes:export 这条通道往下读。我需要知道:- 笔记数据从哪里取得。- toCsv 接收什么输入。- CSV 的列按什么顺序排列。- 文件名、保存位置和编码由谁决定。- 写文件失败时,错误怎样返回页面。请按实际调用顺序解释,不要只列出关键词出现的位置。

这样读,你拿到的就会是一套可以继续使用的处理办法。

第 5 章:把 CSV 的标点规则弄明白

先看一个很小的例子。

假设笔记标题叫:

周报,周一

CSV 本来就用逗号分列。如果直接把这个标题写进去,里面的逗号也可能被当成分列符,一条标题就被拆开了。

解决办法是:用一对双引号把整个标题包起来。

1,"周报,周一"

这样,标题里的逗号仍然属于标题。

再看第二种情况。标题本身就带引号:

他说"明天交"

这时,标题内部的一个双引号,要写成连续两个双引号:

2,"他说""明天交"""

外面那一对引号负责包住整个字段,里面成对的引号表示标题原来就有的标点。

这两条规则可以在官方示例的 csv.js 中找到。

怎样把标点留在标题里

你暂时记不住每个引号的位置也没关系。先理解两件事:字段不能被自己的逗号拆开;字段内部的引号也要有明确写法。

然后,让 AI 把规则整理成你能继续用的说明:

请阅读 csv.js,整理一份 CSV 导出实现说明。写清楚:1. 输入数据有哪些字段。2. 表头和列的顺序。3. 逗号、双引号、换行怎样处理。4. 空列表会输出什么。5. 文件名、路径和编码由哪里决定。用“输入 → 处理 → 输出”的顺序讲,配两组小例子。暂时不要写新程序。

把规则先讲清,下一步做自己的工具时,就有了可以照着写的依据。

第 6 章:做出自己的选题导出工具

现在换成你的需求:把一批选题整理成表格。

第一版只做一件事:读取一个 JSON 文件,生成一个 CSV 文件。

JSON 可以先理解成“按固定字段保存的一份数据清单”。这次每条选题只需要三个字段:

字段
放什么
例子
title
标题
REA 入门:拆懂一个导出按钮
platform
平台
微信公众号
status
进度
待写
把选题数据变成 CSV 表格

1. 把工具需求交代完整

继续在刚才的助手里发送:

请根据前面整理的 CSV 规则,在 C:\rea-lab\topic-export 新建一个选题导出小工具。不要修改 notes-example。使用 Node.js 标准库,不安装第三方依赖。输入:JSON 数组,每条选题包含 title、platform、status。输出:UTF-8 CSV,表头固定为“标题,平台,进度”。每一列统一处理逗号、双引号和换行。缺失字段留空,记录顺序与输入一致。运行方式:node export-topics.cjs "输入文件绝对路径" "输出文件绝对路径"请做到:- 读取输入 JSON,只读,不修改它。- 把结果写入指定的新文件。- 完成后告诉我输出位置和导出条数。- 输入格式不合适时,用中文解释怎么改。- 输出文件同名时停止,不覆盖。先交付三个文件:- export-topics.cjs- topics.json- 使用说明.md先做这个单文件小工具即可。

这里用 .cjs 作为脚本扩展名,方便助手编写一个可直接用 Node.js 运行的独立文件。

原来的笔记示例只展示了标题列的转义。自己的工具要把这套规则用到所有列,平台、进度里出现标点时也能正常处理。

2. 准备两条选题

让助手把 topics.json 的内容设为:

[  {    "title": "REA 入门:拆懂一个导出按钮",    "platform": "微信公众号",    "status": "待写"  },  {    "title": "标题里有逗号,也有\"引号\"",    "platform": "知乎",    "status": "草稿"  }]

第二条特意带了逗号和引号,方便你看懂它们在导出以后会怎样保留。

三个文件准备好后,目录大致是:

C:\rea-lab\topic-export\├── export-topics.cjs├── topics.json└── 使用说明.md

3. 运行导出命令

在 PowerShell 输入:

node "C:\rea-lab\topic-export\export-topics.cjs" "C:\rea-lab\topic-export\topics.json" "C:\rea-lab\topic-export\topics.csv"

这条命令里有三个路径:

1. 第一个是要运行的脚本。

2. 第二个是选题数据。

3. 第三个是准备生成的表格文件。

如果你放在别的文件夹,三个路径都要对应修改。

运行结束后,到 topic-export 文件夹里找到新生成的 topics.csv。用表格软件导入,应该能看到“标题、平台、进度”三列,两条选题各占一行。

现在,把 topics.json 换成你自己的选题,就能继续导出了。再次输出时,给 CSV 换一个新名字,例如 topics-02.csv。

你已经把从笔记导出里学到的处理办法,用在了一个自己的小工具里。REA 负责帮助你读懂原来的功能,AI 助手根据新需求编写独立实现。

第 7 章:换成你常用的软件,怎么开始

练习包读懂以后,再换成自己开发或获准研究的应用。

先选一个具体功能,例如“导出 Markdown”“复制时保留格式”或“按日期排序”。选你平时确实会用到的一个就好。

给实际文件路径

对于 Electron 应用,可以从安装目录中的 resources\app.asar 找起。

ASAR 是这类应用常见的代码打包格式。REA 的 JavaScript 分析入口可以接收应用目录或 ASAR 文件。JavaScript 分析说明

找到目标以后,发给助手:

请使用 REA 分析这个应用文件:C:\Apps\ExampleApp\resources\app.asar我只想学会“导出 Markdown”功能。请从菜单文字、exportMarkdown 或 .md 相关线索定位入口,沿调用关系继续读,直到找到生成内容和写文件的位置。先给我功能路线和相关模块,用人话解释每一步。暂时不要修改应用。

ExampleApp 是示例名字,要换成你的实际路径。

普通原生 .exe 需要走对应的原生分析路线。这里这条命令和练习,针对的是 JavaScript/Electron 应用。目标类型说明

从一个准确线索继续问

一开始,你可能只知道按钮叫“导出 Markdown”。

等助手找到了某个函数或消息通道,后面的提问就带上它的名字:

请沿这个导出函数继续读。只说明输入从哪里来、文本怎样生成、最后保存在哪里。

找到入口以后,问题就可以越来越小,也越来越具体。

换成别的功能,道理一样:

你想学什么
跟着什么往下找
图片导出
尺寸、格式、编码、写文件
搜索
输入词、过滤条件、匹配、排序
快捷键
按键注册、触发条件、对应动作
复制并保留格式
文本、HTML、消息传递、剪贴板写入

REA 官方的 Notion 剪贴板案例 就是沿着类似路径,研究复制文本和 HTML 怎样传到系统剪贴板。

第 8 章:常见卡点,先看这里

AI 说找不到文件,怎么办?

先在文件资源管理器里打开目标文件夹,找到那六个练习文件。

把这一层的完整路径发给助手。尤其留意,解压后是否多套了一层 notes-example。

路径里有空格时,命令中的路径要保留双引号。

AI 写了很长一段,我还是不知道下一步做什么

把任务缩小,直接告诉它:

请先暂停介绍其他功能。现在只回答:这个参数从哪里来,经过哪个函数,最后写到哪里。讲清这一步以后,再给我下一步要读的文件。

不想先接入助手,能不能从终端开始?

可以。下载练习包以后,在 PowerShell 运行:

npx -y rea-agents@latest analyze-javascript-application "C:\rea-lab\notes-example" --json

它会输出结构化的分析结果。--json 表示按 JSON 格式输出,方便后续交给 AI 阅读。

想先看 IPC 概览,可以用:

$analysis = npx -y rea-agents@latest analyze-javascript-application "C:\rea-lab\notes-example" --json | ConvertFrom-Json$analysis.normalized_result.summary.ipc | Format-List

官方练习包对应一个字面量消息通道和一个匹配的主进程处理器。继续读具体代码时,看 normalized_result.graph 里的源码位置。结果字段说明

CSV 导进 Excel 后,中文显示不对

导入文件时选择 UTF-8 编码,再看中文是否正常。这个工具约定输出的就是 UTF-8 文本。

命令报错了,怎样问 AI 更容易说清?

把“你准备做什么、输入的完整命令、完整报错”一起发过去。

例如:

我在 Windows PowerShell 中,准备把 topics.json 导成 CSV。这是我输入的命令:(粘贴完整命令)这是完整报错:(粘贴报错文字,或附上清晰截图)请先解释错误是什么意思,再给我一个可以照做的处理步骤。

信息给齐,助手就更容易定位到路径、输入格式或环境中的具体问题。

最后:每次只让 AI 帮你做成一件事

以后再遇到想学的功能,就按这三轮来:

第一轮,要一张路线图。 找入口,跟着数据走,弄清结果交给谁。

第二轮,要一份实现说明。 把输入、处理规则、输出和错误处理讲明白。

第三轮,做一个小工具。 明确自己的输入、输出和运行方式,把代码放进独立目录。

分三轮让 AI 帮你做出工具

今天就从笔记导出这个小例子开始。

等 topics.csv 里出现你自己的选题,REA 这个名字就和一件你用得上的事连起来了。下次再看到一个好功能,你也知道该从哪里开始问、沿着什么往下读、最后怎样做进自己的工具里。

文中项目与网页截图来源已在正文中注明。

回首页,搜索你想要的文档

在首页搜索框输入关键词,快速定位资料

文库首页搜索指引 立即搜索

相关学习资料