技术白皮书 · 2026年5月

“当所有人都在教 AI 如何当一个更好的助理时,我们在教它如何当一个更好的审计员。”


快速导航


一、缘起:当专业人士遭遇信息洪流

1.1 一个普遍而尖锐的困境

在云基础设施、金融监管、半导体供应链这三个高度专业化的领域,每天的生产内容量早已超出任何个人的阅读能力边界。

领域典型信源日均生产量
云基础设施Cloudflare Blog, Hugging Face10-20 篇技术公告
金融监管SEC Press Releases, PCAOB5-15 条监管动态
半导体供应链Semiconductor Engineering, EE Times10-30 篇产业分析

传统解决方案——RSS 阅读器、AI 摘要工具、邮件简报——本质上都在做同一件事:把 1000 字变成 200 字。但它们从未解决以下三个致命缺陷:

  1. 缺乏立场:AI 摘要默认站在”信息发布者”的立场,逐点罗列原文观点,事实与宣传混在一起;
  2. 缺乏判断:不具备对”这个动作背后到底是谁在获利”的追问能力;
  3. 缺乏风险意识:信息只在”发生了什么”层面流转,不触及”这可能带来什么副作用”。

1.2 从”阅读者”到”审计员”的范式切换

我们的核心洞察是:

信息处理不应该止步于”读懂”,而应该推进到”审过”。

这个想法来自一个冷酷的事实:SEC 的监管文件中从不写”这一法规将增加合规成本”,Cloudflare 的博客也从不说”这个新功能的 adoption 代价很高”。信息是公关过的——这正是”职业怀疑论(Professional Skepticism)“的用武之地。

职业怀疑论,是 CFA/CPA 审计准则中的核心理念:“以质疑的思维方式和批判性眼光评价审计证据,对可能导致财务报表重大错报的情况保持警觉。” 我们将这一准则从金融审计移植到了信息审计


二、核心理念:职业怀疑论的 AI 数字化实现

2.1 System Prompt 中的”思维阉割”

传统 AI 摘要 Prompt 的核心结构是:

请用简洁的语言总结以下文章的要点。

我们的 Prompt 核心结构是:

你是一名冷酷的信息审计员,不是摘要助手。

强制规则:
1. 禁止使用任何正面修饰词(增强、领先、卓越、有效、创新、突破、引领、显著、高效)
2. 事实摘要控制在80字以内,只准讲"发生了什么动作"
3. 底层逻辑:必须挖掘该动作背后的"利益驱动"或"补救性质"
4. 风险分析:严禁写好处!必须寻找该技术/事件的副作用、潜在成本、技术债
5. 如果没发现具体风险,写"由于数据披露不足,存在无法评估的合规暗箱风险"
6. 如果内容没有实质性数据或是纯情绪宣泄,返回 null

这一 Prompt 的工程内核:

  • 正面修饰词禁令:9 个高频”公关词”被列入黑名单,强制 AI 从”市场部”切换到”审计部”的叙事框架。
  • 事实脱水:80 字硬约束,只准产出”谁做了什么”的客观陈述。
  • 因果追溯:要求底层逻辑字段挖掘动作背后的”利益驱动”或”补救性质”——前者回答”谁在获利”,后者回答”谁在修补什么漏洞”。
  • 风险强制:明确禁止写任何好处,迫使 AI 在信息中寻找不对称性——这正是职业怀疑论的精髓。

2.2 输出对比:原文 vs 审计稿

原始标题(SEC 新闻稿原文):

SEC Approves Exemptive Order for Proposed Rule Change to Permit Customer Cross-Margining in the U.S. Treasury Market

传统 AI 摘要:

美国证券交易委员会批准了一项豁免令,允许美国国债市场的客户进行跨保证金交易。该举措预计将增强市场效率和流动性。

审计引擎输出:

事实摘要:SEC 发布有条件豁免令,允许客户对清算机构的国债现货与期货头寸进行跨保证金操作。 底层逻辑:降低金融机构保证金占用成本,刺激国债市场流动性。 风险分析:跨市场风险传导可能加剧系统性风险,清算机构风控压力未披露。

对比要点:传统摘要的”预计将增强市场效率和流动性”在审计输出中被拆解为”降低保证金占用成本”(利益驱动)和”跨市场风险传导”(副作用)。信息量相当,但立场完全不同

原始标题(Cloudflare Blog):

Post-Quantum IPsec Now Generally Available

传统 AI 摘要:

Cloudflare 宣布其 IPsec 后量子加密方案全面可用,展示了与 Fortinet、思科的互通测试成果。

审计引擎输出:

事实摘要:Cloudflare 宣布 IPsec 服务采用混合 ML-KEM 算法实现后量子加密,与 Fortinet、思科设备完成互通测试。 底层逻辑:应对量子计算威胁提前至2029年的时间表,防止现网数据被截获后遭量子计算机解密。 风险分析:混合加密方案增加协议栈复杂度;ML-KEM未经长期实战验证;企业需承担旧设备兼容性测试成本。

传统 AI 把这篇定位成”技术进展报道”;审计引擎把它定位成”后量子迁移的行业代价分析”。

2.3 评分机制:信息质量的量化标尺

每条审计输出附带 0-100 的评分。评分并非衡量”正面/负面”,而是衡量信息的信息熵——评分越低,信息越接近”无实质内容”(按下限10分过滤);评分越高,信息越具有”可审计的实质动作”。评分 < 10 的条目和纯情绪宣泄类内容被自动过滤,永不出现在输出中。


三、技术架构:逻辑隔离与物理闭环

3.1 双站点架构:Notes vs Audit

核心设计原则是主客分离

维度notes.zhuzg.com(主观思考)audit.zhuzg.com(客观审计)
内容性质个人知识库、长期笔记每日情报报告、自动审计
内容来源手动撰写全自动采集+AI生成
更新频率按需每日 UTC 00:00
部署触发Push 触发GitHub Actions 定时调度
数据保留永久自动覆盖(保持每日3篇)

这种架构设计的合理性在于:个人思考与情报审计是两种完全不同的信息处理活动。前者需要沉淀和反思,后者追求时效和覆盖。放在一个站点中会互相污染——读者无法区分哪些是作者深思熟虑的观点,哪些是 AI 自动生成的当日速报。

3.2 零成本技术栈

整个系统的运行时成本近乎为零:

组件费用说明
GitHub Actions免费每月 2000 分钟免费额度,每日运行约 3 分钟
SiliconFlow API极低DeepSeek-V3 调用,每日约 3 篇 × 3 通道 = 9 次 API 调用
Cloudflare Pages免费无限带宽、无限请求、自动 CDN
Quartz 4开源免费静态站点生成框架,基于 Node.js
源码托管免费GitHub 公开仓库

每月绝对成本:仅 DeepSeek-V3 的 API 调用费,日均不到 0.002 元 RMB。

3.3 数据流全景

┌─────────────────────────────────────────────────────────────────┐
│                     GitHub Actions (定时触发)                     │
│                                                                 │
│  ① Checkout repo                                                │
│         │                                                       │
│  ② python scripts/daily_audit.py                                │
│     ├── RSS 抓取 ──→ Cloudflare Blog, HuggingFace, SEC ...      │
│     ├── HTML 抓取 ──→ PCAOB (无 RSS 的站点)                      │
│     ├── HN API 抓取 ──→ Hacker News Top 15                      │
│     ├── AI 审计 ──→ SiliconFlow API (DeepSeek-V3)               │
│     │    ├── 质量过滤(低分 / 空内容 → reject)                  │
│     │    ├── 中文标题翻译                                        │
│     │    └── Markdown 生成(Quartz frontmatter)                  │
│     └── 文件写入 ──→ content/00_Daily_Audit/{channel}/           │
│              │                                                   │
│  ③ git commit + push (含版本冲突自愈)                            │
│              │                                                   │
│  ④ npm ci + npx quartz build → public/                          │
│              │                                                   │
│  ⑤ 环境自愈:Ensure Cloudflare Pages project exists             │
│              │                                                   │
│  ⑥ wrangler pages deploy → audit.zhuzg.com                      │
│                                                                 │
└─────────────────────────────────────────────────────────────────┘
                                                         │
                                                         ▼
                                        ┌─────────────────────────┐
                                        │  Cloudflare Pages CDN   │
                                        │  audit.zhuzg.com        │
                                        │  全球 330+ 节点缓存      │
                                        └─────────────────────────┘

3.4 运行逻辑全流程(文字版)

作为上述数据流的文字对照,以下按阶段拆解每次调度周期的完整链路:

第一阶段:情报截流(Data Ingestion)

  1. 定时触发:GitHub Actions 每 24 小时自动唤醒一次,执行 daily_audit.py
  2. 多源抓取:脚本扫描预设的 RSS 订阅源、HTML 页面,以及 Hacker News Firebase API。
  3. 内容预处理:剥离广告和冗余 HTML 标签,仅保留纯净文本供审计引擎处理。

