大模型免费版总撞额度墙?先别急着付费:在对话窗口里完成中型项目的开发流程

Summary: 对比免费版与第一档付费版的现实差异,给出一套只用网页对话就能推进中型项目的流程与模板,并讨论在本机使用编码代理(harness)时的安全配置。

时效说明:文中的价格与额度基于 2026 年 10 月 4 日前后的公开资料,其中不少数字来自第三方文章,厂商也会随时调整规则。下单前请以各家官方定价页为准。价格为美元标价,所在地可能另含增值税。

一、起因

我平时主要用网页免费版,以 Claude 为主,偶尔用 ChatGPT 或 Gemini 做交叉审查。最近在改一个自己写的期权监控项目,体量不算大:

option-monitor/        1.4M(含 git 等杂项)
├── config/            20K
├── db/                8K
├── deploy/systemd/    24K
└── src/option_monitor 164K

源码 164KB,粗估 4~6 万 token(按 Python 平均每 token 约 3.5 个字符估算)。就这样一个项目,同一处修改我已经撞了 5 次额度墙,每次要等 5 小时再输入"继续"。

于是我想弄清楚两件事:付费能解决吗?不付费有没有办法?

二、免费版与第一档付费版:现实差异

先说结论:单靠付费不一定解决问题。如果工作方式不变(把整个项目反复贴进对话),付费只是把墙往后推。付费真正带来质变的地方,是能用上终端里的编码代理工具。

Claude

  • 所有套餐都按滚动 5 小时窗口计量,付费档另有周上限。
  • Pro 每个窗口的用量至少是免费版的 5 倍;网页聊天、桌面端和 Claude Code 共用同一个额度池。
  • Claude Code 不在免费版里,Pro 起才能用。
  • 官方不公布具体的 token 数。第三方估算 Pro 约每窗口 45 条消息,这只是估计。
  • 重度编码仍可能很快耗尽窗口,有文章称一个高强度会话不到一小时就能用完。
  • 超额后可开启按 API 价格计费的额外用量,有文章估算重度编码每小时约 5~15 美元。
  • 最新旗舰模型可能不计入 Pro 的基础额度,需要另付费,请自行核对。

ChatGPT

  • Plus 约 20 美元,包含 Codex,Codex 与 ChatGPT 共用一个额度池。
  • 免费版的日常文字聊天比较宽松,但文件上传、图像、数据分析等有各自的限制。
  • 有来源称 Plus 每 5 小时约 15~90 条 Codex 消息,范围很宽,仅供参考。
  • 更高档是 100 美元的 Pro(5 倍);据资料,200 美元档自 2026 年 9 月 10 日起暂停新注册。
  • 约 8 美元的 Go 档可能带广告,Plus 及以上承诺无广告。

Gemini

  • Google AI Pro 约 19.99 美元,用量约为免费版的 4 倍。
  • 上下文窗口差异明显:有文章称无订阅时消费者端是 32K,AI Pro 是 100 万。但另一些文章说法不同,来源之间有出入,建议自己实测。
  • 编码类的 Jules、Antigravity 额度随 AI Pro 上调。

怎么选

你的做法建议
继续只用网页聊天,整项目反复贴付费能缓解,不能根治,先改流程
愿意用终端编码代理付费才有实质意义,Claude Code 或 Codex 二选一
主要想让 AI 通读整个仓库做审查先实测 Gemini 的大上下文

如果决定付费:

[Read More]

用 iPhone 快捷指令 + Cloudflare Worker,把微信通知安全转发到另一台手机的 Telegram

0. 这篇文章解决什么问题

你有两台手机:

  • iPhone A:登录了微信,微信通知会在它上面弹出。
  • iPhone B:日常随身携带,希望在微信来消息时收到提醒。

目标是把 A 上的微信通知,有选择地转发到 B 的 Telegram。

