Answer Card multi-channel — bản đồ component

Template N-tab (control plane) → render(id,type,data) server-side (data plane) → output đa kênh: web SSE, Zalo/FB qua tool-exec. Companion cho sequence diagram.

Control plane — authoring N-tab + storage Data plane — sinh + render server-side theo type render + validate + strip (shared) studio-svc FE authoring N-tab :3000 project-svc CRUD multi-tab :50063 version-svc N-tab + Ed25519 :50082 environment-svc allowlist :50083 agent-runtime sinh block+type :50056 workflow-runtime sinh block+type :50052 render lib render(id,type,data) chat UI web: card_json tool-exec oa.send_message :5002 Zalo / FB channel API CRUD N-tab publish layout variant [cache] allowlist render(type) render(type) web → card_json SSE zalo/fb → JSON send_message Legend frontend backend database security external

Không vẽ (ngoài hot path)

  • • Kong edge, Keycloak auth
  • • conversation-svc (field channel = session kênh)
  • • customer-svc (bind end-user Zalo/Messenger)
  • • OpenBao (Ed25519 ký version), Kafka outbox

type quyết đường ra

  • • web → card_json → chat UI SSE
  • • zalo/fb → message JSON → tool-exec → channel API
  • • text → plain (fallback)
  • • một render lib, nhiều output — agent truyền type