打造自动化科技新闻博客:Tech News Skill 介绍

背景

每天浏览 Hacker News、GitHub Trending、技术博客获取科技资讯既耗时又容易遗漏。Tech News Skill 把「抓取 → 翻译 → 分类 → 生成」这条流水线自动化,让你每天几分钟内就能产出当天的科技新闻汇总。

GitHub 地址
https://github.com/foundralab/my-skills/tree/main/tech-news

功能特性(最新)

特性 说明
多源聚合 Hacker News、Reddit Programming、GitHub Trending、Dev.to、Lobsters、Papers With Code、Hugging Face、arXiv AI
自动翻译 使用 Minimax 或 OpenAI API 生成中文标题与摘要
智能分类 AI、开发工具、基础设施、产品设计、趣闻观点
去重机制 默认排除近 3 天重复文章
图片支持 可自动抓取 og:image 并上传到 R2(可选)
输出稳定 统一 Markdown 结构,适合二次加工或直接发布

工作流程

抓取多源 → 去重 → 平衡筛选 → 翻译摘要 → (可选)处理配图 → 生成Markdown

前置条件

  • Python 3.8+ (python3)
  • 翻译 API:MINIMAX_API_KEYOPENAI_API_KEY
  • 可选图片上传:~/.r2-upload.ymlR2_UPLOAD_CONFIG

示例:

export MINIMAX_API_KEY=your_key
# 或
export OPENAI_API_KEY=your_key

# 如需图片上传
export R2_UPLOAD_CONFIG=~/.r2-upload.yml

快速开始

假设 skill 安装目录为 ~/.agents/skills/tech-news(以实际路径为准):

TECH_NEWS_DIR=~/.agents/skills/tech-news
DATE=$(date +%F)

python3 $TECH_NEWS_DIR/scripts/generate.py \
  --date $DATE \
  --save /tmp/tech-news-$DATE.md

如果你不需要图片:

python3 $TECH_NEWS_DIR/scripts/generate.py --date $DATE --no-images --save /tmp/tech-news-$DATE.md

常用参数

  • --sources <list>:指定新闻源(默认 8 个)
  • --count <n>:每源抓取数量(默认 15)
  • --limit <n>:最终精选数量(默认 10)
  • --max-images <n>:处理图片上限
  • --no-images:禁用图片
  • --output-only:仅输出 Markdown 到 stdout

文章格式

默认输出结构(节选):

# 📰 YYYY-MM-DD 科技早报

> 📊 **今日导读**
> 精选 10 条科技新闻
> 来源:Hacker News(4) | GitHub Trending(3) | Lobsters(3)

---

## 📋 文章速览

**AI 与机器学习**:3 篇
1. ...

自动化方案

1. Cron(本地定时)

0 9 * * * \
  python3 ~/.agents/skills/tech-news/scripts/generate.py --date $(date +%F) --save /tmp/tech-news-$(date +%F).md

生成后即可用于发布或二次编辑(可用脚本自动处理)。

2. GitHub Actions

generate.py 放到 workflow 中,定时生成并提交到仓库。

常见问题

  • 翻译质量一般:确认 MINIMAX_API_KEYOPENAI_API_KEY 已配置
  • 图片不显示:检查 R2_UPLOAD_CONFIG 或改用 --no-images
  • 重复内容:默认会排除近 3 天重复文章,可按需改代码

Skill 源码与目录结构

Tech News Skill 本地结构如下:

GitHub 仓库

tech-news/
├── SKILL.md
├── scripts/
│   ├── generate.py
│   ├── fetch_news.py
│   └── llm_translate.py
└── references/

如果你想改来源、分类或输出格式,直接修改 generate.py 即可。


让科技新闻聚合变得简单高效!

背景

每天浏览 Hacker News、GitHub Trending、技术博客获取科技资讯既耗时又容易遗漏。Tech News Skill 把「抓取 → 翻译 → 分类 → 生成」这条流水线自动化,让你每天几分钟内就能产出当天的科技新闻汇总。

GitHub 地址
https://github.com/foundralab/my-skills/tree/main/tech-news

功能特性(最新)