设计原则:

  1. Telegram Bot Token 不出现在手机里,只保存在 Cloudflare 的加密 Secret 中。
  2. 默认拒绝:只有白名单里的联系人才会被转发。
  3. 默认不带正文:只告诉你「某某发来消息」,需要时再开启正文。
  4. 敏感内容兜底拦截:验证码、银行卡、支付等关键词与数字串不转发。
  5. 不需要自己的服务器:只用 Cloudflare 免费额度。

1. 架构与数据流

iPhone A
  微信通知
    │  (iOS 通知自动化触发,标题过滤 = 白名单)
    ▼
  快捷指令 「获取 URL 内容」
    │  HTTPS POST + X-Webhook-Key
    ▼
Cloudflare Worker
    ├─ ① 校验 Webhook Key
    ├─ ② 限制请求体大小
    ├─ ③ 白名单(标题精确匹配)
    ├─ ④ 敏感内容过滤
    ├─ ⑤ 按模式组装文本(notify / full)
    │
    │  HTTPS + Bot Token(仅存在于 Worker Secret)
    ▼
Telegram Bot API
    ▼
iPhone B(Telegram)

2. 隐私边界:必须先读懂

明文会经过三方:iPhone A、Cloudflare、Telegram。

[Read More]

自建美股期权新挂牌收益率监控:从选型到树莓派部署

自建美股期权新挂牌收益率监控:从选型到树莓派部署

记录一次从"随手问问"到"跑起来的树莓派服务"的完整过程:期权数据源怎么选、 期权价格构成和Delta/IV这些指标到底怎么用、新挂牌合约监控系统怎么设计、 上线后踩的几类坑(计算逻辑、产品设计、运行环境、部署运维)、一次真实 历史数据回测的探索过程(yfinance/IBKR碰壁,MarketData.app走通)、 从历史统计到"单持仓vs历史基准"对比工具、独立于通用筛选的重点关注清单, 以及完整的部署和日常运维步骤。附可直接照抄的配置和命令。

起点:一个简单的需求

最初的想法很朴素:卖美股期权(covered call / cash-secured put)的时候, 想要一个自动化的收益率追踪工具——输入股票代码、行权价、方向(卖put还是 卖call)、目标年化收益率,系统自动跟踪报价,一旦达到目标就发Telegram通知, 内容包括触发时间、当前报价、方向、收益率。

这个需求本身不复杂,年化收益率公式也很直接:

sell_put:  annual_yield = premium / strike * (365 / days_to_expiry)
sell_call: annual_yield = premium / underlying_price * (365 / days_to_expiry)

(premium建议用bid价,不要用mid价——流动性差的合约mid价容易虚高, 后面会讲到为什么。)

真正花时间的地方,是把"数据从哪来"这件事想清楚。

数据源选型:一圈比较下来

选型过程大致是这样的排除法:

数据源免费性维护成本结论
IBKR API已有账户免费需要TWS/Gateway常驻,运维重数据最准,但网关断连要自己处理重连
Tradier实盘账户免费拿实时数据REST接口,不需要常驻网关免费层是sandbox 15分钟延迟,实盘账户才是真实时
Alpaca Basic$0,开paper账户即可WebSocket推送,维护成本最低数据是indicative(非OPRA实时NBBO),仅供参考不能直接当挂单价
Polygon.io(已更名Massive.com)免费层有限按量付费适合历史数据/回测,不建议做V1实时监控
富途OpenAPI期权行情需单独付费(约$60/月)需要常驻OpenD网关对个人监控场景不划算
雪盈证券开户送30天试用,之后要交易期权才持续免费底层走IBKR清算不适合"只监控不下单"的用法
yfinance(非官方)完全免费,零注册零维护,但随时可能被限流/改版适合先验证逻辑,不建议长期依赖

最后选定的策略:先用yfinance把整套逻辑验证通,未来想长期稳定跑, 再迁移到Tradier或Alpaca。数据源在代码里做成了一个可替换的接口 (QuoteProvider),换源不用动上层业务逻辑。

[Read More]

教堂讲道录音"发闷发空"是怎么回事:一次频谱分析实录

教堂讲道录音"发闷发空"是怎么回事:一次频谱分析实录

