TRAE 绿皮书
TRAE Work 实战指南 / 数据处理 & 分析

实战指南|TRAE Work 实现数据采集到可视化全流程

提示

TRAE 是面向开发者、职场人与学生的 AI 办公平台,有 TRAE Work TRAE IDE 两款产品。

TRAE Work 侧重学习、办公与工程执行场景,无论你是开发者、职场人、学生,都可以用它写方案、做分析、处理文件、推进协作,并完成需要持续执行、检查和产出结果的自动化任务。支持 桌面端网页版移动端,多端协作,随时发起任务、查看进展、持续推进。

TRAE IDE 适合写代码、读项目、改 Bug 等开发工作,更适合期望精细控制自己的代码改动和执行过程的开发者。


作者:

Damond TRAE社区核心伙伴

小阳 TRAE 用户运营

提示

这是一篇从零开始的自动化实战教程。我们用 TRAE Work(Work 模式)+ 飞书多维表格,搭建了一套“全自动作品采集系统”,支持论坛投稿自动抓取、AI 自动打标签、数据自动写入多维表格,最终形成一个可筛选、可排序、可统计的赛事作品集和数据大盘。小白也可以跟着复刻。

从一个痛点开始

「TRAE Work X 脉脉挑战赛」的参赛作品,都是通过在 TRAE 官方社区发帖提交。随着参与人数越来越多,赛事运营的同学就遇到了三个头疼的问题:

我们想过搭一个在线作品集网站,但从开发到部署到上线,耗时太长。我们需要的是一个更快、更轻量的方案。

这时候我们想到了「飞书多维表格」:它本身就支持筛选、排序、统计、可视化看板,天然适合做作品集展示。

而且,既然这次比赛就是用 TRAE Work 创作应用的,那为什么不用 TRAE Work 来搭这个系统呢?

说干就干!最终,这套系统帮我们自动采集了 3400+ 个参赛作品,并且一直在稳定运行。

图片展示了“AI无限职场”SOLO挑战赛的数据可视化界面。上方显示作品数为3,430,报名与投稿截止时间为00:00。界面分为两部分,左侧是投稿排行榜,列出了前10名作品及分数;右侧是团队排行榜,同样列出前10名团队及分数。下方有作品分布、团队分布、行业分布、人数分布等图表,直观呈现了参赛数据。该图与上下文紧密相关,直观呈现了挑战赛的参赛情况,是对上文提到的系统自动采集3400+个参赛作品并稳定运行的可视化展示。
img-350 · 图片展示了“AI无限职场”SOLO挑战赛的数据可视化界面。上方显示作品数为3,430,报名与投稿截止时间为00:00。界
图片展示的是飞书多维表格界面,用于展示TRAE Work创作应用比赛的参赛作品。表格包含作品ID、作品名称、作品描述、作品链接、作品类型、作品状态、作品评分、作品评分人数等信息。作品名称如“Code with SQL”“AI绘画”等,作品类型有AI绘画、AI写作等,作品状态有已提交、待提交等,评分人数从1到145不等。该图片与上文提到的用TRAE Work搭系统自动采集3400+个参赛作品,且系统稳定运行的内容相呼应。
img-351 · 图片展示的是飞书多维表格界面,用于展示TRAE Work创作应用比赛的参赛作品。表格包含作品ID、作品名称、作品描述、作

5 步搞定全自动作品集

第一步:和 TRAE Work 聊需求,让 AI 帮你梳理方案

提示

TRAE Work 一共提供两种模式:

  • Work 模式:适合非代码工作,AI 可以直接操作文件、浏览器、飞书等工具
  • Code 模式:适合写代码、搭项目,AI 可以直接操作你的代码仓库

针对这个任务,我选择的是 Work 模式。因为我需要 AI 帮我创建项目文件、配置飞书应用、部署到服务器,这些都不需要写复杂的代码框架,更多是“帮我做这件事”的指令式交互。

打开 TRAE Work,切换到 Work 模式,我输入了第一句话:

PLAIN TEXT
/plan  “论坛作品地址”  通过飞书多维表格定时更新获取链接论坛作品信息,写入多维表格 。

TRAE Work 帮我梳理了规划开发的需求:

接着我又补充了几个关键需求:

PLAIN TEXT
每个作品需要采集标题、作者、链接、浏览数、回复数、投票数、发帖时间。
AI 分析出行业、职业、Skill类型、Skill名称、Skill简介、Skill链接。

TRAE Work 帮我把这些需求整理成了字段设计,这就是后来多维表格的 14 个字段。

提示

小贴士:与 TRAE Work 对话时,需求越具体越好。不要说"帮我做个采集工具",要说"帮我采集论坛帖子,字段包括 XXX、YYY,同步到飞书表格"。AI 只有理解了你的具体需求,才能给出准确的方案。

【当然在对话过程,我是经过多轮对话,梳理完成采集字段细节和确认论坛API接口调用逻辑的。】

截图展示的是 TRAE Work 产品更新之前的界面,和现在的界面有有所出入。

图片展示了TRAE Work产品更新前的界面,左侧为项目文件夹,包含“forum crawler”等文件夹,右侧是“forum crawler”文件夹内容。其中“README.md”文件被突出显示,其内容为项目介绍及运行说明。右侧还展示了“forum_to_fishu_sync.sql”文件,包含字段如id、title等,以及“file.txt”文件,内容为“1400个帖子的爬虫配置正则”。该图片与上下文介绍的TRAE Work产品更新前的界面相关,直观呈现了当时项目文件及代码内容。
img-352 · 图片展示了TRAE Work产品更新前的界面,左侧为项目文件夹,包含“forum crawler”等文件夹,右侧是“fo

第二步:配置飞书应用

这一步是整个项目的基础。没有飞书应用,就无法写入多维表格。

这张图片展示的是飞书开放平台的应用详情页面,对应实战指南里配置飞书应用的步骤,页面中重点显示了「凭证与基础信息」板块,清晰呈现出App ID及App Secret的内容,App Secret以隐藏的圆点形式呈现,还带有复制操作的按钮。该页面是创建飞书自建应用后进入的页面,是获取应用凭证的关键页面,文档中第二步的2.2部分提及的App ID与App Secret,都可在此页面找到。
img-353 · 这张图片展示的是飞书开放平台的应用详情页面,对应实战指南里配置飞书应用的步骤,页面中重点显示了「凭证与基础信息」板块,清

2.1 创建飞书应用

  1. 打开 飞书开放平台,登录账号
  2. 点击「创建应用」,选择「自建应用」
  3. 填写应用名称(比如"作品集采集"),上传图标
  4. 创建完成后,进入应用详情页

2.2 获取凭证

在应用详情页,找到「凭证与基础信息」:

这两个值后面配置代码时会用到。

2.3 开通权限

在「权限管理」中,搜索并开通以下权限:

JSON飞书应用权限管理一键导入
{
  "scopes": {
    "tenant": [
      "base:app:update",
      "base:field:read",
      "base:form:update",
      "base:history:read",
      "base:record:create",
      "base:record:delete",
      "base:record:read",
      "base:record:retrieve",
      "base:record:update",
      "base:table:read",
      "base:table:update",
      "bitable:app",
      "bitable:app:readonly",
      "im:resource"
    ],
    "user": [
      "base:app:update",
      "base:field:read",
      "base:field:update",
      "base:form:read",
      "base:form:update",
      "base:history:read",
      "base:record:create",
      "base:record:delete",
      "base:record:read",
      "base:record:retrieve",
      "base:record:update",
      "bitable:app",
      "bitable:app:readonly",
      "im:resource"
    ]
  }
}
这是飞书开放平台的权限管理页面,对应文档中“开通权限”的操作环节。页面内有蓝色标注的“申请权限”选项,该选项紧邻“已授权”选项,页面列表展示了多项可开通的权限,每项权限都标注了权限类型、权限状态,右侧带有相关操作按钮,该页面是TRAE Work配置飞书应用时,实现数据采集相关权限开通的操作界面。
img-354 · 这是飞书开放平台的权限管理页面,对应文档中“开通权限”的操作环节。页面内有蓝色标注的“申请权限”选项,该选项紧邻“已授权
这张图片展示的是飞书开放平台的界面,左侧导航栏中「机器人」选项被红色框线标注突出显示。界面内容围绕飞书机器人相关设置展开,涵盖机器人的功能说明、机器人配置的相关提示,以及机器人自定义菜单的示例展示,结合上下文可知,该图片对应的是飞书应用配置流程中「开通权限」步骤的相关界面,用于辅助说明权限配置过程中的对应环节。
img-355 · 这张图片展示的是飞书开放平台的界面,左侧导航栏中「机器人」选项被红色框线标注突出显示。界面内容围绕飞书机器人相关设置展开