特性 说明
多源聚合 Hacker News、Reddit Programming、GitHub Trending、Dev.to、Lobsters、Papers With Code、Hugging Face、arXiv AI
自动翻译 使用 Minimax 或 OpenAI API 生成中文标题与摘要
智能分类 AI、开发工具、基础设施、产品设计、趣闻观点
去重机制 默认排除近 3 天重复文章
图片支持 可自动抓取 og:image 并上传到 R2(可选)
输出稳定 统一 Markdown 结构,适合二次加工或直接发布

工作流程

抓取多源 → 去重 → 平衡筛选 → 翻译摘要 → (可选)处理配图 → 生成Markdown

前置条件

  • Python 3.8+ (python3)
  • 翻译 API:MINIMAX_API_KEYOPENAI_API_KEY
  • 可选图片上传:~/.r2-upload.ymlR2_UPLOAD_CONFIG

示例:

export MINIMAX_API_KEY=your_key
# 或
export OPENAI_API_KEY=your_key

# 如需图片上传
export R2_UPLOAD_CONFIG=~/.r2-upload.yml

快速开始

假设 skill 安装目录为 ~/.agents/skills/tech-news(以实际路径为准):

TECH_NEWS_DIR=~/.agents/skills/tech-news
DATE=$(date +%F)

python3 $TECH_NEWS_DIR/scripts/generate.py \
  --date $DATE \
  --save /tmp/tech-news-$DATE.md

如果你不需要图片:

python3 $TECH_NEWS_DIR/scripts/generate.py --date $DATE --no-images --save /tmp/tech-news-$DATE.md

常用参数

  • --sources <list>:指定新闻源(默认 8 个)
  • --count <n>:每源抓取数量(默认 15)
  • --limit <n>:最终精选数量(默认 10)
  • --max-images <n>:处理图片上限
  • --no-images:禁用图片
  • --output-only:仅输出 Markdown 到 stdout

文章格式

默认输出结构(节选):

# 📰 YYYY-MM-DD 科技早报

> 📊 **今日导读**
> 精选 10 条科技新闻
> 来源:Hacker News(4) | GitHub Trending(3) | Lobsters(3)

---

## 📋 文章速览

**AI 与机器学习**:3 篇
1. ...

自动化方案

1. Cron(本地定时)

0 9 * * * \
  python3 ~/.agents/skills/tech-news/scripts/generate.py --date $(date +%F) --save /tmp/tech-news-$(date +%F).md

生成后即可用于发布或二次编辑(可用脚本自动处理)。

2. GitHub Actions

generate.py 放到 workflow 中,定时生成并提交到仓库。

常见问题

  • 翻译质量一般:确认 MINIMAX_API_KEYOPENAI_API_KEY 已配置
  • 图片不显示:检查 R2_UPLOAD_CONFIG 或改用 --no-images
  • 重复内容:默认会排除近 3 天重复文章,可按需改代码

Skill 源码与目录结构

Tech News Skill 本地结构如下:

GitHub 仓库

tech-news/
├── SKILL.md
├── scripts/
│   ├── generate.py
│   ├── fetch_news.py
│   └── llm_translate.py
└── references/

如果你想改来源、分类或输出格式,直接修改 generate.py 即可。


让科技新闻聚合变得简单高效!

Clawdbot 安装 R2 Upload Skill 指南

之前介绍了如何配置 Clawdbot 使用国内 Minimax,今天分享如何为 Clawdbot 安装 R2 Upload Skill,实现图片/文件上传到 Cloudflare R2 并生成公开访问链接。

背景

Clawdbot 本身没有内置的文件上传功能,但通过安装 R2 Upload Skill,可以轻松实现:

  • 📤 上传文件到 Cloudflare R2 或 S3 兼容存储
  • 🔗 生成短期有效的预签名下载链接
  • 🌐 支持自定义域名访问
  • 📦 多 Bucket 配置

环境准备

在开始之前,你需要准备:

  1. Cloudflare R2 账号
  2. 已创建的 R2 Bucket
  3. R2 API Token(包含 Access Key ID 和 Secret Access Key)
  4. Clawdbot 已安装(本文假设已安装)

安装步骤

步骤一:下载 Skill

