Not another chatbot: we built an open-source agent harness for customer service
说明与用途
Ecbot 是一个开源的客服代理工具包,解决了平台重试、消息突发、过时回复、多渠道身份统一和人工接手等问题。
问题
Customer service bots often lack robust handling of platform retries, burst messaging, stale replies, multi‑channel identity, and escalation, leading to lost messages, duplicated work, stale responses, fragmented customer data, and uncontrolled handoffs.
结果
Ecbot reduces message loss, eliminates duplicate processing, ensures timely and relevant replies, unifies customer identity across channels, and provides clear escalation paths, all without vendor lock‑in.
工作流
- 1. Receive webhook and write message to BullMQ job before acknowledging. 2. Deduplicate using Redis SET NX on platform:externalMessageId. 3. Debounce bursts: collapse messages arriving within 3 s. 4. Increment generation lease counter for each inbound message. 5. Generate reply with LLM; abort if lease counter changes. 6. Route reply through originating contact point. 7. Escalate to operator if handoff keyword, low confidence, guardrail flag, or trigger tag detected. 8. Operator replies from shared inbox; bot resumes after resolution.
证据
Ecbot writes every incoming message to a durable BullMQ job (Redis with AOF on) before it acknowledges the webhook.
Ecbot collapses messages that arrive inside a 3‑second window into one debounce burst and replies once, to all of them, while the platform shows a typing indicator.
For that case each conversation has a generation lease: a counter in Redis. Every inbound message increments it.
Ecbot separates the Customer from the ContactPoint (one platform identity, unique on (workspace, platform, externalSenderId)).
Ecbot's escalation fires when the customer asks for a human, the agent's confidence drops below a threshold, an input guardrail flags the message, or a customer tag triggers handoff.
- 记录日期: 2026-10-02T08:55:44.740Z