起因是一段教堂讲道录音,主观感觉"比较空洞"。这篇整理了完整的排查过程——怎么用频谱分析定位问题、为什么会这样、试过哪些软件修复方案、最后到底该怎么办。全程没有玄学,每一个结论都配了实测数据。


一、“空洞"到底是什么意思

日常说一段录音"空洞"“发闷"“不清楚”,背后其实通常是两类问题:

  1. 混响太重——声音在房间里"荡"出来的回声尾巴太长,把每个字的尾音和下一个字的头音糊在一起
  2. 频率失衡——负责"清晰度"的中高频(3000Hz以上,人耳分辨辅音、齿音靠的就是这部分)太弱,负责"厚重感"的中低频(150-1000Hz)又太强

这两个问题经常同时出现,而且互相成因——原因下面会讲到。

二、怎么"看见"声音的问题(给非专业人士的频谱基础)

耳朵听到的是一整团混在一起的声音,但任何声音都可以拆解成不同频率成分的叠加,就像一束白光可以用棱镜拆成七种颜色。这个拆解过程叫频谱分析。

拆开之后,声音里"哪个频段能量多、哪个频段能量少"就能被量化成具体数字,而不是"听感"这种主观描述。举几个和人声相关的频段的直觉对应:

频段对应的听感
150-1000Hz人声的"体积感"“厚度”,太多会觉得"发闷”
1000-3000Hz语音的主要能量区,决定"听得清楚吗”
3000-6000Hz齿音、清晰度、“临场感”,太少会觉得"隔着一层"

拿实际录音跑一遍频谱分析,就能看到这段录音的频段能量到底是怎么分布的,而不是靠"感觉比较空"这种模糊描述。

三、实测诊断:这条录音到底哪里出了问题

拿这条30秒的样本实测下来,频段能量分布是这样的:

频段能量占比
20-150Hz11.3%
150-400Hz50.0%
400-1000Hz32.5%
1000-3000Hz4.9%
3000-6000Hz0.9%
6000-12000Hz0.3%

150-1000Hz这个区间加起来占了82.5%的能量,3000Hz以上加起来只有1.4%。翻译成人话:这条录音里绝大部分能量堆在"发闷"的频段,负责"清晰"的频段几乎是空的。这就是"空洞感"在数字上的样子。

除了频段分布,还测了另外两个指标:

  • 混响衰减时间(估算约1.2秒):语音说清晰、可懂度高,理想的混响衰减一般在0.3-0.6秒;教堂这种石材/瓷砖地面、高穹顶的空间,衰减到1.5-2.5秒也很常见。1.2秒不算最夸张,但已经足够让字与字的尾音互相重叠。
  • 左右声道相关性(0.86):这个是用来排除"两个麦克风收到的信号互相干涉,产生梳状滤波"这种问题的——数值不低,说明"空洞感"不是这个原因造成的,可以排除。

四、根本原因:为什么会这样

这条录音是用手持录音笔(Tascam DR-05X)录的,放置位置离讲道者大约20米。

这里有个声学概念叫临界距离——房间里"直接从声源传过来的声音"和"被墙壁反射后再传过来的混响声音"能量相等的那个距离。超过这个距离,麦克风收到的信号就会被混响"淹没",直达声占比很低。对于教堂这种中大型、混响时间在1秒左右的空间,临界距离通常也就几米,很少会超过10米。

20米远远超出了临界距离。这解释了前面测到的全部现象:

  • 麦克风收到的几乎是"扩散声场"(房间到处反射后混在一起的声音),而不是"干净"的直达声
  • 房间的低频驻波(房间形状导致的低频共振)在扩散声场里天然占主导,对应测出来的150-1000Hz能量堆积
  • 高频在空气里衰减快,扩散声场里高频比例本来就低,对应测出来的3000Hz以上几乎消失
  • 录音里能听到明显的混响拖尾,对应测出来的~1.2秒衰减时间

关键结论:这不是设备故障,也不是参数没调好,是录音距离超出了物理极限决定的。

