1. 项目概述与核心价值作为一个在信息过载时代挣扎了多年的内容从业者我深知“刷屏”的疲惫。每天打开手机各大平台的热榜、推送、订阅源像潮水一样涌来但真正与我相关的信息却寥寥无几。要么是重复的旧闻要么是博眼球的噪音要么就是平台算法强塞给我的“热门”。直到我动手搭建了 TrendRadar这个困扰我多年的信息焦虑才真正得到解决。TrendRadar 本质上是一个高度定制化的信息雷达。它不是一个简单的新闻聚合器而是一个能理解你“兴趣图谱”的智能助理。它的核心价值在于“精准”和“主动”。你不用再去海量信息里淘金而是让金子自己跑到你面前。它通过抓取全网主流平台的热榜结合你设定的关键词或 AI 兴趣描述进行智能筛选和聚合最后通过你习惯的通讯工具微信、飞书、钉钉、邮件等将结果精准推送给你。整个过程最快 30 秒就能部署完成之后你就可以“躺平”接收真正有价值的信息了。这个项目适合谁我认为有三类人最需要它行业从业者与投资者需要实时追踪特定领域如 AI、新能源、半导体的动态捕捉市场信号和舆情变化。内容创作者与自媒体人需要紧跟热点寻找选题灵感但又不希望被无关的娱乐八卦干扰。效率追求者与知识管理者希望从被动的信息接收者转变为主动的信息管理者减少无效浏览时间提升信息摄入质量。接下来我将从设计思路、部署实操、核心配置到高级玩法为你完整拆解如何从零开始构建并驾驭你的个人 TrendRadar。2. 核心设计思路与架构拆解在动手部署之前理解 TrendRadar 的设计哲学至关重要。这能帮助你在后续配置时做出更合理的决策而不是盲目照搬。2.1 信息处理的“三层漏斗”模型TrendRadar 的工作流程可以抽象为一个三层过滤漏斗数据采集层Raw Data这一层负责从各个数据源“拉取”原始信息。目前支持两大类平台热榜如微博、知乎、B站、抖音等11个默认平台。这些是经过平台初步算法筛选的“大众热点”。RSS订阅源你可以添加任何提供 RSS 输出的博客、媒体、资讯网站。这是你的“个性化信源”。这一层的目标是全量抓取不做任何过滤确保信息源的广度。智能筛选层Intelligent Filter这是核心价值所在。原始数据进入此层后会根据你的规则进行清洗和提纯。TrendRadar 提供了两种筛选范式关键词匹配Keyword传统但精准。你定义一组关键词如人工智能、特斯拉、教育改革系统进行字符串匹配。它高效、可控但需要你对自己的兴趣有明确的、结构化的认知。AI兴趣描述AI Interest革命性的升级。你只需用自然语言描述你的兴趣例如“我想看关于 AI 大模型技术突破和商业应用落地的新闻还有新能源汽车的销量数据和政策动态”。AI 会理解这段描述自动提取标签并为每条新闻打分只推送高相关度的内容。这解决了关键词模式“想不到所有相关词”的痛点。交付呈现层Delivery Presentation经过筛选的信息通过你配置的渠道以你喜欢的格式和节奏送达。这里的关键是“人找信息”变为“信息找人”。无论是上班前在微信收到晨报还是重要突发新闻通过 Telegram 即时提醒信息流完全围绕你的场景和习惯构建。这个三层模型确保了系统既全面又精准既自动化又个性化。2.2 存储与计算架构的演进早期的 TrendRadar 数据存储在本地文件里这在单机运行时没问题但一旦想用 GitHub Actions 做自动化或者多设备同步状态就非常麻烦。v4.0.0 的存储重构是一次重要的架构升级。核心变化从“文件存储”到“抽象存储层”现在TrendRadar 定义了一个统一的StorageManager接口。具体实现有两种SQLiteStorage本地在 Docker 或本地直接运行时使用数据存在一个.db文件里。轻量、快速适合个人单点使用。S3Storage远程在 GitHub Actions 等无状态环境或需要数据持久化时使用。它兼容所有 S3 协议的云存储如 AWS S3、Cloudflare R2、腾讯云 COS、阿里云 OSS。为什么要这么设计环境适配性GitHub Actions 每次运行都是一个全新的虚拟机运行完数据就丢了。用远程存储每次运行都能读取到上一次的历史数据从而实现incremental增量模式的正确判断。数据可靠性云存储通常提供高可用性和备份比本地文件更可靠。状态共享如果你同时在办公室电脑和家里 NAS 上部署使用同一个远程存储后端它们看到的数据状态就是一致的。实操心得存储选型建议个人轻量使用仅需定时推送直接用 GitHub Actions 默认的 Cloudflare R2免费额度足够。这是最省心的方案无需维护服务器。需要深度分析、频繁查询历史数据在本地或 VPS 上用 Docker 部署选择 SQLite。查询速度快方便用其他工具如 Datasette直接分析数据库。团队使用或需要高可靠性使用 Docker 部署但将存储后端配置为团队的云存储如公司内的 S3确保数据不丢失。2.3 推送策略的精细化设计“什么时候推推什么推多少” TrendRadar 通过几个核心配置给出了答案。1. 运行模式report_mode决定数据的范围daily当日汇总推送当天所有匹配到的新闻。优点是信息完整适合做每日复盘缺点是可能有重复。current当前榜单推送最近一次抓取时正在榜上的新闻。适合追踪持续热点但热点会反复出现。incremental增量监控只推送上次运行后新出现的新闻。这是“零打扰”模式的核心非常适合监控突发新闻或你极度关注领域的任何新动向。2. 调度系统timeline.yaml决定运行的时机和方式这是 v6.0.0 引入的强大功能。它像一个每周节目表让你能精细控制不同时间段的推送行为。按天编排可以为周一至周日设置完全不同的时间计划。按时间段配置在一天内划分多个时段如 9:00-12:00, 14:00-18:00每个时段可以独立设置mode: 使用哪个运行模式daily/current/incremental。filter_method: 使用关键词过滤还是 AI 筛选。filter_source: 使用哪个关键词文件或 AI 兴趣描述文件。enable_ai_analysis: 是否在这个时段进行 AI 分析。内置预设提供了morning_evening早晚各一次、office_hours工作时间、night_owl夜猫子等模板开箱即用。3. 展示控制display决定推送的样式和内容region_order: 调整热榜、RSS、新增、独立展示区、AI 分析这几个板块的显示顺序。regions: 可以关闭某个你不想看到的板块比如关闭 RSS只看热榜。max_news_per_keyword: 限制每个关键词分组下最多显示多少条新闻防止某个爆火话题刷屏。这套组合拳打下来你就能实现诸如“工作日早 8 点用 AI 筛选模式推送增量科技新闻晚 6 点用关键词模式推送当日金融汇总周末则只在上午推送一次娱乐休闲类 RSS 内容”这样复杂的场景。3. 从零开始的部署实战理论讲完我们进入实战。我将以最常用的GitHub Actions 飞书推送和Docker 本地部署两种方案为例带你一步步走通。你可以根据自身情况选择。3.1 方案一GitHub Actions 云端自动化推荐新手这是最“Serverless”的方案利用 GitHub 的免费计算资源定时运行无需自己准备服务器。步骤 1Fork 项目仓库访问 sansan0/TrendRadar 项目主页。点击右上角的Fork按钮将项目复制到你自己的 GitHub 账号下。步骤 2配置飞书群机器人打开飞书创建一个新群组或使用已有群组。点击群设置 - 群机器人 - 添加机器人 - 自定义机器人。设置机器人名称如“热点雷达”。最关键一步在“安全设置”中取消勾选“签名校验”。TrendRadar 目前使用简单的 Webhook不需要签名。点击“添加”复制生成的Webhook URL。格式类似https://open.feishu.cn/open-apis/bot/v2/hook/xxxxxx。步骤 3在 Fork 的仓库中配置 Secrets进入你 Fork 后的仓库页面。点击Settings-Secrets and variables-Actions。点击New repository secret。Name:FEISHU_WEBHOOK_URLValue: 粘贴你刚才复制的飞书 Webhook URL。可选如果你想启用其他推送方式如 Telegram、邮件等同样以 Secret 方式配置对应的 Key如TELEGRAM_BOT_TOKEN、TELEGRAM_CHAT_ID、SMTP_*等。步骤 4修改配置文件可选但建议默认配置可能不适合你我们需要调整两个核心文件。在你 Fork 的仓库里操作修改config/frequency_words.txt这是你的兴趣清单。清空里面的示例按行添加你关心的关键词例如# 科技 人工智能 大模型 GPT # 汽车 比亚迪 特斯拉 新能源汽车 # 财经 降息 股市每一行一个关键词#开头的是注释。保存文件。修改.github/workflows/crawler.yml这是 GitHub Actions 的工作流定义文件控制何时运行。找到schedule部分默认是cron: 0 9,18 * * *表示每天 UTC 时间的 9点和18点运行对应北京时间的17点和次日2点。你可以根据 cron 语法 调整。例如0 8 * * *是每天 UTC 8点北京时间16点运行一次。可选你还可以修改report_mode等参数但更推荐后续在config.yaml里改。步骤 5手动触发一次运行测试配置进入你仓库的Actions标签页。在左侧选择Crawler工作流。点击Run workflow使用main分支然后点击绿色的运行按钮。等待大约1-2分钟运行完成。如果一切顺利你的飞书群就会收到第一条测试推送注意事项GitHub Actions 的免费额度每月有 2000 分钟对于每天运行一两次的任务完全够用。切勿将 Webhook URL 等敏感信息直接写在config.yaml里并提交到仓库一定要用 Secrets。首次运行可能会失败因为需要安装 Python 依赖。这是正常的后续定时运行会缓存依赖速度更快。3.2 方案二Docker 本地/服务器部署追求控制权如果你有 NAS、云服务器或常开机的电脑Docker 部署能给你最大的控制权和灵活性也便于集成到其他自动化流程中。步骤 1准备环境确保你的机器上已经安装了 Docker 和 Docker Compose 。步骤 2获取项目并配置# 1. 克隆项目到本地 git clone https://github.com/sansan0/TrendRadar.git cd TrendRadar # 2. 复制配置文件模板 cp config/config.yaml.example config/config.yaml cp config/frequency_words.txt.example config/frequency_words.txt步骤 3编辑配置文件用文本编辑器打开config/config.yaml这是核心控制文件。你需要关注并修改以下几处app: report_mode: incremental # 运行模式daily, current, incremental enable_crawler: true # 是否抓取数据 enable_notification: true # 是否发送通知 notification: feishu: enabled: true webhook_url: # 这里留空我们通过环境变量传入 # ... 其他推送渠道根据需要配置 storage: backend: sqlite # Docker 部署推荐用 sqlite数据存在本地 volume local: data_dir: ./data # 数据目录会被映射到容器内打开config/frequency_words.txt同样填入你的关键词。步骤 4使用 Docker Compose 运行推荐项目提供了docker-compose.yml这是最简单的方式。创建.env文件来管理敏感信息避免写入配置文件# .env 文件内容示例 FEISHU_WEBHOOK_URLhttps://open.feishu.cn/open-apis/bot/v2/hook/xxxxxx # 如果需要AI功能添加 # AI_API_KEYsk-xxxxxx修改docker-compose.yml确保 volumes 映射正确将本地的config和data目录挂载到容器内version: 3.8 services: trendradar: image: wantcat/trendradar:latest container_name: trendradar restart: unless-stopped volumes: - ./config:/app/config # 挂载配置文件目录 - ./data:/app/data # 挂载数据目录持久化存储 environment: - TZAsia/Shanghai # 设置时区 - FEISHU_WEBHOOK_URL${FEISHU_WEBHOOK_URL} # 从 .env 文件读取 # 如果要用远程存储如R2注释掉上面的 ./data 挂载并配置 storage.backend: s3启动容器docker-compose up -d查看日志确认运行成功docker logs -f trendradar你应该能看到抓取各平台、匹配关键词、发送推送的日志。步骤 5配置定时任务CronDocker 容器本身不会定时运行。你需要用系统的 Crontab 来定时执行容器内的命令。# 编辑当前用户的 crontab crontab -e添加一行例如每天上午9点和下午6点各运行一次北京时间# 分 时 * * * 命令 0 1,10 * * * docker exec trendradar python main.py /path/to/trendradar.log 21这里1,10是 UTC 时间对应北京时间的 9点和18点。 /path/to/trendradar.log 21将日志输出到文件方便排查问题。实操心得Docker 部署的坑与技巧权限问题如果容器启动失败提示权限错误可能是./data目录的权限不对。尝试sudo chmod -R 777 ./data生产环境慎用或确保当前用户对目录有读写权。时区问题务必在docker-compose.yml中设置TZAsia/Shanghai否则报告里的时间可能是 UTC。升级更新镜像很简单docker-compose pull docker-compose up -d。你的config和data因为做了卷挂载所以配置和数据都会保留。资源监控TrendRadar 很轻量但如果你同时开启了 AI 分析大模型推理可能消耗较多内存。建议监控容器资源使用情况。4. 核心配置详解与个性化调优部署成功只是第一步让 TrendRadar 真正成为你的“雷达”需要对核心配置进行精细调优。配置文件config.yaml和frequency_words.txt或ai_interests.txt是你的主要调优界面。4.1 关键词配置的艺术从精准匹配到语义理解基础语法构建你的兴趣网络frequency_words.txt的每一行都是一个过滤单元。基础用法就是一行一个关键词。但它的强大之处在于高级语法分组与注释使用#开头添加注释使用[组名]来对关键词进行逻辑分组。分组不影响功能但能让配置文件更清晰并且在推送消息中同组关键词匹配到的新闻会归类在一起显示。# 科技前沿 [AI] 人工智能 大语言模型 AIGC /\\bai\\b/i AI核心 # 正则匹配精确匹配单词“ai” [芯片] 半导体 芯片 光刻机“与”逻辑有时你需要同时满足多个条件。例如你想看关于“苹果公司”的“芯片”新闻而不是水果“苹果”。可以用实现“与”逻辑。苹果 芯片这样只有标题同时包含“苹果”和“芯片”的新闻才会被推送。排除逻辑!过滤掉你不想看的内容优先级最高。苹果 !苹果手机 # 排除“苹果手机”相关的新闻即使标题里有“苹果”但只要也有“苹果手机”这条新闻就会被过滤掉。正则表达式/pattern/解决子字符串误匹配和复杂匹配问题。这是高级玩家的利器。/\bai\b/i精确匹配单词 “ai”忽略大小写。避免匹配到 “training”、“pain” 等词。/(苹果|小米)(发布|推出).*(手机|新品)/匹配“苹果发布新品手机”或“小米推出手机”这类句式。给正则表达式起个易懂的名字/\bopenai\b/i OpenAI动态这样推送消息里显示的是“OpenAI动态”而不是晦涩的正则表达式。AI 智能筛选让机器理解你的兴趣如果你觉得维护关键词列表太麻烦或者兴趣点比较抽象如“有争议的科技伦理话题”那么 AI 筛选 (filter.method: ai) 是你的绝佳选择。配置ai_interests.txt在这个文件里用自然语言描述你的兴趣。可以写得很具体也可以比较宽泛。我主要关注人工智能领域的技术突破和商业应用特别是大模型、AIGC、自动驾驶方面的进展。同时也关心新能源汽车行业尤其是比亚迪、特斯拉、蔚来这些头部公司的销量、技术和政策动态。对宏观经济政策比如央行降息、股市重大调整也感兴趣。请帮我忽略娱乐八卦和体育新闻。配置config.yamlfilter: method: ai # 切换为 AI 筛选模式 ai_filter: min_score: 6 # 只推送 AI 打分在 6 分满分10分及以上的新闻 ai: api_key: sk-... # 你的 AI API Key支持 DeepSeek、OpenAI 等 model: deepseek/deepseek-chat # 使用的模型工作原理TrendRadar 会将你的兴趣描述和新闻标题有时包括摘要一起发送给 AI 模型。模型会做两件事提取兴趣标签从你的描述中提炼出如[AI技术, 新能源汽车, 财经政策]等标签。相关性打分针对每条新闻判断它与每个标签的相关性并给出一个综合分数1-10分。 只有分数超过min_score的新闻才会被推送。实操心得关键词 vs AI 筛选如何选追求极致精准、可控且兴趣点明确用关键词。例如监控特定公司名、产品名、法规编号。兴趣范围较广、描述抽象或不想费心维护关键词用AI 筛选。它更能理解语义关联比如你关注“可持续发展”AI 能关联到“碳中和”、“ESG”、“新能源”等。混合使用利用 Timeline 调度在白天工作时间用关键词快速过滤行业动态晚上用 AI 筛选模式浏览更广泛的兴趣内容。4.2 推送渠道配置让信息无缝抵达TrendRadar 支持近十种推送方式这里挑几个最常用的详解。飞书/钉钉/企业微信群机器人配置逻辑类似都是获取 Webhook URL。飞书/钉钉在群机器人设置里获取 Webhook URL填入config.yaml或环境变量即可。注意飞书需关闭签名校验。企业微信稍微复杂一点需要在企业微信后台创建应用获取AgentId、Secret、CorpId并配置应用的可见范围。获取到的Webhook Key用于构造 URLhttps://qyapi.weixin.qq.com/cgi-bin/webhook/send?keyXXX。Telegram Bot在 Telegram 中搜索BotFather创建新机器人获得TOKEN。将机器人拉入你的群组或与它私聊。在浏览器中访问https://api.telegram.org/botYOUR_TOKEN/getUpdates在群组里发条消息然后刷新这个页面从返回的 JSON 中找到chat.id。将TOKEN和chat.id配置到 TrendRadar。邮件推送邮件适合归档和深度阅读。配置 SMTP 信息notification: email: enabled: true smtp_server: smtp.gmail.com # 或 smtp.qq.com, smtp.163.com smtp_port: 587 # 或 465 for SSL username: your-emailgmail.com password: your-app-password # 注意不是邮箱密码是应用专用密码 sender: your-emailgmail.com receivers: receiver1xx.com,receiver2xx.com use_tls: true # Gmail/QQ邮箱用 STARTTLS (port 587) # use_ssl: true # 如果用 SSL (port 465)则启用这个重要提示Gmail、QQ 邮箱等都需要开启 SMTP 服务并生成“应用专用密码”直接使用邮箱密码会失败。多账号推送所有渠道都支持多账号用分号;分隔多个 Webhook URL 或接收人即可。例如FEISHU_WEBHOOK_URL: https://hook1;https://hook2 EMAIL_RECEIVERS: mecompany.com;teamcompany.com这样一条消息会同时推送到多个地方。4.3 AI 分析与翻译从信息到洞察这是 TrendRadar 的“大脑”能将 raw news 转化为 insights。AI 分析 (ai_analysis)开启后AI 会对筛选出的新闻进行深度解读生成包含以下内容的分析报告核心热点态势总结当前最受关注的话题。舆论风向与争议点分析新闻的情感倾向正面/负面/中性和可能存在的争议。异动与弱信号发现新兴的、热度快速上升的话题。研判与策略建议基于分析给出可能的趋势预测或关注建议。配置要点ai_analysis: enabled: true mode: follow_report # 跟随推送报告一起分析 provider: deepseek # 或 openai, gemini 等 api_key: sk-... # 可以自定义提示词让 AI 以特定角色如行业分析师、投资顾问进行分析 prompt_file: config/ai_analysis_prompt.txt成本提示AI 分析会消耗 Token产生费用。DeepSeek 等国产模型成本极低一次分析几分钱GPT-4 等则较贵。建议根据推送频率和新闻条数估算成本。AI 翻译 (ai_translation)如果你订阅了英文 RSS 源或者想把中文热点翻译成英文分享这个功能非常有用。ai_translation: enabled: true language: English # 目标语言 # 同样可以自定义提示词比如“翻译成简洁的商务英语” prompt_file: config/ai_translation_prompt.txt翻译和分析共享同一个 AI 模型配置只需配一次api_key。实操心得平衡功能与成本轻度用户可以只开 AI 筛选不开分析和翻译。筛选本身消耗 Token 很少。深度用户可以设置 Timeline仅在重要的时间点如每日早报开启 AI 分析其他时间只推送纯新闻。翻译需求如果只是偶尔需要可以手动将推送的 HTML 报告链接丢给 ChatGPT 翻译而不是开启自动翻译以节省成本。5. 高级玩法与故障排查当基础功能跑通后你可以探索一些高级玩法让 TrendRadar 更贴合你的工作流。5.1 与 MCP 集成赋予 AI 助手“记忆”和“分析”能力MCP (Model Context Protocol) 是 TrendRadar 一个独立但强大的模块。它把 TrendRadar 变成了一个“新闻知识库”允许 Claude、Cursor 等 AI 助手通过标准协议查询和分析其中的历史数据。它能做什么假设你问 AI 助手“过去一周关于‘固态电池’的新闻有哪些主要公司被提及舆论趋势如何” 通常 AI 只能基于过时的训练数据瞎猜。但如果接入了 TrendRadar MCP ServerAI 助手就能调用search_news工具查询“固态电池”相关的所有新闻。调用aggregate_news工具去重并聚合不同平台的报道。调用analyze_sentiment工具分析舆论情感倾向。调用compare_periods工具对比上周和上上周的热度变化。AI 助手基于实时、结构化的数据给你一份可靠的分析报告。如何部署 MCP Server作为独立服务使用 Docker 运行 MCP 镜像。docker run -d \ -v /path/to/your/trendradar-data:/app/data \ -p 3333:3333 \ --name trendradar-mcp \ wantcat/trendradar-mcp:latest这会在本机 3333 端口启动一个 MCP 服务器。配置 AI 客户端以 Claude Desktop 为例编辑其配置文件~/Library/Application Support/Claude/claude_desktop_config.jsonMac或对应路径Windows/Linux添加{ mcpServers: { trendradar: { command: npx, args: [ -y, modelcontextprotocol/server-trendradar, --data-dir, /path/to/your/trendradar-data // 指向你的数据目录 ] } } }重启 Claude Desktop你就可以在对话中让 Claude 分析你的新闻数据了。5.2 可视化配置编辑器告别 YAML 语法如果你对编辑 YAML 文件感到头疼TrendRadar 提供了基于 Web 的图形化配置编辑器。打开在线编辑器 https://sansan0.github.io/TrendRadar/将你本地的config.yaml内容粘贴到左侧编辑器。右侧会实时生成表单界面你可以通过点击、下拉、输入框等方式修改所有配置。修改完成后点击“导出”按钮将生成的 YAML 复制回你的配置文件即可。这个工具对于调整复杂的timeline.yaml调度规则尤其有用它提供了直观的周视图时间线。5.3 常见问题与排查实录即使按照教程操作也可能会遇到问题。这里记录一些我踩过的坑和解决方案。问题 1GitHub Actions 运行成功但没收到推送。检查 Secrets确认FEISHU_WEBHOOK_URL等 Secret 配置正确没有多余空格。查看 Actions 日志在 Actions 运行记录的详情里查看Run main.py步骤的完整日志。常见的错误有KeyError: FEISHU_WEBHOOK_URL说明 Secret 没被正确读取检查 Secret 名称是否与代码中引用的完全一致区分大小写。403 Client Error飞书/钉钉等 Webhook 报错。检查机器人是否被移除、Webhook 是否过期、飞书是否关闭了签名校验。No news matchedfrequency_words.txt里的关键词太冷门或者ai_filter.min_score设置太高没有匹配到任何新闻。可以暂时清空frequency_words.txt测试是否会推送所有新闻。问题 2Docker 运行失败提示导入错误或权限错误。镜像拉取失败尝试docker pull wantcat/trendradar:latest。权限错误特别是挂载了本地目录时。确保宿主机上的config和data目录对 Docker 进程可读可写。可以尝试sudo chown -R 1000:1000 ./data假设容器内用户 ID 是 1000。时区不对报告时间显示 UTC。在docker-compose.yml中确保设置了TZAsia/Shanghai。问题 3AI 分析/翻译功能报错或没生效。检查 API Key确认ai.api_key配置正确且有余额。检查模型名称ai.model的格式必须是provider/model-name如deepseek/deepseek-chat、openai/gpt-4o-mini。Provider 列表参考 LiteLLM 文档 。网络问题如果使用 OpenAI 等国外服务确保网络通畅。可以尝试在容器内curl测试 API 端点。查看详细日志在config.yaml中设置log_level: DEBUG然后查看运行日志会有更详细的 AI 调用和错误信息。问题 4推送内容太多或太少。太多调整frequency_words.txt使用更精确的关键词或增加排除词 (!)。或者启用 AI 筛选并提高min_score。也可以设置display.max_news_per_keyword限制单组数量。太少检查关键词是否拼写错误或者过于具体。尝试放宽关键词或使用 AI 筛选模式。也可以检查report_modeincremental模式只推送新增如果运行间隔短可能新增新闻本身就少。问题 5如何备份和迁移数据GitHub Actions R2数据在云端无需备份。Docker SQLite备份挂载的./data目录即可。整个目录复制走在新环境同样挂载即可恢复。迁移如果从 Actions 迁移到 Docker需要将 R2 中的.db文件下载下来放到 Docker 的./data目录下。反之亦然。6. 总结与持续迭代TrendRadar 是我为自己打造的“信息减负”工具经过近一年的迭代它已经从一个简单的爬虫脚本成长为一个功能丰富的个人信息管理系统。它的核心优势不在于某个炫酷的技术而在于“高度可定制”和“以我为主”的设计理念。你不再是被动接受平台算法的投喂而是主动设计自己的信息流。回顾整个搭建和调优过程我的体会是始于需求终于场景不要一开始就追求大而全。先从最痛的一个点开始比如“每天只看 AI 和电动车新闻”用最简单的关键词部署起来。收到第一次推送的成就感会驱动你去完善它。善用调度timeline.yaml是区分普通用户和高级玩家的关键。花点时间规划一下你一天中不同时段的信息需求能让推送的价值倍增。成本意识尤其是使用 AI 功能时要清楚每次调用花了多少钱。利用好incremental模式、合理设置运行频率、选择性价比高的模型可以让工具长期可持续地运行。社区力量TrendRadar 是开源项目它的很多功能都来自用户的反馈和贡献。遇到问题可以查 Issues有想法可以提 PR。用的人越多它就越强大。最后信息过载的时代真正的稀缺不是信息而是注意力。希望 TrendRadar 能帮你当好注意力的守门人把宝贵的时间留给真正重要的事情。