LazyBoy2/docs/scenarios/README.md

108 lines
4.2 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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
export LAZYBOY_API_KEY=你的金鑰
export LAZYBOY_BROWSER_HEADED=1 # 強烈建議;否則 cookiesession 易丟
cd ~/LazyBoy
cargo run -p lazyboy -- agent
```
測試用:`LAZYBOY_CONFIRM_AUTO=1`(核准)/`abort`(拒絕);亦可沿用 `LAZYBOY_HANDOFF_AUTO`
### 如何貼 prompts
1. 複製 `prompts/templates/phase-a.txt`,替換 `{{SOURCE_PORTAL}}`、`{{TARGET_CHANNEL}}`、`{{GOAL}}`、`{{CONSTRAINTS}}`。
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` 跑驗收。
---
## 失敗模式速查
| 現象 | 處置 |
|------|------|
| Headless cookie 遺失 | `LAZYBOY_BROWSER_HEADED=1` |
| 列表空轉 | `report_blocked`;換篩選/關鍵字;勿重複同工具 ×3 |
| 未確認就發 | **產品失敗**AGENT_SYSTEM + `request_user_confirm` 擋 |
| 登入牆 | 只 handoff auth完成後 Enter |
---
## 範例索引
- [蝦皮聯盟 → Threads範例](examples/shopee-threads-affiliate.md)