第二阶段:冷酷审计(AI Analysis)

  1. Prompt 注入:将清洗后的文本发送至 DeepSeek-V3,强制以审计员身份思考。
  2. 约束逻辑:正面修饰词被黑名单拦截;输出强制结构化为 事实摘要底层逻辑风险分析 三个字段。
  3. 质量把关:评分 < 10 的条目自动丢弃,纯情绪宣泄类内容同样被过滤。

第三阶段:自动化构建(CI/CD)

  1. Git 同步:脚本自动将生成的 MD 文件 commit 并 push 到 GitHub(含版本冲突自愈)。
  2. Quartz 渲染:Actions 调用 npx quartz build,将 MD 转化为高性能静态 HTML。
  3. 自愈检查:自动化脚本检查 Cloudflare 项目状态,不存在则自动初始化(“自动建房”)。

第四阶段:边缘发布(Deployment)

  1. Wrangler 投送:通过 Cloudflare API Token,将生成的 public/ 目录部署至全球边缘节点。
  2. CDN 分发:Cloudflare 自动完成 SSL 管理与 330+ 节点缓存加速。

四、协作架构:多智能体(Multi-Agent)的指挥官模式

4.1 角色拆解

这一系统不是在单个提示词会话中完成的,而是跨越多次对话,调用不同 AI 的领域能力,形成一个三段式协作链

角色实体职责能力特征
指挥官项目所有者定义风控底线、确定业务边界、决策取舍领域专业判断,对工程成本的敏感度
架构师Gemini逻辑推演、故障诊断、跨平台策略设计对系统层面的宏观把握,能跳出代码看结构
执行员Hermes底层代码实现、Git 冲突处理、物理部署调试直接操作文件系统,管理构建+部署管线

4.2 三个关键决策回合

决策一:从子仓库到内嵌 Quartz 的架构迁移

最初的方案是使用 Git 子模块(submodule)将 Quartz 作为外部依赖引入。Gemini 在推演后指出:子模块会引入复杂的同步问题,增加 CI/CD 管线的不确定性。

最终决策:将 Quartz 4 的核心文件直接复制到 daily-audit 仓库中,使仓库自包含。代价是仓库体积增加约 5MB,收益是 CI/CD 流程从 6 步简化到 4 步核心步骤,且不再依赖外部构建环境。

决策二:全自动 vs 安全性的取舍平衡

Workflow 需要自动 git push 才能触发 Cloudflare Pages 部署。但这带来一个问题:如果两个进程同时推送到 main 分支(Hermes 在本地推送框架文件,Actions 推送审计报告),就会产生版本冲突。

妥协方案:在 git commit 后插入 git pull --rebase origin main + git push --force-with-lease。这条指令在”自动化需求”和”安全性”之间找到了平衡——--force-with-lease--force 安全,它只在远程分支未发生预期外变更时才强制执行。

决策三:环境自感知逻辑的加入

首次部署时遇到了 8000007: Project not found 错误——wrangler 试图部署到一个尚不存在的 Cloudflare Pages 项目。标准做法是”让用户在 Cloudflare Dashboard 手动创建项目”。

我们的做法:在 deploy 步骤前插入一个自检步骤

- name: 🏠 Ensure Cloudflare Pages project exists
  run: |
    npx wrangler pages project list | grep -q '"daily-audit"' && \
      echo "✅ Project exists" || {
      echo "📦 Creating project..."
      npx wrangler pages project create daily-audit --production-branch main
    }

这意味着:从第一次部署开始,这条流水线就是全自动的。不需要任何人的人工干预——不必登录 Cloudflare Dashboard,不必手动创建项目,甚至不必配置 DNS(Cloudflare 在绑定自定义域名时自动添加 CNAME 记录)。

4.3 工程高度:从”写提示词”到”系统设计”

这不是一个”写好 Prompt 然后一键运行”的系统。它涉及的工程维度包括:

  • 状态管理:判断”是否有新文件需要 commit”,避免空提交;
  • 并发安全:git pull —rebase 解决双进程推送冲突;
  • 自愈机制:项目不存在则自动创建;
  • 幂等部署:如果当天已经部署过,再次触发只做增量更新;
  • 缓存感知:Quartz 使用固定文件名的 CSS/JS,部署后需用户硬刷新才能看到样式变更;