五、试过的软件修复方案,和为什么都不够理想

既然是"录制阶段"的问题,理论上后期能做的都是有损的补救。但为了搞清楚软件能做到什么程度,实际测了四条路:

1. EQ均衡(削低中频、提升高频)

思路很直接:用均衡器把过多的150-400Hz削掉一部分,把几乎消失的4000-8000Hz提升回来,让残留的高频信息在可闻范围内被放大。

ffmpeg -i input.wav -af \
"loudnorm=I=-23:TP=-3:LRA=7, \
highpass=f=85, \
equalizer=f=250:t=q:w=1.5:g=-5, \
equalizer=f=450:t=q:w=1.2:g=-3, \
equalizer=f=4500:t=q:w=1:g=4, \
equalizer=f=8000:t=q:w=1:g=2, \
acompressor=threshold=-22dB:ratio=2.5:attack=8:release=120:makeup=3, \
loudnorm=I=-16:TP=-1.5:LRA=11" \
output.wav

效果:主观听感上清晰度确实有提升,但混响本身(1.2秒的拖尾)完全没有改变,只是把残留的高频信息"放大"到了可闻范围,本质是化妆不是治病。优点是绝对安全,不会引入任何副作用。

[Read More]

私人播客搭建指南

私人播客搭建指南(本地录音 → 不对外发布的 RSS)

场景:Tascam DR-05X 录的音频(讲道之外的个人用途,比如私下的谈话记录、不方便公开的内容),只想自己或指定的少数人用播客 App 收听(可调速、断点续播、离线下载),不提交 Apple Podcasts / Spotify 审核,不出现在任何公开目录。

架构选择说明:这一版指南采用"存储与出口分离、Pi 自己对外服务"的方案——原因是西班牙 LaLiga 转播期间会协调运营商封锁 Cloudflare、Backblaze 等多个 CDN/托管商代理网络的 IP 段打击盗播,而这些 IP 背后往往同时挂着几千个互不相关的正常网站,一并被误封。只要走的是"多租户共享 IP 代理转发流量",换哪家云厂商都治标不治本;真正解决办法是让实际提供服务的 IP 只属于你自己。被封的是 Cloudflare 的代理网络(橙色云朵),不是它的 DNS 解析服务,所以 DNS 这一层继续用 Cloudflare 完全没问题——只要关掉代理(灰色云朵,DNS-only),流量直接打到你家 IP,根本不经过 Cloudflare 网络。


1. 先明确一个关键前提:RSS 播客的"私有"本质上是"不可枚举",不是"加密"

播客协议本身没有账号登录的概念,播客 App 只认一件事:一个 RSS feed 的 URL。所谓"私有播客",行业里(Patreon、Supercast 这类会员播客平台)用的都是同一个原理:

  • URL 本身包含一段无法被猜到的随机字符串,不做目录列表、不被搜索引擎收录、不提交到任何播客目录
  • 只要知道这个 URL 就能订阅,所以"私有"约等于"不公开的地址",不是真正意义上的账号鉴权

自己一个人用,这个强度完全够。因为这一版是 Pi 自己对外提供服务(不是第三方托管),如果以后想分享给一两个人、要真正的访问控制,也可以在自己的 Web 服务器上直接加 HTTP Basic Auth(见第 6 节),比依赖第三方的"访问控制产品"更彻底——权限完全在自己手上,不用再考虑对方是不是又被列进了某个封锁名单。

已评估并排除:archive.org(这个项目的"全文存档"分支在考虑用它,容易顺手联想到这边也能用,特此记录为什么不行)——它确实支持把 item 标成 Restricted(锁定下载),但查过官方条款后发现这解决不了隐私问题:① 锁定后标题/简介等元数据依然公开可搜索,真正想藏住的识别信息反而最先暴露;② 服务条款里上传即视为授予 archive.org 一个可转授权的使用/分发许可,内容不再完全由自己控制;③ archive.org 的立场是"默认公开、例外限制",锁定机制不是为隐私设计的,论坛里能看到"联系上传者要一份"这种绕过锁定的社交途径。这三条都跟私人播客"没有 URL 就完全不可发现"的要求不是一个量级,排除。

