隔离测试 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。