这些都不是 Prompt Engineering 的范畴——而是**系统设计(System Design)**的工程实践。


五、演进日志:那些消失的 Exit Code 1

5.1 回合记录

回合一:Prompt 阉割

首次尝试的 Prompt 是一个标准的”请总结以下文章的要点”,输出结果是平庸的公关式内容。经过 4 轮迭代:

  1. 第一轮 → 加入”禁止使用正面修饰词”
  2. 第二轮 → 加入”风险分析字段”并明确禁止写好处
  3. 第三轮 → 加入评分机制,设定 10 分过滤阈值
  4. 第四轮 → 加入 null 返回值规则,使”拒绝回答”成为合法行为

关键转折:AI 默认的”助手本能”非常顽固——即使有禁令,它仍然倾向于写”这将显著提升…有助于…”。我们不得不在 Prompt 中反复强调这一禁令,并用 <null> 返回作为”说不了好话就闭嘴”的兜底机制。

回合二:版本冲突修复

Error:

Updates were rejected because the remote contains work that you do not have locally

根因:Hermes 在本地推送了 Quartz 框架文件的工作,与 Actions 自动提交的审计报告在时间线上重叠。

修复:引入 git pull --rebase origin main 前置步骤,将顺序改为:

commit → pull --rebase → push --force-with-lease

仅在存在新文件要推送时执行这组操作,无新文件时跳过(避免空提交)。

回合三:Project Not Found 修复

Error:

✘ [ERROR] 8000007: The project 'daily-audit' was not found.

根因:Cloudflare Pages 项目尚不存在,但 workflow 直接执行了 wrangler pages deploy

修复:增加环境自感知逻辑——先查询项目是否存在,不存在则自动创建,创建成功后再部署。

5.2 从”写死脚本”到”自愈流水线”

这三个回合的核心共性问题是环境脆弱性

问题脆弱性描述修复方案工程原则
版本冲突依赖单线程推送假设git pull —rebase防御性编程
项目不存在依赖人工预配置自动创建项目自愈能力
空提交未考虑无数据场景git diff —cached 预检幂等性

每一次修复不是”改一个参数就完事”,而是增加一段逻辑,使整个系统在更多环境中可以运行而不需要人工干预。这正是工业级流水线的核心特征。

5.3 系统安全与稳健性设计(Robustness)

除上述演进修复外,系统在设计中还贯穿了以下稳健性原则:

  1. 逻辑隔离:Quartz 通过 -d content/00_Daily_Audit 参数限定审计站只渲染特定文件夹,不污染站点中的其他目录。
  2. 失败容错:Python 脚本中的 try-except 确保单篇 AI 审计失败不会中断整个流水线。一个源报错,其他源照常产出。
  3. 零成本扩展:Cloudflare Pages 的免费额度足以承载不限流量的流量高峰,无需为服务器月租费提心吊胆。
  4. Markdown 优先:所有情报以纯文本 MD 存储在 GitHub 仓库。即使 Cloudflare 停止服务,你依然拥有完整的、可全文检索的本地底稿库。

设计哲学:这套系统的精髓在于”让 AI 代理人管理 AI 代理人”。你作为审计长,只需要在最终的 audit.zhuzg.com 页面验收结果。


六、成果:一份脱水的情报内参

6.1 站点结构

audit.zhuzg.com 目前包含三个审计频道:

频道日均产出典型审计立场
01_Infra_Audit 基础设施审计2-3 篇技术债评估、供应商锁定风险
02_Finance_Audit 金融监管审计2-3 篇监管不对称性、市场传导风险
03_Supply_Chain 供应链审计2-3 篇地缘政治暴露、产能瓶颈分析

每篇审计报告包含四个固定字段:

  • 事实摘要(≤80 字):只讲发生了什么动作
  • 底层逻辑:揭示利益驱动或补救性质
  • 风险分析:只找问题,不写好处
  • 审计评分(0-100):衡量信息的信息熵(不是好坏,是实质)

6.2 审计示例一览

基础设施审计示例(Cloudflare IPsec 后量子加密上线)

  • 事实摘要把产品发布压缩到一个动作
  • 底层逻辑揭示”应对2029年量子威胁时间表”的真实动因
  • 风险分析指出”ML-KEM 未经验证 + 兼容性测试成本”
  • 评分:75/100(有实质性技术内容,但仍是厂商博客)