2.4 发布应用

权限配置完成后,点击「版本管理与发布」→「创建版本」→「申请发布」。如果是企业内部应用,管理员审批通过后即可使用。

注意:应用发布后才能正常调用 API。如果发布前就想测试,可以先在"可用范围"中添加自己。

2.5 获取多维表格信息

打开你的飞书多维表格,从 URL 中提取两个关键信息:

例如 URL 为 https://my.feishu.cn/base/ABCDEF123?table=tblXYZ789,则:

第三步:飞书多维表格配置

我们前面聊了“基础配置采集论坛数据数据提取AI智能分析数据写入多维表格”,这里我们需要完成最后环节【多维表格配置】

3.1 多维表格字段配置

提示

提示:飞书多维表格数据表字段和格式,务必要跟采集字段对应,否则会导致传输错误。

字段名

类型

说明

数据来源

TopicID

文本

帖子唯一标识

论坛 API

参赛帖标题

文本

帖子标题

论坛 API

作者

文本

发帖人用户名

论坛 API

链接

超链接

帖子原始链接

论坛 API

浏览数

数字

帖子浏览次数

论坛 API

回复数

数字

真实回复数(排除自回复)

论坛 API

投票数

数字

帖子投票数

论坛 API

发帖时间

日期

帖子发布时间

论坛 API

行业

单选

作品所属行业

AI 分析

职业

单选

作者职业类型

AI 分析

SKill类型

单选

技能分类

AI 分析

SKill名称

文本

技能/工具名称

AI 分析

Skill简介

文本

技能简介

AI 分析

Skill链接

超链接

技能相关链接

AI 分析

提示

注意:飞书多维表格的字段类型必须和代码中写入的数据格式匹配。超链接字段必须用 {"link": "url", "text": "显示文本"} 格式,日期字段用毫秒时间戳,数字字段用整数。

3.2 多维表格添加应用

飞书多维表格添加上面发布的飞书应用,实现数据可以写入多维表格

图片展示了飞书多维表格添加应用的操作界面。画面中,鼠标点击右上角的“...”图标,弹出下拉菜单,其中“...更多”选项被红色箭头指向。接着,点击“...更多”后,又弹出下拉菜单,其中“添加文档应用”选项被红色箭头指向。该图片与文档中“飞书多维表格添加上面发布的飞书应用,实现数据可以写入多维表格”的内容相关,直观呈现了添加应用的操作步骤。
img-356 · 图片展示了飞书多维表格添加应用的操作界面。画面中,鼠标点击右上角的“...”图标,弹出下拉菜单,其中“...更多”选项被
界面截图
img-357 · 界面截图

第四步:用 TRAE Work 开发采集服务

4.1 创建项目及代码【一句话完成开发】

TRAE Work,我继续对话:

PLAIN TEXT
根据以上plan最终规划方案,执行项目代码开发,实现论坛数据采集和飞书多维表格同步。

TRAE Work 自动帮我生成了完整的项目结构及代码,每个文件各司其职:

PLAIN TEXT
forum-crawler/
├── config.py          # 配置文件(代码配置)
├── feishu_client.py   # 飞书API客户端
├── forum_crawler.py   # 论坛数据采集
├── ai_analyzer.py     # AI智能分析
├── sync.py            # 增量同步逻辑
├── main.py            # 主入口
├── .env               # 环境变量(敏感信息:API密钥、密码等)
└── requirements.txt   # 依赖包

4.2 读懂项目文件内容和作用

4.2.1 配置文件config.py.env是什么?

  1. config.py,用于代码配置,通用配置项(URL、字段映射、常量等)调用敏感信息
  2. .env,敏感信息存储
提示

