Kiến trúc workflow AI cho ngành AI Automation: kết nối, kiểm duyệt và đo hiệu quả
Tình huống thật
Một workflow chăm sóc khách định kỳ nhận lịch lúc 9 giờ, đọc CRM, nhờ AI soạn nội dung và gửi qua kênh nhắn tin. Kịch bản tương tự xuất hiện khi Zalo inbox, đơn Shopee hoặc ticket từ fanpage cùng đổ về một luồng. Giữa lúc chạy, CRM timeout sau khi trả một phần dữ liệu; connector gửi tin trả 504 dù tin đã được nhận; lịch lại phát event lần hai; một khách vừa rút consent nhưng cache chưa cập nhật. Nếu thiết kế chỉ có các node nối tiếp, thao tác retry có thể gửi trùng, gửi sai trạng thái hoặc làm mất dấu bản ghi nào đã hoàn tất. Đây là vấn đề kiến trúc, không thể chữa chỉ bằng prompt.
Workflow AI ngành AI Automation cần một lõi kiểm soát độc lập với model: event contract xác định đầu vào; idempotency chặn xử lý lặp; state machine ghi tiến trình; queue tách tải; policy gate và người duyệt kiểm action; adapter lưu receipt; monitor kích hoạt kill switch và runbook. AI chỉ tạo proposed content có schema. Kiến trúc này áp dụng cho chăm khách, báo cáo, lịch nội dung, xử lý ticket hoặc đồng bộ hồ sơ, nhưng contract và thẩm quyền phải viết riêng cho từng domain. Mục tiêu là xác định, quan sát và phục hồi được mỗi side effect.
Việc giao cho AI
AI có thể biến context packet thành DRAFT, phân loại intent, tóm tắt thay đổi, phát hiện trường mâu thuẫn và đề xuất route. Output phải tuân schema gồm artifact, source refs, unknowns, reason và policy version. Nó không trực tiếp ghi state nghiệp vụ; state transition do code/rule xác định. Model cũng có thể hỗ trợ sau sự cố bằng cách nhóm trace đã redaction, so lỗi theo phiên bản và viết bản nháp postmortem. Những việc này đều được kiểm bằng validator, rubric hoặc bằng chứng nguồn.
Không giao model tạo event ID, quyết định một action đã thành công, chọn retry, thay idempotency key, tự replay dead-letter, mở circuit breaker hoặc vô hiệu kill switch. Nó không tự xác nhận consent, tự chọn recipient hay tự gửi. Khi output sai schema, dẫn nguồn thiếu, prompt injection, dữ liệu stale hoặc policy conflict, record chuyển trạng thái REVIEW/FAILED_VALIDATION. Confidence không được đổi state. Với unknown write, hệ thống hỏi adapter/receipt store trước; nếu vẫn không biết, giữ STOP và chuyển operator, tuyệt đối không phát action “cho chắc”.
Dữ liệu cần chuẩn bị
Event envelope tối thiểu gồm event-id, event-type, source, tenant-id, entity-id, schema-version, occurred-at, received-at, correlation-id và idempotency-key. Payload chỉ chứa dữ liệu cần cho bước hiện tại; context khác được truy xuất theo quyền. State store ghi current state, artifact version, policy version, attempt, lease, next action và receipt refs. Idempotency record phải bền hơn tiến trình worker. Adapter receipt lưu target, request fingerprint, external ID, status và timestamp để retry có thể trả kết quả cũ thay vì tạo side effect mới.
Tạo policy matrix cho action, approver, limit, consent, freshness và separation of duties. Error taxonomy cần phân biệt invalid, conflict, retryable, rate-limited, timeout-before-write, unknown-write, rejected, dead-letter và security incident. Fixture bắt buộc có duplicate, out-of-order, clock skew, schema drift, worker crash, lease expiry, partial write, delayed receipt, revoked consent, reviewer timeout và connector recovery. Secret/PII không nằm trong log; retention và redaction theo mục đích. Backup state cùng receipt phải restore thử, vì khôi phục database mà thiếu receipt có thể làm replay trùng.
Workflow từng bước
Bảy bước là đường chạy runtime cho một event, không phải checklist chọn use case. Intake xác thực contract trước khi tạo state. Idempotency gate tra khóa và trả receipt cũ khi event đã hoàn thành. Context builder lấy dữ liệu tối thiểu rồi kiểm freshness/consent. AI processor tạo DRAFT; policy gate cùng review queue quyết định. Action adapter thực thi đúng một side effect và ghi receipt nguyên tử theo khả năng của hệ thống đích. Reconciler so state với target, đóng circuit khi sai lệch và điều phối phục hồi.
Retry chỉ áp dụng cho lỗi đã phân loại và ở đúng bước. Exponential backoff kèm jitter không giải quyết unknown write; trường hợp đó cần lookup receipt hoặc reconciliation. Dead-letter không phải thùng rác: nó giữ payload đã redaction, error code, state, owner và replay plan. Replay tạo attempt mới nhưng giữ correlation, không sửa lịch sử. Kill switch có thể đóng một adapter hoặc tenant thay vì dừng toàn bộ. Mở lại yêu cầu root cause, fixture tái hiện, rollback/repair, owner approval và canary nhỏ; không xả toàn bộ backlog ngay.
Bước 1: Xác thực event contract
Kiểm signature, tenant, schema, event/entity ID và thời gian; payload sai vào quarantine trước khi tạo state nghiệp vụ.
Bước 2: Qua cổng idempotency
Tra khóa bền vững; event đã hoàn tất trả receipt cũ, event đang xử lý không tạo worker side effect thứ hai.
Bước 3: Tạo context và state
Lấy nguồn tối thiểu, kiểm freshness/consent/policy, ghi state cùng correlation; thiếu nguồn chuyển REVIEW hoặc STOP.
Bước 4: AI tạo artifact có schema
Model tạo DRAFT, source refs, unknowns và reason; validator loại tool call, output sai schema hoặc injection.
Bước 5: Policy gate và review queue
Rule kiểm điều kiện, người có thẩm quyền approve/reject; quá SLA giữ chờ hoặc chuyển owner dự phòng, không auto-approve.
Bước 6: Adapter thực thi và ghi receipt
Adapter least-privilege kiểm key, limit và approval; unknown write phải reconcile, không retry mù.
Bước 7: Giám sát, dừng và phục hồi
Theo dõi state aging, trace, dead-letter và drift; vượt threshold đóng circuit, sửa, test và mở lại bằng canary.