金融审计示例(SEC 跨保证金交易豁免令)

  • 事实摘要把 55 词英文标题压缩为 40 字中文动作陈述
  • 底层逻辑揭示”降低保证金 → 刺激流动性”的利益链
  • 风险分析指出”跨市场风险传导”的系统性风险盲点
  • 评分:75/100(监管文件有实质内容,但信息透明度有限)

6.3 运营成本

指标数据
每日 Token 消耗~15,000-25,000 input + ~3,000-5,000 output
日 API 费用(DeepSeek-V3)< 0.002 元 RMB
月 API 费用< 0.06 元 RMB
月 GitHub Actions 消耗~90 分钟(免费额度 2000 分钟)
月 Cloudflare 费用¥0
总月运营成本< 0.1 元 RMB

七、结语:AI 时代的数字手工艺人

7.1 这篇文章的写作方式

这篇白皮书本身也是跨多智能体协作的产物。它形成于 Commander + Architect + Executor 的三段式协作,每一层贡献了自己的视角。

这不是在炫耀”我用了几个 AI”,而是在展示一种新的工作范式

当 AI 足够廉价、能力足够普及时,真正的差异不在于”是否使用 AI”,而在于”如何组织 AI 协作地完成一件复杂的事情”。

7.2 你可以带走的三件事

  1. 提示词是一种”思维接口设计”:我们不是在”教 AI 如何回答问题”,而是在用 System Prompt 定义一个虚拟专家的职业立场、价值观和工作边界。这对任何需要专业判断的领域都成立——法律、审计、医学、工程。

  2. 零成本不等于零工程:GitHub Actions + Cloudflare Pages 的免费额度足够跑一条工业级的情报管线。但让它真正可靠工作的是工程细节——自愈逻辑、幂等性、并发安全。

  3. 多智能体协作不是玄学:Commander → Architect → Executor 的三角结构本质上就是传统软件开发中的”产品 → 架构 → 开发”协作模式。只是这一次,部分角色由 AI 担任。分工的价值不在于”谁更聪明”,而在于不同层面的约束条件被分拆到了不同的会话中处理

7.3 下一步

  • 增加日语信源(日本半导体设备管制动态)
  • 审计结果周报推送(Telegram / 邮件)
  • 长期趋势分析:对同一话题的连续跟踪

免责声明:本系统及所有生成内容仅作底层逻辑复盘参考,不构成任何投资或决策建议。AI 审计结果可能存在事实性错误,请结合原始信息综合判断。


附录 A:技术底稿

A.1 GitHub Actions Workflow(完整版)

# 📡 Daily Intelligence Audit Pipeline
# Fetches RSS/HTML sources → AI audit (SiliconFlow) → Quartz build → Cloudflare Pages deploy
#
# Required GitHub Secrets:
#   SILICONFLOW_API_KEY       — API key for SiliconFlow
#   CLOUDFLARE_API_TOKEN      — Cloudflare API token (Cloudflare Pages edit permission)
#   CLOUDFLARE_ACCOUNT_ID     — Cloudflare Account ID
 
name: Daily Intelligence Audit
 
on:
  schedule:
    - cron: "0 0 * * *"
  workflow_dispatch:
 
permissions:
  contents: write
 
jobs:
  audit:
    runs-on: ubuntu-latest
    timeout-minutes: 15
 
    steps:
      - name: 📥 Checkout repo
        uses: actions/checkout@v4
 
      - name: 🐍 Set up Python 3.12
        uses: actions/setup-python@v5
        with:
          python-version: "3.12"
          cache: "pip"
          cache-dependency-path: requirements.txt
 
      - name: 📦 Install Python dependencies
        run: pip install -r requirements.txt
 
      - name: 📡 Run daily audit pipeline
        env:
          SILICONFLOW_API_KEY: ${{ secrets.SILICONFLOW_API_KEY }}
        run: python scripts/daily_audit.py
 
      - name: 📝 Commit generated audit reports
        run: |
          git config user.name "github-actions[bot]"
          git config user.email "github-actions[bot]@users.noreply.github.com"
          git add content/00_Daily_Audit/
          if git diff --cached --quiet; then
            echo "No new audit reports to commit."
          else
            git commit -m "📡 Daily audit reports — $(date -u '+%Y-%m-%d')"
            # 自愈:同步远程变更,防止版本冲突
            git pull --rebase origin main
            git push --force-with-lease
          fi
 
      - name: 🏗️ Set up Node.js
        uses: actions/setup-node@v4
        with:
          node-version: "22"
          cache: "npm"
 
      - name: 📦 Install Node.js dependencies
        run: npm ci
 
      - name: 🔨 Build Quartz site
        run: npx quartz build --directory content/00_Daily_Audit -o public
 
      - name: 🔍 Verify build output exists
        run: |
          if [ ! -d "public" ]; then
            echo "❌ ERROR: public/ directory not found — Quartz build failed."
            exit 1
          fi
          echo "✅ public/ directory exists with $(ls public/ | wc -l) items"
 
      # 自愈:自动创建 Cloudflare Pages 项目(如果不存在)
      - name: 🏠 Ensure Cloudflare Pages project exists
        env:
          CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }}
          CLOUDFLARE_ACCOUNT_ID: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}
        run: |
          echo "🔄 Checking if project 'daily-audit' exists..."
          npx wrangler pages project list 2>/dev/null | grep -q '"daily-audit"' && \
            echo "✅ Project 'daily-audit' already exists" || {
            echo "📦 Creating project 'daily-audit'..."
            npx wrangler pages project create daily-audit --production-branch main || true
          }
 
      - name: 🚀 Deploy to Cloudflare Pages
        uses: cloudflare/wrangler-action@v3
        with:
          apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }}
          accountId: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}
          command: pages deploy public/ --project-name=daily-audit --branch=main