R2 Upload Skill 托管在 ClawdHub,通过以下地址下载:

https://auth.clawdhub.com/api/v1/download?slug=r2-upload

下载后会得到一个 zip 文件。

步骤二:解压并安装到全局

将 Skill 安装到 Clawdbot 全局技能目录:

# 解压
unzip r2-upload.zip -d /tmp/r2-upload-extract

# 安装到全局 skills 目录
cp -r /tmp/r2-upload-extract ~/.clawdbot/skills/r2-upload

# 安装依赖
cd ~/.clawdbot/skills/r2-upload
npm install

步骤三:配置 R2 凭证

创建配置文件 ~/.r2-upload.yml

# R2 Upload Configuration

default: your-bucket-name

buckets:
  your-bucket-name:
    endpoint: https://YOUR_ACCOUNT_ID.r2.cloudflarestorage.com
    access_key_id: YOUR_ACCESS_KEY_ID
    secret_access_key: YOUR_SECRET_ACCESS_KEY
    bucket_name: your-bucket-name
    public_url: https://your-custom-domain.com
    region: auto

配置说明:

配置项 说明
endpoint R2 端点地址,格式为 https://<ACCOUNT_ID>.r2.cloudflarestorage.com
access_key_id R2 API Token 的 Access Key ID
secret_access_key R2 API Token 的 Secret Access Key
bucket_name R2 Bucket 名称
public_url 自定义域名(可选,用于生成公开访问链接)
region 地区,R2 固定使用 auto

步骤四:重启 Clawdbot

使 Skill 生效:

clawdbot gateway restart

使用方法

通过 Clawdbot 对话

在 Clawdbot 对话中直接使用:

上传这张图片到 R2

或指定参数:

上传 /path/to/file.jpg 到 R2,有效期 24 小时

可用工具

R2 Upload Skill 提供以下工具:

工具 说明
r2_upload 上传文件并获取预签名 URL
r2_list 列出 Bucket 中的文件
r2_delete 删除文件
r2_generate_url 为已存在文件生成预签名 URL

上传示例

# 上传文件
r2-upload /path/to/file.pdf

# 指定自定义路径
r2-upload /path/to/file.pdf --key uploads/2026/report.pdf

# 指定 Bucket
r2-upload /path/to/file.pdf --bucket my-bucket

# 自定义有效期(默认 5 分钟)
r2-upload /path/to/file.pdf --expires 24h
r2-upload /path/to/file.pdf --expires 1d
r2-upload /path/to/file.png --expires 300  # 秒

# 生成公开链接(无需签名)
r2-upload /path/to/file.png --public

R2 配置详解

获取 R2 Endpoint

  1. 登录 Cloudflare Dashboard
  2. 进入 R2 → 你的 Bucket
  3. 查看 "S3 API" 部分,获取 Endpoint 地址

格式:https://<ACCOUNT_ID>.r2.cloudflarestorage.com

创建 API Token

  1. 进入 https://dash.cloudflare.com/<ACCOUNT_ID>/r2/api-tokens
  2. 创建新 Token:
    • 应用到特定 Bucket
    • 权限:Object Read & Write
  3. 复制 Access Key ID 和 Secret Access Key

自定义域名配置(可选)

如果你有自定义域名(如 oss.example.com):

  1. 在 Cloudflare DNS 中添加 CNAME 记录
  2. 在 R2 设置中绑定自定义域名
  3. 在配置文件中设置 public_url

常见问题

Q: 上传后链接打不开?

检查:

  1. 预签名链接是否过期(默认 5 分钟)
  2. Bucket 是否设置为公开访问
  3. 自定义域名是否正确配置

Q: 如何修改默认有效期?

在配置文件或环境变量中设置:

# ~/.r2-upload.yml
default_expires: 3600  # 1 小时

或使用环境变量:

export R2_DEFAULT_EXPIRES=3600

Q: 可以上传到多个 Bucket 吗?

可以,在配置文件中定义多个 Bucket:

default: blog

buckets:
  blog:
    endpoint: https://blog.r2.cloudflarestorage.com
    # ... 其他配置
    
  assets:
    endpoint: https://assets.r2.cloudflarestorage.com
    # ... 其他配置

