基于现有 Node.js + PostgreSQL + Socket.IO 技术栈的落地方案
2026-03-19 · Implementation Guide v1
SOP Engine(规则引擎)处理 80% 的事件,LLM 只处理 20% 的边界情况。
这不是"省钱的妥协",而是更好的架构:标准流程用确定性规则保证 100% 准确,AI 只在需要判断力的地方介入。
对 VC 而言:规则引擎是护城河,不是 LLM。任何竞品都能接 OpenAI API,但把美甲连锁的 SOP 流程抽象成可配置的状态机——这是领域知识壁垒。
从底层到顶层,每层独立可部署、独立有价值。2026-03 更新:L1 采用 Inngest 替代自建事件总线,L4 采用 OpenAI Agents SDK (JS) 作为 LLM 调用层。
gpt-4o-mini 分类。
Claude Sonnet / gpt-4o。每天约 15-20 次调用。
Claude Sonnet。每天 3-5 次调用(含日结汇总)。
假设:中型门店,35 appointments/day,5 walk-ins,总计 ~85 events/day
每个事件都调 LLM
27.6% of $199 revenue
按事件复杂度选模型
14% of $199 revenue
规则引擎 + LLM 混合
6% of $199 revenue
| Component | Events/Day | LLM Calls | Model | Tokens/Day | $/Day | $/Month |
|---|---|---|---|---|---|---|
| L1 Event Bus | 85 | 0 | N/A | 0 | $0 | $0 |
| L2 SOP Engine (80% events) | 68 | 0 | Rule Engine | 0 | $0 | $0 |
| L3 Router (fuzzy events) | ~9 | 9 | gpt-4o-mini | ~5K | $0.004 | $0.12 |
| L4 Appointment Agent | ~7 edge cases | 7 | Sonnet | ~14K | $0.08 | $2.40 |
| L4 Marketing Agent | ~5 triggers | 5 | Sonnet | ~20K | $0.10 | $3.00 |
| L4 Finance Agent | 1 day-end | 1–3 | Sonnet | ~10K | $0.05 | $1.50 |
| L5 Supervisor (batch) | 3 batches | 3 | Sonnet | ~12K | $0.07 | $2.10 |
| L5 Daily Summary → Owner | 1 | 1 | Sonnet | ~8K | $0.05 | $1.50 |
| Opus (on-demand deep analysis) | variable | 0–2 | Opus | ~5K | ~$0.05 | ~$1.50 |
| Total (without on-demand Opus) | $0.39 | $11.72 | ||||
| Total (with occasional Opus) | $0.44 | $13.22 | ||||
订阅价 $199/mo,AI 成本 ~$12/mo = 6% of revenue。
即使流量翻倍(70 appointments/day),成本也只到 ~$24/mo = 12%。
对比:典型 AI SaaS 的 LLM 成本占比在 15-30%。我们的混合架构把这个数字压到了 行业平均的 1/3。
关键:$99/mo AI Premium add-on 的毛利率 > 85%。
EVENT: service.completed [employee marks service as done on iPad] │ ├─ L1 Event Bus: INSERT into agent_events → PG NOTIFY 'agent_event' │ ├─ L3 Router: Check event_type against SOP registry │ ├─ MATCH: 'standard_checkout' (single service, regular customer, no discount) │ │ └─ Route to SOP Engine │ └─ NO MATCH (gift card + credit split, first-time VIP, active promo) │ └─ Route to Appointment Agent (LLM) │ ├─ SOP Engine Path (80%) │ ├─ State: CHECKOUT_READY │ ├─ Auto-compute: total=$85, suggested_tip=18%, payment=card_on_file │ ├─ Socket.IO → iPad: Push To-Do card │ │ ┌──────────────────────────────────────┐ │ │ │ ✅ Checkout: Lisa Chen - Gel Manicure │ │ │ │ Total: $85 + Tip: $15.30 = $100.30 │ │ │ │ │ │ │ │ [Execute Standard] [Customize] │ │ │ └──────────────────────────────────────┘ │ ├─ Employee taps "Execute Standard" │ ├─ State: PAYMENT_PROCESSING → COMPLETED │ └─ Report to Supervisor: { type: 'checkout_completed', amount: 100.30 } │ └─ LLM Agent Path (20%) ├─ Context: customer profile + cart + active promotions + store state ├─ Sonnet: Analyze situation, generate suggested action │ "Customer has $50 gift card balance + wants to split remaining on card. │ Suggested: Apply $50 GC → charge $35.30 to Visa ending 4242." ├─ Socket.IO → iPad: Push To-Do card with AI suggestion │ ┌──────────────────────────────────────────┐ │ │ ⚡ Checkout: Lisa Chen - Gel Manicure │ │ │ Gift Card: -$50.00 │ Card: $35.30 │ │ │ Tip: $15.30 → Card │ │ │ │ │ │ [Accept Suggestion] [Modify] [Manual] │ │ └──────────────────────────────────────────┘ ├─ Employee taps "Accept" or modifies └─ Report to Supervisor + log to agent_decisions (for learning)
每种工作流 = 一个 JSON 状态机定义。可按租户/门店定制。这是核心护城河。
所有表加到现有 PostgreSQL,无需新基础设施。
| Column | Type | Note |
|---|---|---|
| id | UUID PK | gen_random_uuid() |
| tenant_id | UUID NOT NULL | multi-tenancy |
| store_id | UUID NOT NULL | 门店隔离 |
| event_type | VARCHAR(100) | 'service.completed', 'day.start', 'payment.anomaly' |
| source_type | VARCHAR(50) | 'appointment', 'payment', 'system' |
| source_id | UUID | FK to source entity |
| payload | JSONB | event data |
| status | VARCHAR(20) | pending → processing → completed / escalated |
| handler | VARCHAR(50) | 'sop_engine', 'appointment_agent', 'supervisor' |
| result | JSONB | agent response / suggested action |
| created_at | TIMESTAMPTZ | |
| processed_at | TIMESTAMPTZ |
| Column | Type | Note |
|---|---|---|
| id | UUID PK | |
| tenant_id | UUID NOT NULL | |
| store_id | UUID NULL | NULL = tenant-wide default |
| workflow_type | VARCHAR(100) | 'appointment_checkout', 'day_start', 'day_end_reconciliation' |
| states | JSONB | state machine definition (如上) |
| llm_escalation_rules | JSONB | 触发 LLM 的条件 |
| is_active | BOOLEAN | default true |
| version | INT | SOP versioning |
| Column | Type | Note |
|---|---|---|
| id | UUID PK | |
| event_id | UUID FK | → agent_events.id |
| agent_type | VARCHAR(50) | 'appointment', 'marketing', 'finance', 'supervisor' |
| model_used | VARCHAR(50) | 'rule_engine', 'gpt-4o-mini', 'claude-sonnet' |
| input_tokens | INT | LLM token tracking |
| output_tokens | INT | LLM token tracking |
| cost_usd | DECIMAL(10,6) | per-decision cost tracking |
| decision | JSONB | AI 给出的建议 |
| human_accepted | BOOLEAN | 员工是否接受了建议 |
| human_override | JSONB NULL | 如果拒绝,员工实际做了什么 |
human_accepted + human_override 这两个字段是飞轮的核心。
当员工多次拒绝某类 AI 建议并手动选择相同替代方案时 → 这说明 SOP 规则需要更新。
这让系统越用越准:人类覆盖 → 发现规则缺口 → 更新 SOP → 减少 LLM 调用 → 成本持续下降。
PostgreSQL LISTEN/NOTIFY + 现有 Socket.IO 足够覆盖当前规模。
这些框架全是 Python,而我们后端是 Node.js。引入 Python 微服务增加不必要的复杂度。
事件驱动 + durable workflow + 原生 Node.js/TypeScript,替代自建事件总线 + 状态机。
20% edge case 的 LLM 调用,用轻量框架而非重型 agent framework。
Temporal 太重。35 家店的规模用 Temporal 是杀鸡用牛刀。Inngest 是更好的选择。
已有 OpenAI 集成,增加 Claude 作为主力推理模型。
对账必须 100% 准确。LLM 有幻觉风险,不适合关键财务路径。
已有 Socket.IO 基础设施,直接扩展新的 event channel。
agent:todo, agent:suggestion, agent:alert80% 事件走 SOP 规则引擎,0 token 消耗。只有边界情况才调 LLM。
-80% token cost简单分类用 gpt-4o-mini ($0.15/M),决策用 Sonnet ($3/M),深度分析用 Opus ($15/M)。不一刀切。
-60% vs all-Opus同类事件的 system prompt + SOP context 不变。用 Claude prompt caching 减少重复 token。
-50% input tokensSupervisor 不逐事件调用 LLM。每 2 小时或每 N 个事件批量处理一次。
-70% supervisor calls相似事件(同类型 + 相似参数)缓存 LLM 响应。如"标准 VIP 折扣建议"只需要生成一次。
-30% LLM calls每个门店设月度 token 上限。接近上限时 → 更激进地走规则引擎路径。超限 → 降级到基础模型。
cost ceiling guarantee员工频繁拒绝某类 AI 建议 → 说明这类事件可以加规则 → 从 LLM 路径移到规则路径。成本持续下降。
flywheel effectagent_decisions 表记录每次 LLM 调用的 token 和成本。实时监控,异常预警。
observabilityFoundation
First Agent
Day Start/End
Supervisor MVP
Week 4 就可以 demo 给 VC:一个完整的 Appointment → Payment 事件流,展示 push-based UX + "Do As Suggested" 交互。
这已经足够证明范式转变,不需要全部 Agent 就位。
8 周后有完整的 Day Start → Operations → Day End 闭环 + Supervisor 日报。这是一个 可演示、可测量、有真实用户反馈的 MVP。