A.2 AI 审计 System Prompt(核心逻辑)

你是一名冷酷的信息审计员,不是摘要助手。

强制规则:
1. **正文全部使用简体中文输出**
2. 禁止使用任何正面修饰词(如:增强、领先、卓越、有效、创新、突破、引领、显著、高效)
3. 事实摘要:控制在80字以内,只准讲"发生了什么动作"
4. 底层逻辑:必须挖掘该动作背后的"利益驱动"或"补救性质"
5. 风险分析:严禁写好处!必须寻找该技术/事件的副作用、潜在成本、技术债
   或由于信息不透明导致的审计盲点。如果没发现具体风险,
   写"由于数据披露不足,存在无法评估的合规暗箱风险"
6. 如果内容没有实质性数据或是纯情绪宣泄,返回 null(JSON null 值)

返回格式(JSON,不要 markdown 包裹):
{
  "title_cn": "中文标题翻译",
  "fact": "事实摘要(80字以内,只讲动作)",
  "logic": "底层逻辑(利益驱动或补救性质)",
  "risk": "风险分析(副作用/成本/技术债/审计盲点)",
  "score": <整数0-100>
}

A.3 Python 数据流:日常执行的完整流程

① fetch_all()
   ├── fetch_rss()      → 6 个 RSS 源(feedparser + requests)
   ├── fetch_html()     → 1 个 HTML 源(PCAOB, BeautifulSoup)
   ├── fetch_hackernews() → Hacker News Top 15(Firebase API)
   └── 返回 {channel: [{title, link, pubdate, content, source}]}

② run_ai_audit(article)
   ├── 构造审计 Prompt
   ├── POST SiliconFlow /chat/completions (model=deepseek-ai/DeepSeek-V3)
   ├── 正则提取 JSON 响应
   ├── 过滤评分 < 10 的条目
   └── 返回 {title_cn, fact, logic, risk, score}

③ generate_md(channel, article, audit)
   ├── 从中文标题生成安全文件名
   ├── 组装 Quartz frontmatter (title, date, tags, score, source)
   ├── 写入四字段审计正文
   └── 写入免责声明

④ main()
   ├── 每个通道按评分降序取 Top 3
   ├── 清理旧文件(每日覆盖)
   ├── 写入新报告
   └── 输出审计摘要统计

A.4 GitHub Secrets 配置速查

系统正常运行需要以下 3 个 GitHub 仓库 Secret(Settings → Secrets and variables → Actions):

Secret用途获取途径
SILICONFLOW_API_KEY硅基流动 API 密钥,用于调用 DeepSeek-V3SiliconFlow Dashboard
CLOUDFLARE_API_TOKEN具备 Cloudflare Pages Edit 权限的令牌Cloudflare Dashboard → My Profile → API Tokens
CLOUDFLARE_ACCOUNT_IDCloudflare 账户 IDCloudflare Dashboard → Workers & Pages → API 概览

三者缺一不可:缺少前两个会导致 AI 审计或部署步骤失败,缺少 ACCOUNT_ID 则环境自愈(自动创建 Pages 项目)无法工作。


源码:github.com/alericzhu/daily-audit-pipeline