上传时指定 Bucket:

上传图片到 assets bucket

总结

通过以上步骤,你已经成功为 Clawdbot 安装了 R2 Upload Skill。现在可以轻松上传文件并生成分享链接了。

相比传统的文件上传方式,R2 + Clawdbot 的组合具有以下优势:

  • ✅ 零服务器成本(R2 只收存储和流量费)
  • ✅ 全球 CDN 加速
  • ✅ 自动生成短期有效链接
  • ✅ 安全可控的访问权限
  • ✅ 支持自定义域名

如果你正在使用 Clawdbot 进行 AI 开发,R2 Upload Skill 是一个非常实用的工具。


参考链接:

标签: Clawdbot, R2, Cloudflare, 存储, 教程

之前介绍了如何配置 Clawdbot 使用国内 Minimax,今天分享如何为 Clawdbot 安装 R2 Upload Skill,实现图片/文件上传到 Cloudflare R2 并生成公开访问链接。

背景

Clawdbot 本身没有内置的文件上传功能,但通过安装 R2 Upload Skill,可以轻松实现:

  • 📤 上传文件到 Cloudflare R2 或 S3 兼容存储
  • 🔗 生成短期有效的预签名下载链接
  • 🌐 支持自定义域名访问
  • 📦 多 Bucket 配置

环境准备

在开始之前,你需要准备:

  1. Cloudflare R2 账号
  2. 已创建的 R2 Bucket
  3. R2 API Token(包含 Access Key ID 和 Secret Access Key)
  4. Clawdbot 已安装(本文假设已安装)

安装步骤

步骤一:下载 Skill

R2 Upload Skill 托管在 ClawdHub,通过以下地址下载:

https://auth.clawdhub.com/api/v1/download?slug=r2-upload

下载后会得到一个 zip 文件。

步骤二:解压并安装到全局

将 Skill 安装到 Clawdbot 全局技能目录:

# 解压
unzip r2-upload.zip -d /tmp/r2-upload-extract

# 安装到全局 skills 目录
cp -r /tmp/r2-upload-extract ~/.clawdbot/skills/r2-upload

# 安装依赖
cd ~/.clawdbot/skills/r2-upload
npm install

步骤三:配置 R2 凭证

创建配置文件 ~/.r2-upload.yml

# R2 Upload Configuration

default: your-bucket-name

buckets:
  your-bucket-name:
    endpoint: https://YOUR_ACCOUNT_ID.r2.cloudflarestorage.com
    access_key_id: YOUR_ACCESS_KEY_ID
    secret_access_key: YOUR_SECRET_ACCESS_KEY
    bucket_name: your-bucket-name
    public_url: https://your-custom-domain.com
    region: auto

配置说明:

配置项 说明
endpoint R2 端点地址,格式为 https://<ACCOUNT_ID>.r2.cloudflarestorage.com
access_key_id R2 API Token 的 Access Key ID
secret_access_key R2 API Token 的 Secret Access Key
bucket_name R2 Bucket 名称
public_url 自定义域名(可选,用于生成公开访问链接)
region 地区,R2 固定使用 auto

步骤四:重启 Clawdbot

使 Skill 生效:

clawdbot gateway restart

使用方法

通过 Clawdbot 对话

在 Clawdbot 对话中直接使用:

上传这张图片到 R2

或指定参数:

上传 /path/to/file.jpg 到 R2,有效期 24 小时

可用工具

R2 Upload Skill 提供以下工具:

工具 说明
r2_upload 上传文件并获取预签名 URL
r2_list 列出 Bucket 中的文件
r2_delete 删除文件
r2_generate_url 为已存在文件生成预签名 URL

上传示例

# 上传文件
r2-upload /path/to/file.pdf

# 指定自定义路径
r2-upload /path/to/file.pdf --key uploads/2026/report.pdf

# 指定 Bucket
r2-upload /path/to/file.pdf --bucket my-bucket

# 自定义有效期(默认 5 分钟)
r2-upload /path/to/file.pdf --expires 24h
r2-upload /path/to/file.pdf --expires 1d
r2-upload /path/to/file.png --expires 300  # 秒