小贴士config.py通过 os.getenv() 读取 .env 文件存储敏感信息

  1. 安全性:.env 包含密钥,不提交到Git仓库(通过 .gitignore 排除),防止泄露
  2. 可移植性:config.py 是通用配置,可以提交到Git;.env 是环境相关,每台机器单独配置
  3. 灵活性:不同环境(开发/测试/生产)用不同的 .env 文件,代码不用改
PYTHON
import os
from dotenv import load_dotenv

load_dotenv()

飞书凭证

FEISHU_APP_ID = os.getenv("FEISHU_APP_ID") FEISHU_APP_SECRET = os.getenv("FEISHU_APP_SECRET") FEISHU_APP_TOKEN = "**************" # 多维表格TOKEN FEISHU_TABLE_ID = "***************" # 多维表格TABLE_ID

论坛 - 采集地址

FORUM_BASE_URL = "https://forum.trae.cn" FORUM_CATEGORY_URL = "https://forum.trae.cn/c/37-category/37.json"

运行参数

LOG_FILE = os.getenv("LOG_FILE", "logs/sync.log") LOG_LEVEL = os.getenv("LOG_LEVEL", "INFO") REQUEST_TIMEOUT = int(os.getenv("REQUEST_TIMEOUT", "30")) RATE_LIMIT_DELAY = float(os.getenv("RATE_LIMIT_DELAY", "0.1"))

AI 配置(DeepSeek API,兼容 OpenAI 格式)

AI_BASE_URL = os.getenv("AI_BASE_URL", "https://api.deepseek.com/v1") AI_MODEL = os.getenv("AI_MODEL", "deepseek-chat") DEEPSEEK_API_KEY = os.getenv("DEEPSEEK_API_KEY", "") AI_TIMEOUT = int(os.getenv("AI_TIMEOUT", "60"))

字段映射配置

TopicID, 行业, 职业, SKill类型, SKill名称, Skill简介, Skill链接如有, 参赛帖标题, 链接, 作者, 浏览数, 回复数, 投票数

FIELD_MAPPING = { "topic_id": "TopicID", "title": "参赛帖标题", "author": "作者", "link": "链接", "views": "浏览数", "replies": "回复数", "votes": "投票数", "industry": "行业", "profession": "职业", "skill_type": "SKill类型", "skill_name": "SKill名称", "skill_intro": "Skill简介", "skill_link": "Skill链接如有", }

4.2.2 飞书 API 客户端作用?

feishu_client.py 是飞书 API 的封装,核心功能:调用飞书接口实现数据传输

  1. 获取3.2配置文件的飞书配置内容提供飞书接口验证身份
  2. 清空多维表格现有数据记录
提示

【小心思】为什么是清空?不是行更新?

逐行更新需要半小时,清空一次性写入只要1分钟

定位行数据更新,需要一行一行数据比对,执行更新行数据,执行一行调用一次接口

从更新效率和调用接口次数限制,资源占用在这个项目不是最优解。

  1. 批量传输最新论坛结果数据到多维表格
PYTHON
class FeishuClient:
    def __init__(self, app_token, table_id):
        self.app_token = app_token
        self.table_id = table_id

    def _get_token(self):
        """获取 tenant_access_token"""
        # 使用 App ID + Secret 获取 Token

    def batch_create_records(self, records):
        """批量创建记录,每次最多500条"""

    def delete_all_records(self):
        """清空表格所有记录"""

关键点:

4.2.3 论坛数据采集了啥?

通过forum_crawler.py 采集论坛数据,基于官方论坛是 Discourse 开发的,提供了 JSON API格式,我们可以轻松解析提取想要的内容

PYTHON
# 获取帖子列表
url = "https://forum.trae.cn/c/*****/26.json"
response = requests.get(url)
data = response.json()

返回: {"topic_list": {"topics": [...]}}

采集逻辑:

  1. 分页获取所有帖子(每页30条)
  2. 解析 JSON 包,提取数据:帖子的标题、作者、浏览数、回复数、投票数
  3. 计算真实回复数(排除作者自回复)

4.2.4 AI 智能分析有那些规则?

对每个帖子调用 AI API,提取结构化标签:

赛事运营同学根据大赛的标准:清晰梳理AI智能分析作品的定义标准Prompt,对AI返回可控数据的提供约束范围:

截图展示的是 TRAE Work 产品更新之前的界面,和现在的界面有有所出入。

图片展示了TRAE Work产品更新前的界面,左侧为项目文件内容,包含问题、标签、评分等信息,如“1. 问题”下有“1.1. 问题描述”“1.2. 问题原因”等,评分标准为1 - 5分。右侧是SOLO挑战赛作品三维标签匹配规则与词典,包含职业(Profession)匹配规则及词典,如“开发(Development)”下有核心关键词、辅助关键词、典型任务等。该图片与上下文介绍TRAE Work产品更新前界面的内容相关,直观呈现了界面样式及部分功能。
img-358 · 图片展示了TRAE Work产品更新前的界面,左侧为项目文件内容,包含问题、标签、评分等信息,如“1. 问题”下有“1.

小贴士:给 AI 的 Prompt 中要明确指定分类选项,这样 AI 返回的结果才能直接写入多维表格的单选字段。

4.2.5 增量同步机制怎么实现?

为了避免每次都全量分析,我们采用了增量同步:

PLAIN TEXT
每次同步流程:
1. 获取论坛所有帖子
2. 计算每个帖子的内容指纹 MD5(title + excerpt)
3. 与本地缓存比对
   - 指纹相同 → 跳过(内容未变)
   - 指纹不同 → 重新AI分析
   - 新帖子 → AI分析 + 写入缓存
4. 将需要更新的记录写入飞书

缓存存储在 ai_cache.json 文件中,结构如下:

JSON
{
  "topic_12345": {
    "hash": "abc123def456",
    "行业": "互联网/科技",
    "职业": "开发",
    "SKill类型": "开发工具",
    "SKill名称": "XXX工具",
    "Skill简介": "一个XXX的工具",
    "Skill链接": "https://..."
  }
}

第五步:部署到服务器

本地测试通过后,需要部署到服务器实现长期运行。

由于 Work 模式并不支持直接远程服务器部署,我们需要手动上传项目包,执行一下解压安装,运行操作!

5.1 服务器环境准备

BASH
# 安装 Python 3
sudo apt update && sudo apt install python3 python3-pip -y

安装依赖

pip3 install requests python-dotenv --break-system-packages

5.2 上传项目文件并解压

将整个 forum-crawler/ 目录上传到服务器:

BASH
# 方法1:使用 scp
scp -r forum-crawler/ root@你的服务器IP:/opt/forum-crawler/

方法2:使用 git

git clone 你的仓库地址 /opt/forum-crawler

我这边按照方法1进行简单介绍:

  1. 下载项目文件包到本地电脑文件夹download
  2. 通过Windows PowerShell执行终端上传⏫操作
图片展示的是飞书飞享库中“作品集”文件夹下的“forum-crawler”目录内容。左侧目录列表中包含多个文件及文件夹,右侧是“forum-crawler”文件夹内容,显示有“forum-crawler.tar.gz”文件。图片下方有“下载 forum-crawler.tar.gz”文字。该图片与文档中“5.2上传项目文件并解压”部分内容相关,用于说明将整个`forum-crawler/`目录上传到服务器时,需下载此文件包到本地电脑文件夹。
img-359 · 图片展示的是飞书飞享库中“作品集”文件夹下的“forum-crawler”目录内容。左侧目录列表中包含多个文件及文件夹,
图片展示的是Windows PowerShell界面,用于上传项目文件到服务器。界面中显示了命令行操作,先是进入“Downloads”文件夹,接着通过`scp`命令将`forum-crawler`目录上传到服务器,命令为`scp -r forum-crawler/ root@你的服务器IP:/opt/forum-crawler/`。该图片与文档中“上传项目文件并解压”步骤相关,直观呈现了通过Windows PowerShell执行终端上传操作的界面情况。
img-360 · 图片展示的是Windows PowerShell界面,用于上传项目文件到服务器。界面中显示了命令行操作,先是进入“Dow

登录Linux服务后台,执行解压项目文件包

PLAIN TEXT
cd /opt && tar -xzf forum-crawler.tar.gz

5.3 配置环境变量

在服务器上创建 .env 文件:

BASH
cd /opt/forum-crawler
nano .env