[Read More]

叶牧讲道播客自动化生产线:从云端方案到树莓派全自动生产线的完整记录

本文记录了「叶牧讲道」播客自动化系统从最初的云端构想,到最终在 Raspberry Pi 400 上稳定运行的完整过程:架构如何演进、踩过哪些坑、每个坑是怎么修的。原始素材来自与 GPT、Gemini、Claude 三个 AI 反复讨论、审查、修 bug 的散乱记录,这里按主题重新整理成一篇完整文档。


一、项目概述

目标

将 YouTube 播放列表中的讲道视频,自动转换为符合 Apple Podcasts / Spotify 标准的播客节目,并全自动发布,全程无需人工干预。

最终技术栈

  • 硬件:Raspberry Pi 400(家用键盘一体机,4GB RAM)
  • 下载:yt-dlp(配合 Deno 作为 JS Runtime 解 YouTube 签名挑战,详见第七节)
  • 音质优化:RNNoise(ffmpeg arnndn 滤镜)+ ffmpeg loudnorm(EBU R128 响度标准化)
  • 语音转录:whisper.cpp(本地,零成本,比 Python 版快约 3 倍)/ openai-whisper(Python 版,兜底)
  • AI 摘要:Google Gemini API(gemini-2.5-flash,免费层)
  • 存储:Cloudflare R2
  • 发布:GitHub + Cloudflare Pages(自动部署 RSS)

完整处理流水线

YouTube 播放列表(支持多个,自动去重)
    ↓
yt-dlp 下载(bestaudio 192k,限速 + 随机休眠,模拟正常用户)
    ↓
RNNoise 降噪(arnndn,sh.rnnn 模型)+ ffmpeg loudnorm(-16 LUFS,双声道 96k)
    ↓
whisper.cpp / openai-whisper 本地转录(描述文字不足 50 字时触发)
    ↓
Gemini 2.5 Flash 生成摘要(中文摘要 + 经文金句 + 西班牙语标题)
    ↓
上传 Cloudflare R2
    ↓
生成 RSS(sermon.xml,三重保护写入)
    ↓
git push → Cloudflare Pages 自动部署

这套流水线和最初的设想差别很大——最初的方案是纯云端架构,走了不少弯路才收敛成现在这个"零成本、自维护"的家用版本,详见下一节。

[Read More]

双机隔离与隐私保护——出入境物理审查场景补充篇

前两篇见 双机隔离与隐私保护(2026年6月3日)与8月复盘·手机号隔离实操篇(2026年8月24日)。本文不推翻前两篇的框架,而是指出一个前两篇都没有覆盖的威胁模型——2026年9月15日起施行的《国务院关于出境入境管理的规定》赋予了边检当场查验手机的权力,这是一种前两篇讨论的"账户/认证体系隔离"完全应付不了的场景,需要单独补一套方法论。


一、先说清楚:这是两种性质完全不同的威胁

前两篇文章的核心判断是对的,但都建立在一个隐含前提上:攻击者是远程的——黑客、平台大数据关联、SIM Swapping。应对远程威胁,靠的是账户体系隔离、认证器独立、单点故障消除,这套逻辑完全成立,不需要推翻。

但边检翻手机是物理接触 + 当场胁迫解锁的场景,前提完全不同:

前两篇讨论的威胁本文补充的威胁
攻击者位置远程(网络层面)物理接触本机
典型手段拖库、SIM Swap、账户关联、钓鱼当场要求刷脸/输密码解锁,人工翻看
加密体系是否被绕过是(攻击者不掌握密钥)否(你自己交出了密钥)
防御重心账户与认证体系隔离设备本机内容管理 + 残留数据清理
“身份关联"是否重要不重要(原文核心论点)也不重要,但原因不同:反正整部手机都在对方眼前,身份早已不是秘密

