3.5 KiB
GrokBoy product notes
North star: a local Grok Bot–like agent — thin CLI core, tool-using ReAct loop, optional Playwright DOM browser (not screenshot-first). GrokBoy is the sole main line; LazyBoy is reference only (no fork).
Done (P0–P6)
| Phase | What |
|---|---|
| P0 | Streaming chat CLI (grokboy chat), xAI/OpenAI-compatible API |
| P1 | Tools + ReAct (shell, files), sessions under ~/.grokboy/sessions/ |
| P2 | Completion contract (report_done / report_blocked), loop guard, context truncation |
| P3 | Optional Playwright DOM tools: navigate / snapshot / click / type / eval (fail-closed) |
| P4 | Human browser handoff (browser_handoff) for login / OTP / captcha |
| P5 | Interactive multi-turn agent REPL (grokboy agent) with tools + session persist |
| P6 | Scenario playbooks + request_user_confirm (confirm-before-post) |
P5 — Interactive multi-turn agent
Gap after P4: chat streams but has no tools; run has tools but is one-shot. P5 adds grokboy agent:
- REPL reads a user line (ignore empty;
/exit/quitleave;/sessionprints id). - Each turn runs the same ReAct loop as
run(tools + handoff inherited). - Prints the verdict / assistant answer; saves under
~/.grokboy/sessions/after every turn. --session <id>resumes; omitting id auto-creates and prints the session id.chatstays streaming no-tools;runstays one-shot.
Env
GROKBOY_BROWSER_HEADED=1— always launch Chromium headed (recommended forrun/agentwhen handoff is likely).GROKBOY_HANDOFF_AUTO=1— auto-resume (tests / CI);abortto auto-abort.
Non-goals (this slice)
- Multi-agent orchestration
- Desktop accessibility / native UI automation
- External connectors / SaaS integrations
- Forking LazyBoy or Codex
- Turning
chatinto a tools REPL (kept simple on purpose)
Acceptance (summary)
See docs/ACCEPTANCE.md section P5.
P6 — Scenario playbooks + confirm-before-post
Capability: reusable scenario playbooks for Grok Bot–style acceptance — not a single vertical hardcode.
Pattern:
- Phase A — research + draft on a source portal (no irreversible publish)
- Human only for: auth
browser_handoff+ final confirm - Phase B — publish to target channel only after explicit approval
Product primitive: request_user_confirm (bilingual stdin gate; GROKBOY_CONFIRM_AUTO for tests, falls back to GROKBOY_HANDOFF_AUTO). AGENT_SYSTEM forbids irreversible public social posts without (a) explicit user approval this turn of the exact draft, or (b) confirm → approved. Prefer draft → confirm → act; prefer browser_handoff only for auth walls.
Docs: docs/scenarios/README.md (可推廣 pattern), docs/SCENARIO-TEMPLATE.md, prompts/templates/.
Example only (範例,非唯一路徑): Shopee Affiliate → Threads — docs/scenarios/examples/shopee-threads-affiliate.md + prompts/examples/shopee-threads-phase-*.txt.
Env (P6)
GROKBOY_CONFIRM_AUTO=1— auto-approve confirm (tests);abortto deny- Falls back to
GROKBOY_HANDOFF_AUTOwhen CONFIRM_AUTO unset GROKBOY_BROWSER_HEADED=1— required for real cookie/auth scenarios
Acceptance (summary)
See docs/ACCEPTANCE.md section P6.
Roadmap hint (later)
P7+ may deepen session UX, richer browser persistence across process restarts, or more tools — still thin core, DOM-first browser, playbook-driven acceptance.