填入实际的配置值:前面准备的飞书应用FEISHU_APP_IDFEISHU_APP_SECRET、AI API_KEY填写进去。

PLAIN TEXT
FEISHU_APP_ID=cli_xxxxxxxx
FEISHU_APP_SECRET=xxxxxxxxxx
AI_API_KEY=sk-xxxxxxxxxx
这张图片是ECS Terminal的操作界面,展示了登录Linux服务器后的命令行操作环境。界面顶部显示当前登录的root用户、服务器实例编号及相关网络信息,系统为Ubuntu 24.04 LTS版本。在命令行中,用户已进入forum-crawler项目目录,输入了“nano .env”命令,准备编辑之前提到的用于存放配置项的.env文件,该操作与文档中配置环境变量的内容对应,是完成项目部署流程的关键步骤。
img-361 · 这张图片是ECS Terminal的操作界面,展示了登录Linux服务器后的命令行操作环境。界面顶部显示当前登录的roo

完成编辑后:按ctrl+x 退出,按Y保存

5.4 首次运行测试

BASH
cd /opt/forum-crawler
python3 main.py

观察日志输出,确认:

5.5 设置定时任务

BASH
crontab -e

添加定时任务(每小时执行一次):

PLAIN TEXT
0 * * * * cd /opt/forum-crawler && /usr/bin/python3 main.py >> /opt/forum-crawler/logs/cron.log 2>&1

小贴士:定时任务的日志输出到文件,方便排查问题。建议定期清理日志文件,避免磁盘占满。

最终成果

以下为 TRAE 论坛数据流转蓝图

图片为TRAE论坛数据流转蓝图,展示了数据采集到可视化的全流程。从Cron触发开始,经论坛爬虫抓取数据,再由AI分析、DeepSeek分析、飞书多维指标分析等环节,最终实现AI智能标签提取,每小时自动同步更新。还涉及资源规划、Rate Limit限流等问题解决,如增量分析、指数退避重试机制等。图片下方有“最终成果”板块,总结了3400+参赛作品自动采集、14个字段结构化数据、每小时自动同步更新等成果。
img-362 · 图片为TRAE论坛数据流转蓝图,展示了数据采集到可视化的全流程。从Cron触发开始,经论坛爬虫抓取数据,再由AI分析、D

经过以上步骤,最终实现了:

踩坑实录

开发过程中踩了不少坑,挑最典型的 5 个分享给大家,希望帮你少走弯路:

问题1:字段名称一致性问题

现象:写入飞书时报错 FieldNameNotFound

原因:代码中用了英文字段名(如 username),但飞书表格创建的是中文字段名(如 用户名

解决:统一使用中文字段名,和飞书表格保持完全一致

问题2:字段格式一致性问题

现象:写入超链接字段时报错

原因:超链接字段直接传了 URL 字符串,但飞书要求特定格式

解决:超链接字段使用 {"link": "https://...", "text": "查看帖子"} 格式

问题3:资源规划合理性问题

现象:每次同步都调用 AI 分析所有帖子,API 费用很高

解决:实现增量分析,只对新增或内容变更的帖子调用 AI,缓存未变更的分析结果

问题4:Rate Limit 限流

现象:请求频率过高被飞书 API 限流

解决:实现指数退避重试机制(1秒→2秒→4秒→8秒),每次请求之间增加延迟

问题5:全量同步效率低

现象:3400+ 帖子每次全量处理需要很长时间

解决:增量同步 + 分页获取 + 并发处理,只处理变更的数据

写在最后

如果把最核心的经验浓缩成几句话,就是下面这 6 条:希望能帮助大家在做类似项目时少走弯路:

  1. 先梳理需求,再动手开发 — 和 TRAE Work 对话时把需求说清楚,包括字段名、字段类型、数据来源、目标位置
  2. 飞书配置是第一步 — 先创建应用、开通权限、发布应用,然后再写代码
  3. 增量思维 — 不要每次全量处理,用缓存和指纹比对实现增量更新
  4. 错误处理要完善 — API 调用会失败,必须有重试机制和日志记录
  5. 先本地测试,再部署服务器 — 确保本地跑通后再上传到服务器,减少排查难度
  6. Work — Work 展现的意图理解能力和规划能力超强。