# 生成公开链接(无需签名)
r2-upload /path/to/file.png --public

R2 配置详解

获取 R2 Endpoint

  1. 登录 Cloudflare Dashboard
  2. 进入 R2 → 你的 Bucket
  3. 查看 "S3 API" 部分,获取 Endpoint 地址

格式:https://<ACCOUNT_ID>.r2.cloudflarestorage.com

创建 API Token

  1. 进入 https://dash.cloudflare.com/<ACCOUNT_ID>/r2/api-tokens
  2. 创建新 Token:
    • 应用到特定 Bucket
    • 权限:Object Read & Write
  3. 复制 Access Key ID 和 Secret Access Key

自定义域名配置(可选)

如果你有自定义域名(如 oss.example.com):

  1. 在 Cloudflare DNS 中添加 CNAME 记录
  2. 在 R2 设置中绑定自定义域名
  3. 在配置文件中设置 public_url

常见问题

Q: 上传后链接打不开?

检查:

  1. 预签名链接是否过期(默认 5 分钟)
  2. Bucket 是否设置为公开访问
  3. 自定义域名是否正确配置

Q: 如何修改默认有效期?

在配置文件或环境变量中设置:

# ~/.r2-upload.yml
default_expires: 3600  # 1 小时

或使用环境变量:

export R2_DEFAULT_EXPIRES=3600

Q: 可以上传到多个 Bucket 吗?

可以,在配置文件中定义多个 Bucket:

default: blog

buckets:
  blog:
    endpoint: https://blog.r2.cloudflarestorage.com
    # ... 其他配置
    
  assets:
    endpoint: https://assets.r2.cloudflarestorage.com
    # ... 其他配置

上传时指定 Bucket:

上传图片到 assets bucket

总结

通过以上步骤,你已经成功为 Clawdbot 安装了 R2 Upload Skill。现在可以轻松上传文件并生成分享链接了。

相比传统的文件上传方式,R2 + Clawdbot 的组合具有以下优势:

  • ✅ 零服务器成本(R2 只收存储和流量费)
  • ✅ 全球 CDN 加速
  • ✅ 自动生成短期有效链接
  • ✅ 安全可控的访问权限
  • ✅ 支持自定义域名

如果你正在使用 Clawdbot 进行 AI 开发,R2 Upload Skill 是一个非常实用的工具。


参考链接:

标签: Clawdbot, R2, Cloudflare, 存储, 教程

Clawdbot 配置国内 Minimax 教程

Clawdbot 默认使用国际站 Minimax API,但国内用户访问国际站可能存在网络延迟或访问受限问题。本文介绍如何将 Clawdbot 配置为使用国内 Minimax 地址。

问题背景

Clawdbot 默认配置的 Minimax 地址为国际站,可能存在以下问题:

  • 网络延迟高
  • 访问不稳定
  • 需要特殊网络环境

国内站地址:https://api.minimaxi.com/anthropic

配置步骤

步骤一:修改 Agent 模型配置

编辑 ~/.clawdbot/agents/main/agent/models.json

{
  "providers": {
    "minimax": {
      "baseUrl": "https://api.minimaxi.com/anthropic",
      "api": "anthropic-messages",
      "models": [
        {
          "id": "MiniMax-M2.1",
          "name": "MiniMax M2.1",
          "reasoning": false,
          "input": ["text"],
          "cost": {
            "input": 15,
            "output": 60,
            "cacheRead": 2,
            "cacheWrite": 10
          },
          "contextWindow": 200000,
          "maxTokens": 8192
        },
        {
          "id": "MiniMax-VL-01",
          "name": "MiniMax VL 01",
          "reasoning": false,
          "input": ["text", "image"],
          "cost": {
            "input": 15,
            "output": 60,
            "cacheRead": 2,
            "cacheWrite": 10
          },
          "contextWindow": 200000,
          "maxTokens": 8192
        }
      ],
      "apiKey": "sk-cp-xxx"
    }
  }
}

步骤二:修改全局配置

编辑 /root/.clawdbot/clawdbot.json

