リスク & 対策 / Risks & Mitigations
(A) Cost Risks / コストリスク
| Risk | Detail | Mitigation |
|---|---|---|
| LLM API cost | ~250 calls/day with 10-min cycles + instant tips | Claude Haiku 4.5: ~$9/month. Affordable |
| YouTube API quota | LiveChat polling consumes quota | 5s interval. 17,280/day. Well within quota |
| TikTok API limits | WebSocket connection stability | Auto-reconnect logic. Fallback polling |
| Server upkeep | 24h operation | Local PC or cheap VPS ($5-$10/month) |
| Tip cost spike | Popular stream = more instant LLM calls | Cap instant reactions to 1 per 5 seconds. Queue excess tips |
(B) Content Risks / コンテンツリスク
| Risk | Detail | Mitigation |
|---|---|---|
| Inappropriate dialogue | LLM generates unsuitable speech | (1) Strict system prompt constraints (2) NG word output filter (3) Claude API safety settings |
| Action loops | Same action repeated = boring | (1) Last 5 actions in prompt to avoid repetition (2) 10% random action slot (3) Time-based action weights |
| Relationship collapse | Arguments chain → bad atmosphere | (1) Love floor at 40 (2) Auto-trigger makeup events near floor (3) Admin override commands |
| Eve speaks human | Dog generates human speech | (1) Eve agent outputs action JSON only (2) "Woof" type fixed text only |
| Troll comments | Inappropriate comments trigger bad responses | (1) NG word filter before LLM (2) YouTube/TikTok moderation (3) Rule-based pre-screening |
| Cross-language issues | Bad translation or language mixing | (1) Explicit language detection (2) "Respond in same language" rule (3) Fallback to Japanese |
(C) Streaming Continuity / 配信継続リスク
| Risk | Detail | Mitigation |
|---|---|---|
| Server crash | Goes down during 24h stream | (1) pm2 auto-restart (2) State persisted to SQLite every cycle (3) OBS auto-reconnect |
| Viewer boredom | No change → viewers leave | (1) Milestone events at tip totals (2) Weekly "weekend date" auto-events (3) Seasonal/holiday events (4) Comment interaction keeps it fresh |
| No tips coming | Zero revenue = no game progress | (1) Basic life works without tips (2) In-game dialogue hints ("Our food budget is tight...") (3) Small tips get big reactions |
| Platform ToS | 24h stream gets banned | (1) Split into 12h × 2 streams/day (2) Follow content guidelines (3) "Game" category |
| TikTok stream limits | TikTok may limit stream duration | (1) Restart stream automatically (2) YouTube as primary, TikTok as secondary |
(D) Technical Risks / 技術リスク
| Risk | Detail | Mitigation |
|---|---|---|
| LLM response delay | API response too slow for instant tips | (1) Async processing, never block rendering (2) "Thinking..." animation (3) 5s timeout → fallback reaction |
| Memory bloat | Long-term memory grows huge | (1) Auto-delete importance < 0.5 after 30 days (2) Monthly LLM summarization (3) SQLite VACUUM |
| Asset shortage | Need new art for new items | (1) Define spritesheet template upfront (2) AI pixel art generation (3) Text + icon fallback |
| Multi-platform sync | Tips from both platforms arriving simultaneously | (1) Unified event queue with timestamp ordering (2) Rate limiter for reactions |
| 10-min cycle alignment | Timer drift over long runs | (1) Use absolute timestamps, not intervals (2) Drift correction every hour |
(E) Community Risks / コミュニティリスク
| Risk | Detail | Mitigation |
|---|---|---|
| Griefing via tips | Intentionally causing arguments via tips | (1) No single tip can destroy relationship (2) Admin backdoor commands |
| Copyright in dialogue | Characters quote real works | (1) Prompt: "Do not mention real product/work names" (2) Output filter for known titles |
| Tip expectation mismatch | Large tipper disappointed by effect | (1) Publish tip → event mapping beforehand (2) Invest in effect quality |
| Cross-platform drama | YouTube vs TikTok viewer conflicts | (1) Characters don't distinguish platforms (2) "Everyone's a friend" philosophy |
| Language flame wars | JP vs EN viewer conflicts | (1) Characters respond in commenter's language (2) Equal treatment |