Prompt mẫu
Năm prompt phục vụ review kiến trúc: viết event contract; thiết kế state/idempotency; lập retry–dead-letter policy; tạo authority/receipt contract; viết incident runbook. Chúng sinh tài liệu và test plan, không sinh mã được tự động chạy production. Mỗi prompt yêu cầu biến rõ, bảng đầu ra và ca minh họa có verdict. Người thiết kế phải đối chiếu output với khả năng thật của connector, bởi không phải API nào cũng hỗ trợ transaction, lookup theo key hay undo.
Không nhập secret, token hoặc payload khách thật chưa redaction. Nếu AI đề xuất “retry ba lần” mà không phân loại before-write/unknown-write, đánh dấu không đạt. Nếu nó coi queue delivery là bằng chứng action thành công, yêu cầu receipt contract. Prompt và output có version gắn với ADR, fixture và owner approval. Khi thay schema, adapter hay policy, chạy lại test; không giữ output cũ vì tiêu đề workflow giống nhau. Mục tiêu của prompt là làm kiến trúc có thể chất vấn, không thay thế quyết định kỹ thuật và nghiệp vụ.
Công cụ phù hợp
n8n, Make, Zapier hoặc Apps Script phù hợp điều phối ở mức khác nhau; queue có thể là dịch vụ managed, Redis stream, database outbox hoặc cơ chế nền tảng. PostgreSQL hay datastore tương đương giữ state/idempotency/receipt; Google Sheets chỉ phù hợp pilot ít concurrency và action không nhạy cảm. ChatGPT, Claude hoặc Gemini xử lý nội dung phía sau schema validator. Review queue có thể nằm trong Base.vn, KiotViet, MISA, ứng dụng nội bộ, helpdesk hoặc database UI miễn hiển thị evidence, diff, approver và audit.
Quan sát cần structured log, metric, trace, alert, dead-letter view và dashboard state aging. Secret manager hoặc biến môi trường giữ credential; service account tách theo adapter và tenant. Một API gateway hoặc service nhỏ hữu ích khi nền tảng no-code thiếu idempotency, signature validation, rate limit hay receipt lookup. Công cụ không thay contract. Nếu target không cho tra action theo khóa và hậu quả lặp cao, operator thực thi thủ công hoặc thiết kế lớp trung gian. Kill switch phải độc lập với model và truy cập được khi orchestration đang lỗi.