{
  "models": {
    "mode": "merge",
    "providers": {
      "minimax": {
        "baseUrl": "https://api.minimaxi.com/anthropic",
        "api": "anthropic-messages",
        "models": [
          {
            "id": "MiniMax-M2.1",
            "name": "MiniMax M2.1",
            "reasoning": false,
            "input": ["text"],
            "cost": {
              "input": 15,
              "output": 60,
              "cacheRead": 2,
              "cacheWrite": 10
            },
            "contextWindow": 200000,
            "maxTokens": 8192
          }
        ]
      }
    }
  }
}

配置说明

配置项 说明
baseUrl API 基础地址,国内站为 https://api.minimaxi.com/anthropic
api API 类型,使用 anthropic-messages
models 模型列表,可配置 MiniMax-M2.1 和 MiniMax-VL-01
apiKey 你的 API Key

重启验证

配置完成后,重启 Clawdbot:

clawdbot gateway restart

然后检查状态:

clawdbot status

常见问题

Q: 配置后无法连接?

检查:

  1. API Key 是否正确
  2. 网络是否可访问 https://api.minimaxi.com
  3. 配置文件语法是否正确(JSON 格式)

Q: 如何验证配置生效?

在 Clawdbot 中执行:

/status

查看当前使用的模型配置。

参考链接


文章标签: Clawdbot, Minimax, AI配置, 国内站

Clawdbot 默认使用国际站 Minimax API,但国内用户访问国际站可能存在网络延迟或访问受限问题。本文介绍如何将 Clawdbot 配置为使用国内 Minimax 地址。

问题背景

Clawdbot 默认配置的 Minimax 地址为国际站,可能存在以下问题:

  • 网络延迟高
  • 访问不稳定
  • 需要特殊网络环境

国内站地址:https://api.minimaxi.com/anthropic

配置步骤

步骤一:修改 Agent 模型配置

编辑 ~/.clawdbot/agents/main/agent/models.json

{
  "providers": {
    "minimax": {
      "baseUrl": "https://api.minimaxi.com/anthropic",
      "api": "anthropic-messages",
      "models": [
        {
          "id": "MiniMax-M2.1",
          "name": "MiniMax M2.1",
          "reasoning": false,
          "input": ["text"],
          "cost": {
            "input": 15,
            "output": 60,
            "cacheRead": 2,
            "cacheWrite": 10
          },
          "contextWindow": 200000,
          "maxTokens": 8192
        },
        {
          "id": "MiniMax-VL-01",
          "name": "MiniMax VL 01",
          "reasoning": false,
          "input": ["text", "image"],
          "cost": {
            "input": 15,
            "output": 60,
            "cacheRead": 2,
            "cacheWrite": 10
          },
          "contextWindow": 200000,
          "maxTokens": 8192
        }
      ],
      "apiKey": "sk-cp-xxx"
    }
  }
}

步骤二:修改全局配置

编辑 /root/.clawdbot/clawdbot.json

{
  "models": {
    "mode": "merge",
    "providers": {
      "minimax": {
        "baseUrl": "https://api.minimaxi.com/anthropic",
        "api": "anthropic-messages",
        "models": [
          {
            "id": "MiniMax-M2.1",
            "name": "MiniMax M2.1",
            "reasoning": false,
            "input": ["text"],
            "cost": {
              "input": 15,
              "output": 60,
              "cacheRead": 2,
              "cacheWrite": 10
            },
            "contextWindow": 200000,
            "maxTokens": 8192
          }
        ]
      }
    }
  }
}

配置说明

配置项 说明
baseUrl API 基础地址,国内站为 https://api.minimaxi.com/anthropic
api API 类型,使用 anthropic-messages
models 模型列表,可配置 MiniMax-M2.1 和 MiniMax-VL-01
apiKey 你的 API Key

重启验证

配置完成后,重启 Clawdbot:

clawdbot gateway restart

然后检查状态:

clawdbot status

常见问题

Q: 配置后无法连接?

检查:

  1. API Key 是否正确
  2. 网络是否可访问 https://api.minimaxi.com
  3. 配置文件语法是否正确(JSON 格式)

Q: 如何验证配置生效?

在 Clawdbot 中执行:

/status

查看当前使用的模型配置。

参考链接


文章标签: Clawdbot, Minimax, AI配置, 国内站