也就是说,“平台知道A和B是同一个人 ≠ 平台获得了A的数据"这个判断在边检场景下依然成立,但已经不是重点——边检不需要靠数据关联去"发现"你是谁,他们直接拿着解锁后的手机看。这时候起作用的防线,不是身份隔离,而是**“这部手机上到底装了什么、留了什么”**。

二、共通部分:物理双机架构本身就是最好的边检防线

好消息是,前两篇建立的"物理双机 + 独立Apple ID"架构(第一梯队40分项),几乎原封不动地就是边检场景下最有效的防线——只是原因变了:

  • 原文的理由:防止国内平台通过设备指纹/账户关联把海外身份和国内身份连起来
  • 边检场景下的理由:如果国内机上原本就不装Gmail、Signal、券商App,边检翻遍这部手机也拿不到任何有价值的东西——不需要临时清理,因为架构上从一开始就是隔离的

这也是为什么本文的建议会反复强调:过关前的"清理”,本质上是对已经混用的设备做补救,如果双机架构从一开始就做到位,边检来临时你几乎不需要额外操作。这正好呼应第一篇里那句结论:

双机 + Apple ID分离:40分,账户与认证体系分离:40分

这80分在边检场景下依然是地基,只是补救成本从"平时不用管"变成了"过关前需要重新审计”。

三、边检场景特有、前两篇未覆盖的三个新维度

3.1 内容审计:不是"身份"而是"内容"本身构成风险

前两篇的三层模型(国内生态 / 海外生活 / 核心资产)划分的是账户归属,边检审计需要额外叠加一层内容敏感度的划分,这是前两篇完全没涉及的维度:

                    【 边检视角下的内容风险分层 】
                           │
      ┌────────────────────┼────────────────────┐
      ▼                    ▼                    ▼
  低风险内容              中风险内容              高风险内容
 (不需处理)           (需要审计清理)        (不应出现在随身设备上)
      │                    │                    │
  ├─ 日常聊天/照片        ├─ 群聊列表/群名       ├─ 讲道稿件/教会通讯录
  ├─ 银行/地图/天气App    ├─ 转账备注关键词      ├─ 境外资金往来细节
  └─ 普通网页浏览记录     └─ 公众号关注列表      └─ VPN/Telegram/Signal痕迹

这一层审计前两篇的框架里完全没有位置,因为它关心的不是"这个账户属于谁",而是"这段内容一旦被人工翻看会造成什么后果"。

[Read More]

大型录音传输与播客制作综合方案

讲道录音:录制、播客制作、语音识别与传输综合方案

本文档在原始方案基础上,修正了 NotebookLM 单文件上传限制的问题,并加入了 Tascam DR-05X 录音参数的优化建议,整合出一套从录制到发布的完整工作流。


1. 使用场景

  • 使用 Tascam DR-05X 录制教会讲道,每次约 1 小时
  • 目标产出:
    1. 播客发布(后期处理、降噪、发布到 pabloye.es)
    2. 通过 WhatsApp 发送给他人
    3. 对方使用 Google NotebookLM 分析录音,提炼约 20 分钟内容
    4. 自己使用 whisper.cpp 做语音识别
    5. 保留原始录音,供未来剪辑、降噪、AI 音频处理等使用

2. 录音参数:可以且应该降低

当前设置 96kHz / 24bit / 立体声,1 小时讲道文件接近 2GB (96000 × 3字节 × 2声道 × 3600秒 ≈ 1.93GB,与实际观察吻合)。

2.1 采样率:96kHz → 48kHz(建议改)

人声频率范围集中在几百 Hz 到 8kHz,泛音很少超过 16–18kHz。48kHz(奈奎斯特上限 24kHz)对语音内容完全足够,是广播和播客制作的标准采样率。96kHz 的价值主要体现在古典乐录音、母带处理时的升采样余量或极端变速处理,人声讲道场景用不到。

这一步单独可将文件从 1.93GB 降到约 965MB(减半),且人耳无法察觉音质差异。

