LazyBoy2/docs/scenarios/README.md

108 lines
4.2 KiB
Markdown
Raw Normal View History

2026-09-15 05:20:44 +00:00
# Scenario playbooks情境劇本— 可推廣的 LazyBoy 驗收模式
本目錄描述 **可重複套用** 的 acceptance playbook把「研究來源 → 草稿 → 人工確認 → 發佈到目標頻道」做成固定兩階段流程。
**蝦皮聯盟 → Threads** 只是一個填好的範例,不是唯一路徑。
產品原語(讓所有情境可推廣):
| 原語 | 用途 |
|------|------|
| `browser_handoff` | 僅用於登入OTP驗證碼牆 |
| `request_user_confirm` | 任何不可逆公開動作(發文、送出)前必須過關 |
| Phase A / Phase B | 研究+草稿 vs 確認後才發佈 |
相關:[`docs/SCENARIO-TEMPLATE.md`](../SCENARIO-TEMPLATE.md)、[`prompts/templates/`](../../prompts/templates/)、範例 [`examples/shopee-threads-affiliate.md`](examples/shopee-threads-affiliate.md)。
---
## 目標與成功標準
### 過Pass
1. **端到端完成**:從來源入口找到可用素材/連結,產出目標頻道草稿,經確認後成功發佈(或明確 blocked
2. **人工觸點最小化**:理想上只有
(1) 來源站登入 handoff
(2) 目標頻道登入 handoff
(3) 最終發佈 confirm
— 其餘自動化。
3. **零靜默發佈**:沒有「本輪明確核准的草稿」或 `request_user_confirm``approved`,就不得 publishsend。
4. **Phase 分離**Phase A **禁止**發佈Phase B **只**在核准後發佈。
### 不過Fail
- 未確認就發文/按送出
- 非 headed 導致 cookie 遺失、無限重登
- 列表空結果空轉loop guard 觸發仍算流程失敗若未 `report_blocked` 說明)
- 把登入以外的事丟給人(例如叫人手動複製貼上整篇文,而非 agent 貼上後只等 confirm
---
## Phase A — 研究 + 草稿(禁止發佈)
1. 若需登入來源:`browser_handoff`(僅 auth
2.`{{SOURCE_PORTAL}}``{{GOAL}}` 找出約 25 個候選(高佣/相關/可分享)。
3. (可選)快速看 `{{TARGET_CHANNEL}}` 語氣/近期風格。
4. 用繁中(或指定語言)起草 **1** 則貼文,含連結;結構化輸出候選 + 草稿。
5. `report_done`**禁止** click sendpublish。
## Phase B — 僅在確認後發佈
1. 僅在本 session 已有「明確核准的同一草稿」,或先呼叫 `request_user_confirm``prompt` = 全文草稿)。
2. 若需登入目標頻道:`browser_handoff`。
3. 貼上並發佈已核准草稿。
4. `report_done`(盡量附貼文 URL若未核准 → `report_blocked`**不得**單方面發文。
---
## 環境與指令
```bash
2026-09-15 05:20:44 +00:00
export LAZYBOY_API_KEY=你的金鑰
export LAZYBOY_BROWSER_HEADED=1 # 強烈建議;否則 cookiesession 易丟
cd ~/LazyBoy
cargo run -p lazyboy -- agent
```
2026-09-15 05:20:44 +00:00
測試用:`LAZYBOY_CONFIRM_AUTO=1`(核准)/`abort`(拒絕);亦可沿用 `LAZYBOY_HANDOFF_AUTO`
### 如何貼 prompts
1. 複製 `prompts/templates/phase-a.txt`,替換 `{{SOURCE_PORTAL}}`、`{{TARGET_CHANNEL}}`、`{{GOAL}}`、`{{CONSTRAINTS}}`。
2026-09-15 05:20:44 +00:00
2. 貼進 `lazyboy agent` 當本輪 user 訊息。
3. 審草稿後,再貼 Phase B或直接在聊天寫「核准請發佈以下草稿…」
填好的範例見 `prompts/examples/`
---
## 如何實例化新情境
填寫模板欄位即可,例如:
| 欄位 | 意義 | 範例 |
|------|------|------|
| `SOURCE_PORTAL` | 研究/取連結的站 | affiliate.shopee.tw、某官網活動頁 |
| `TARGET_CHANNEL` | 發佈目標 | Threads、FB、IG、X |
| `GOAL` | 成功長相 | 高佣商品約 3 個、季節主題 |
| `CONSTRAINTS` | 額外限制 | 語氣、禁用詞、長度、必須含 #tag |
| `LANGUAGE` | 草稿語言 | 繁體中文 |
步驟:複製 template → 填 placeholder → 存成 `docs/scenarios/examples/<name>.md` + `prompts/examples/<name>-phase-{a,b}.txt` → 用 `agent` 跑驗收。
---
## 失敗模式速查
| 現象 | 處置 |
|------|------|
2026-09-15 05:20:44 +00:00
| Headless cookie 遺失 | `LAZYBOY_BROWSER_HEADED=1` |
| 列表空轉 | `report_blocked`;換篩選/關鍵字;勿重複同工具 ×3 |
| 未確認就發 | **產品失敗**AGENT_SYSTEM + `request_user_confirm` 擋 |
| 登入牆 | 只 handoff auth完成後 Enter |
---
## 範例索引
- [蝦皮聯盟 → Threads範例](examples/shopee-threads-affiliate.md)