AI làm gì / người duyệt gì
Model worker chỉ nhận context đã giới hạn, tạo output theo schema và không có credential action. Validator từ chối output không hợp lệ. Policy engine quyết rule xác định. Reviewer xem artifact, source, unknowns, risk và quyết approve/reject/request-info. Adapter worker nhận action token ngắn hạn đúng scope, kiểm idempotency, gọi target và ghi receipt. Reconciler so receipt/state; monitor phát hiện backlog, drift và duplicate signal. Mỗi thành phần có một trách nhiệm để lỗi model không tự biến thành side effect.
Business owner sở hữu policy và thẩm quyền; data owner sở hữu contract/freshness; system owner sở hữu runtime, queue, secret và phục hồi; security/privacy owner duyệt dữ liệu nhạy cảm. Incident commander được quyền kích kill switch; chỉ change owner được mở lại theo runbook. Người duyệt không thấy secret nhưng phải thấy nguồn và tác động. Tài khoản dùng chung bị cấm trong audit. Nếu review backlog vượt SLA, hệ thống dừng nhận action mới hoặc chuyển dự phòng; không tự approve để “giải phóng hàng đợi”.
Sai lầm & rủi ro
Sai lầm nguy hiểm là coi message broker “exactly once” đồng nghĩa side effect đúng một lần; target bên ngoài vẫn có thể nhận lặp. Lỗi khác gồm tạo idempotency key ngẫu nhiên mỗi retry, đánh dấu DONE trước receipt, retry toàn workflow, không lease worker, sửa state trực tiếp, replay dead-letter không giới hạn, gom nhiều tenant vào cùng key và để PII trong trace. Một cron job cũng có thể chồng lần chạy khi phiên trước chưa kết thúc. Những lỗi này thường chỉ lộ khi timeout và phục hồi.
Prompt injection có thể yêu cầu gọi tool; schema drift có thể đổi nghĩa field; credential rộng có thể biến lỗi route thành lộ dữ liệu. Kiểm soát bằng signature, validation, tenant isolation, least privilege, allowlist, outbox/inbox pattern, durable receipt, circuit breaker, rate/batch limit, redaction và immutable audit. Chaos test worker crash, delayed target và monitor loss. Khi không xác định state hoặc receipt, fail-closed. Runbook phải nêu người trực, đường thủ công, rollback, cách bảo toàn bằng chứng và truyền thông nội bộ; không dựa vào trí nhớ của một kỹ sư.
Triển khai cá nhân / đội / doanh nghiệp
Cá nhân có thể bắt đầu bằng một bảng state, event ID và nút review thủ công; action bên ngoài do người dùng bấm sau khi kiểm. Đội nhỏ thêm queue, idempotency table, receipt, taxonomy lỗi và dashboard. Pilot với fixture trước, rồi shadow, sau đó canary một tenant/nhóm bản ghi. Đo duplicate prevented, validation fail, review latency, unknown write, time-to-recover và replay success. Không bật auto-send chỉ vì content quality đạt nếu runtime control chưa đạt.
Doanh nghiệp cần contract registry, environment separation, infrastructure as code, SLO, on-call, change approval, backup/restore và incident exercise. Mỗi domain tự sở hữu policy/adapter; platform cung cấp event envelope, state library, observability và control plane. Model/prompt mới không bypass policy; adapter mới cần threat model và rollback. Capacity planning bao gồm queue growth khi reviewer nghỉ hoặc target rate-limit. Mở rộng theo cell/tenant và canary, không big-bang. Release chỉ được thông qua khi test duplicate, crash, unknown write, kill switch, restore và replay đều có bằng chứng.
Kết quả đầu ra mẫu
Dữ liệu minh họa: ARCH-AUTO-DEMO-09 nhận event CARE_DUE v3 hai lần. Intake xác thực, idempotency gate tạo một state, context builder chặn một khách đã rút consent, model tạo DRAFT cho bản ghi còn lại và reviewer approve. Adapter timeout sau unknown write; reconciler tìm external receipt, đánh dấu SUCCEEDED và không gửi lần hai. Một payload schema v2 vào dead-letter. Kill switch adapter SEND vẫn OFF trong toàn bộ bài kiểm thử.
Gói nghiệm thu gồm event schema, state diagram, idempotency/receipt contract, retry matrix, dead-letter runbook, authority matrix, threat checklist và dashboard. Trace nối event đến decision và receipt; replay chỉ chạy đúng record được phê duyệt; restore giữ khả năng tra receipt; monitor loss đóng circuit. Các con số đều là minh họa, không phải kết quả vận hành. Khi 24 fixture đạt và owner ký, hệ thống mở canary nhỏ ở chế độ assisted; nếu unknown write hoặc duplicate signal vượt ngưỡng đã khóa, kill switch đóng ngay.
Bước tiếp theo: Gửi event mẫu, action và một lỗi từng gặp tại /lien-he để NganAds cùng viết contract, retry matrix, kill switch và pilot assisted có thể phục hồi.