48kHz 还是 44.1kHz?

两者对人声都没有可闻差异,选择主要看下游用途而非音质:

[Read More]

迁移方案-脱离Cloudflare代理依赖

迁移总方案:博客 + 播客脱离共享 CDN 代理 IP 依赖

背景与目标(2026-08-29 更新)

当前问题:博客(Cloudflare Pages)和播客音频(Cloudflare R2)都跑在 Cloudflare 的代理网络上,2026/27 赛季 LaLiga 反盗版封锁几乎天天有比赛日触发,导致这两块服务频繁被 O2 误伤。

如果你的目标是 “尽量利用现成互联网基础设施,少自己维护服务器,同时降低西班牙 LaLiga IP 封锁对博客和私人播客的影响”,我不建议把方案重心放到 Linode VPS + 自己维护 Caddy / UFW / DDNS 上。那属于“技术上可行,但运维成本偏高”的路线。

我重新按这个目标筛了一遍。核心问题是:不能简单地把 Cloudflare 换成 Vercel / Netlify / Bunny / AWS CDN,就认为安全了。 OONI 2026 年的实测显示,LaLiga 相关 IP 封锁已经波及至少 36 家基础设施/托管提供商、7441 个 IP,包括 Cloudflare、Amazon、Akamai、Meta、Microsoft 等;单个时间窗口封 4–20 个 IP,就可能影响几十万共享基础设施上的域名。OONI

重要更正:原方案曾建议博客迁往 Vercel,但经查证,Vercel、Netlify、GitHub Pages、BunnyCDN 等主流共享 IP CDN/托管平台,同样被 LaLiga 这轮封锁波及过——本质上都是"几十万个域名挤在同一批共享 IP 上",只是被点名的频率和时间点不同,不是安全选项。因此博客的迁移目标改为自建到已有的 Linode VPS,用独立静态 IP 避开"共享大池子"这个结构性风险。

[Read More]

隔离测试 Agent 环境部署指南 v2(完整版,从零到部署一份文档搞定)

隔离测试 Agent 环境部署指南 v2(完整版,从零到部署一份文档搞定)

巴黎机票监控 + 巴萨车票监控 + 假日感知 AI 行程规划

这是一份自包含文档,不需要再回看 v1。相对最初版本的核心变化:把"数值判断"从 LLM prompt 里挪到 Python 代码里,权限模型从裸 ask 改成精确规则,密钥彻底和 OpenCode 进程隔离,Playwright 浏览器进程容器化加固;新增一个每周跑一次的"假日规划器"结合巴伦西亚本地假期找出值得关注的出行窗口,并在规划器最后一步加了一个唯一允许 AI 做主观判断的"参谋"环节——AI 只负责在已核实数据基础上排序和给理由,不碰任何数字,且有校验兜底。


0. 这一版改了什么(对照上一轮审查)

问题v1 的做法v2 的做法
无人值守遇到 ask 会卡住"bash":"ask"改用 v2 permissions 数组,明确 allow/deny,不留裸 ask
Telegram token 被 OpenCode 子进程继承source .env 后直接跑 opencode拆成两个进程,token 只在 notify.py 自己的调用里出现
Playwright 默认行为存疑(不同版本文档不一致,有的说默认持久化,有的说新版默认已改成内存态)未指定显式加 --isolated,不依赖"默认行为"
LLM 自己判断"最低价"prompt 里让它直接给结论prompt 只要求它如实列出看到的所有数据点,min() 由 Python 算
不同日期价格直接比较last_price.json 只存裸 price改成按 route+date_out+date_return 做 key
@playwright/mcp@latest每次动态解析最新版锁定具体版本号
浏览器可以导航到任意网站未限制--allowed-origins 白名单(注意:官方文档明确写了这不是安全边界,只是防止误导航的辅助手段,见下文说明)

1. 隔离环境搭建(一次性)

1.1 创建独立的本地 macOS 账户

系统设置 → 用户与群组 → 添加账户,选择「标准」账户,账户名建议 agentlab。

[Read More]