№ 95
SENTRA Financial Crime Intelligence là nền tảng hỗ trợ ngân hàng giám sát giao dịch và điều tra phòng, chống rửa tiền theo nguyên tắc Evidence-first. Sản phẩm kết hợp luật nghiệp vụ, phân tích mạng lưới giao dịch và AI/RAG có kiểm soát để tổng hợp bằng chứng, quản lý vụ việc và hỗ trợ lập báo cáo, trong khi con người luôn giữ quyền quyết định cuối cùng.
| Thuộc tính | Nội dung |
|---|---|
| Tên đề tài | FIN-07 — SENTRA Financial Crime Intelligence |
| Loại sản phẩm | Nền tảng giám sát giao dịch và hỗ trợ điều tra phòng, chống rửa tiền (AML) |
| Nguyên tắc thiết kế | Evidence-first · Human-in-the-Loop · Secure-by-default |
| Phiên bản được đối chiếu | 1.3.0-rc.1 |
| Mức độ sẵn sàng | Engineering release candidate · Public synthetic demo · NO-GO production |
| Ngày đối chiếu | 24/08/2026 |
Ranh giới tuyên bố: Tài liệu này mô tả những năng lực đã được thể hiện trong mã nguồn và hồ sơ kỹ thuật của dự án. Các kết quả trên dữ liệu synthetic chứng minh khả năng tích hợp và tái lập ở mức kỹ thuật, không phải bằng chứng về hiệu quả AML trên dữ liệu khách hàng thật, chứng nhận pháp lý hay phê duyệt production.
SENTRA Financial Crime Intelligence là nền tảng hỗ trợ tổ chức tài chính giám sát giao dịch và điều tra phòng, chống rửa tiền theo nguyên tắc Evidence-first. Sản phẩm kết hợp luật nghiệp vụ, sàng lọc, phân tích mạng lưới giao dịch, quản lý vụ việc và AI/RAG có kiểm soát để giúp chuyên viên thu thập bằng chứng, giải thích cảnh báo và chuẩn bị bản nháp điều tra, trong khi con người luôn giữ quyền quyết định cuối cùng.
Các hành vi tài chính đáng ngờ thường được chia nhỏ hoặc phân tán qua nhiều bước nhằm tránh các ngưỡng giám sát thông thường. Một giao dịch riêng lẻ có thể trông hợp lệ, nhưng toàn bộ chuỗi sự kiện lại thể hiện các mô hình như:
Do đó, bài toán AML cần được xem xét theo , thay vì chỉ kiểm tra từng dòng giao dịch độc lập.
Trong một quy trình AML điển hình, chuyên viên có thể phải chuyển qua nhiều nguồn để kiểm tra cảnh báo, lịch sử giao dịch, hồ sơ khách hàng, kết quả screening, quan hệ tài khoản, quy định nội bộ và các vụ việc liên quan. Cách làm này tạo ra bốn vấn đề chính:
AI có thể hỗ trợ đọc, tổng hợp và soạn thảo nhanh, nhưng một chatbot tổng quát không phù hợp để tự quyết định trong nghiệp vụ AML. Những rủi ro cần kiểm soát gồm:
Vì vậy, SENTRA không xem AI là nguồn sự thật hay người ra quyết định. AI chỉ là một lớp hỗ trợ nằm sau dữ liệu, luật, bằng chứng và các cổng quản trị.
SENTRA được xây dựng nhằm tạo ra một luồng AML thống nhất với năm mục tiêu:
| Nhóm người dùng | Nhu cầu được hỗ trợ |
|---|---|
| AML Analyst | Xem và ưu tiên cảnh báo, điều tra giao dịch, tạo case, thu thập bằng chứng và chuẩn bị bản nháp |
| Compliance Reviewer | Kiểm tra đề xuất của analyst, duyệt hoặc từ chối quyết định, rà soát bản nháp STR |
| Risk/Business Officer | Theo dõi tình trạng cảnh báo, hồ sơ, SLA và khối lượng xử lý trong phạm vi được cấp quyền |
| Auditor | Đọc bằng chứng, vụ việc và nhật ký kiểm toán theo quyền chỉ đọc |
| Rule/Platform Operator | Quản lý phiên bản luật, mô phỏng, phê duyệt, kích hoạt, rollback và vận hành hàng đợi |
| System Administrator | Quản trị tenant, người dùng và quyền ứng dụng nhưng không thay thế quyền quyết định nghiệp vụ |
Customer Portal có code path riêng cho môi trường local/demo, nhưng bị loại khỏi shared environment và không thuộc phạm vi production được phê duyệt của release hiện tại.
SENTRA sử dụng kiến trúc Modular Monolith kết hợp Event-Driven Processing. PostgreSQL là nguồn sự thật; RabbitMQ chịu trách nhiệm giao việc bất đồng bộ; các worker tách biệt xử lý phát hiện, điều tra và xuất báo cáo. Frontend truy cập dữ liệu thông qua API có kiểm soát role, tenant và purpose.
flowchart LR
Source[Wallet / Payment / KYC / Device] -->|Canonical Event V2| API[FastAPI Core API]
API -->|Atomic transaction| DB[(PostgreSQL 16 + pgvector)]
DB --> Outbox[Transactional Outbox]
Outbox -->|Publisher confirm| MQ[RabbitMQ]
MQ --> Detect[Detection Worker]
Detect --> Rules[Rules T01–T11]
Detect --> Graph[Bounded Graph]
Detect --> Screening[Screening]
Rules --> Risk[Risk Aggregation]
Graph --> Risk
Screening --> Risk
Risk --> Evidence[Evidence + Alert]
Evidence --> Case[Case Management]
Evidence --> Agent[Bounded Investigation Agent]
Agent --> Draft[FACT / INFERENCE / UNKNOWN Draft]
Draft --> Review[Analyst / Reviewer]
Case --> Review
Review --> STR[Human-reviewed STR workflow]
UI[React Web / AML Command Center] <--> API
Luồng này đặt bằng chứng trước phần diễn giải. Một alert không được tạo ra chỉ vì giao diện được mở, và một câu trả lời AI không thể trở thành nguồn dữ liệu đầu vào cho quyết định AML.
SENTRA định nghĩa Canonical Event Envelope V2 cho cả sự kiện tài chính và phi tài chính. API kiểm tra schema, xác thực caller, tenant, purpose, dữ liệu thời gian và khóa idempotency trước khi ghi nhận.
Các đặc điểm chính:
Idempotency-Key để retry không tạo bản ghi trùng;Trong một transaction cơ sở dữ liệu, hệ thống ghi canonical event, subtype, idempotency receipt và outbox intent. Cách làm này ngăn tình trạng dữ liệu đã ghi nhưng thông điệp xử lý bị mất, hoặc ngược lại.
Code liên quan: packages/contracts/events.py, apps/api/routes/events.py, packages/domain/ingestion.py, packages/messaging/outbox.py.
Transactional Outbox chuyển tham chiếu sự kiện sang RabbitMQ bằng publisher confirm. Broker sử dụng main queue, retry queue và dead-letter queue; consumer được thiết kế idempotent để chấp nhận cơ chế giao nhận at least once.
Giải pháp này giúp:
Code liên quan: packages/messaging/rabbitmq.py, workers/detection/outbox_publisher.py, workers/detection/consumer.py, workers/detection/redrive.py.
Detection Worker tải sự kiện và các cấu hình được phép, tạo feature snapshot, chạy rule, graph, screening và risk, sau đó lưu evidence và alert. Các ngưỡng demo trong code được gắn nhãn synthetic; chúng không được diễn giải thành chính sách AML production.
| Rule | Typology được mô hình hóa |
|---|---|
| T01 | Structuring/Smurfing — chia nhỏ giao dịch |
| T02 | Rapid pass-through — tiền vào và ra nhanh |
| T03 | Fan-in/Funnel — nhiều nguồn gom vào một chủ thể |
| T04 | Fan-out dispersal — phân tán tiền đến nhiều chủ thể |
| T05 | Circular/Layering — dòng tiền vòng tròn hoặc qua nhiều lớp |
| T06 | Dormant activation — tài khoản ngủ đông hoạt động trở lại |
| T07 | Shared device/IP — nhiều chủ thể dùng chung thiết bị/IP, có xác nhận dòng tiền |
| T08 | Behavior anomaly — lệch khỏi baseline hành vi tại thời điểm đánh giá |
| T09 | Screening candidate/exact identifier — ứng viên hoặc định danh trùng danh sách |
| T10 | New beneficiary with high-value transfer — bên thụ hưởng mới kèm giao dịch giá trị cao |
| T11 | Account takeover to cashout — chuỗi chiếm đoạt tài khoản đến rút/chuyển tiền |
Rule configuration hỗ trợ vòng đời tạo phiên bản, mô phỏng, phê duyệt, kích hoạt và rollback. Việc có code path không đồng nghĩa một rule bundle đã được AML phê duyệt; production phải dùng bundle có identity, checksum, hiệu lực và reviewer rõ ràng.
Code liên quan: packages/rules/evaluator.py, packages/rules/config.py, workers/detection/pipeline.py, governance/rule-manifests, apps/api/routes/rule_configurations.py.
SENTRA lưu các node và edge cần thiết trong PostgreSQL rồi tải một vùng đồ thị giới hạn vào NetworkX để điều tra. Bounded traversal giới hạn số hop, số path, kích thước và timeout nhằm tránh truy vấn không kiểm soát trên toàn mạng lưới.
Graph Engine hỗ trợ:
Cách tiếp cận hiện tại phù hợp với engineering candidate và điều tra có phạm vi. Nếu cần phân tích đồ thị cực lớn hoặc truy vấn toàn mạng theo thời gian thực, dự án phải benchmark và đánh giá kiến trúc lưu trữ/chia vùng bổ sung.
Code liên quan: packages/graph/bounded.py, packages/graph/detectors.py, packages/graph/materialize.py, apps/api/routes/graph.py.
Screening được triển khai như một lifecycle có kiểm soát: snapshot danh sách phải được phê duyệt, kết quả ứng viên được che dữ liệu phù hợp, disposition do người có quyền thực hiện và hoạt động rescreen/redrive được lưu vết.
Risk Aggregator kết hợp các finding xác định theo policy/bundle đã chọn. Kết quả rủi ro giúp ưu tiên hàng đợi nhưng không tự động biến thành quyết định pháp lý.
Evidence Store lưu các bằng chứng gắn với nguồn, phiên bản, thời điểm và checksum. Alert, graph, case và Agent tham chiếu lại các evidence ID này để bảo đảm phần giải thích không tách rời dữ liệu gốc.
Code liên quan: packages/screening, packages/risk, packages/evidence/store.py, apps/api/routes/evidence.py, apps/api/routes/screening.py.
Investigation Agent là một workflow read-only, bounded và non-authoritative. Agent chỉ được gọi các công cụ đọc nằm trong allowlist, có giới hạn tối đa 12 tool calls và 45 giây cho một lượt điều tra. Công cụ được giới hạn theo tenant và purpose, đồng thời giới hạn số alert, evidence và related case được lấy.
Luồng xử lý chính:
FACT, INFERENCE, UNKNOWN;| Năng lực | Mục đích | Trạng thái/ranh giới |
|---|---|---|
| Governed Knowledge RAG | Truy xuất tài liệu đã được đăng ký và phê duyệt bằng PostgreSQL FTS/pgvector | Code path đã có; external embedding/model egress fail-closed nếu thiếu approval, model manifest hoặc registry |
| Synthetic Case RAG 100K | Tìm case synthetic tương tự phục vụ demo và nghiên cứu | Dùng FTS5 + local feature-hash vector 512 chiều; không phải neural/OpenAI embedding; bị loại khỏi shared/production capability boundary |
Khi external AI không được bật hoặc thiếu điều kiện an toàn, hệ thống dùng deterministic fallback. Khi egress được cấu hình, dữ liệu gửi đi vẫn phải qua gate DPA/egress/model/registry và không được bao gồm raw CSV hay số tài khoản thô.
Đầu ra Agent luôn giữ nguyên các ranh giới:
FACT: thông tin đã được liên kết với evidence hợp lệ;INFERENCE: suy luận có căn cứ nhưng cần người kiểm tra;UNKNOWN: dữ liệu còn thiếu hoặc không đủ để kết luận;Code liên quan: src/agents/investigation.py, src/agents/grounded.py, src/agents/tools/investigation.py, packages/agent_core/guardrails.py, workers/investigation/runtime.py, packages/knowledge.
Alert có thể được chuyển thành case để analyst điều tra và cộng tác với reviewer. Vòng đời case hỗ trợ:
If-Match để phát hiện stale update thay vì ghi đè;Đây là cơ chế hỗ trợ quy trình Maker–Checker. Việc xuất một artifact hoặc tạo bản nháp không đồng nghĩa báo cáo đã được nộp cho cơ quan quản lý.
Code liên quan: apps/api/routes/cases.py, packages/domain/case_decisions.py, packages/domain/str_drafts.py, workers/str_export/runtime.py.
SENTRA áp dụng mô hình deny-by-default dựa trên bốn thành phần: danh tính người dùng, role, tenant và purpose. Một role không tự động có mọi quyền; quyền thực tế phụ thuộc vào mục đích đang hoạt động trong phiên.
Các kiểm soát đã có trong code gồm:
Các kiểm soát này là nền tảng kỹ thuật; production vẫn cần KMS/secret management, OIDC/service identity, security testing và phê duyệt vận hành trên đúng release artifact.
Code liên quan: packages/security/capabilities.py, packages/security/authorization.py, packages/security/pii.py, packages/security/vault.py, packages/security/redaction.py.
Frontend React/TypeScript hiện cung cấp các không gian nghiệp vụ chính:
FACT/INFERENCE/UNKNOWN, citation và fallback status;Navigation và dữ liệu hiển thị được lọc theo session capability. Khi purpose hiện tại không có quyền đọc một khu vực, UI thể hiện trạng thái không khả dụng thay vì giả lập dữ liệu hoặc âm thầm nâng quyền.
Code liên quan: apps/web/src/app/routes.ts, apps/web/src/app/WorkspaceChrome.tsx, apps/web/src/features/workspace/CommandCenterPage.tsx, apps/web/src/features.
Môi trường local/demo dùng Docker Compose với PostgreSQL 16 + pgvector, RabbitMQ, API, Web và các worker Outbox, Detection, Investigation, STR Export. API có /healthz, /readyz và Prometheus metrics; correlation/trace ID được gắn vào request và processing flow.
Đường triển khai demo hiện tại dùng một EC2, build API/Web image, scan image, đẩy vào private ECR, resolve immutable digest rồi triển khai qua SSM. Web/Nginx là public listener; API, database và broker nằm trong private container network.
Topology này phù hợp để trình diễn kỹ thuật với dữ liệu synthetic, nhưng không có HA/Multi-AZ, trusted HTTPS/domain, managed PITR hay production identity. Vì thế mọi URL hiện tại phải được gắn nhãn PUBLIC_SYNTHETIC_DEMO_ONLY.
Code/tài liệu liên quan: docker-compose.yml, apps/api/main.py, deploy/aws-vps, overall_report.md.
sequenceDiagram
autonumber
participant Source as Nguồn giao dịch
participant API as Core API
participant Worker as Detection Worker
participant Analyst as AML Analyst
participant Agent as Investigation Agent
participant Reviewer as Compliance Reviewer
Source->>API: Gửi Canonical Event V2 + Idempotency-Key
API->>API: Xác thực, kiểm tra schema/PII, ghi event + outbox
API-->>Source: 202 Accepted + trace_id
API->>Worker: RabbitMQ delivery theo tham chiếu event
Worker->>Worker: Feature → Rules → Graph → Screening → Risk
Worker->>API: Persist evidence và alert
Analyst->>API: Mở hàng đợi và chi tiết cảnh báo
Analyst->>API: Xem evidence, timeline, graph và screening
Analyst->>API: Tạo/nhận case điều tra
Analyst->>Agent: Yêu cầu bản nháp điều tra
Agent->>Agent: Read-only tools + RAG + citation verification
Agent-->>Analyst: FACT / INFERENCE / UNKNOWN + manual-review warning
Analyst->>API: Bổ sung nhận định và đề xuất quyết định
Reviewer->>API: Duyệt, từ chối hoặc yêu cầu bổ sung
Reviewer->>API: Review bản nháp/xuất STR theo quyền
Đầu ra mong muốn của luồng trên là một hồ sơ điều tra có thể kiểm tra và tiếp tục xử lý, không phải một lệnh tự động kết luận rửa tiền hoặc khóa tài khoản.
SENTRA chưa đưa ra con số tiết kiệm chi phí, giảm false positive hay tăng năng suất production vì chưa có pilot trên dữ liệu đại diện và bộ tiêu chí đã được các bên nghiệp vụ phê duyệt.
| Trụ cột | Bằng chứng trong project |
|---|---|
| Luồng dữ liệu | Canonical Event V2, idempotent ingestion, PostgreSQL transaction và transactional outbox |
| Xử lý bất đồng bộ | RabbitMQ durable queue, retry/DLQ, publisher confirm và bounded redrive |
| Detection | Feature snapshot, rule T01–T11, bounded graph, screening, risk, evidence và alert persistence |
| Điều tra | Alert/evidence/graph/search/case API và UI vertical slices |
| AI | Investigation Worker bất đồng bộ, read-only tools, guardrail, fallback, FACT/INFERENCE/UNKNOWN và citation |
| Quản trị | Rule lifecycle, screening lifecycle, Maker–Checker, audit, ETag và release metadata |
| Bảo mật | Role–tenant–purpose policy, protected PII boundary, encryption/tokenization và masking |
| Vận hành | Docker Compose, migration, health/readiness, metrics, CI và demo deployment flow |
Bộ dữ liệu 100K_VIETQR là dữ liệu synthetic được pin bằng manifest/checksum:
Lần chạy GNN được ghi nhận trong báo cáo FIN07-916 có validation PR-AUC 0,7608 và Top-100 gồm 100/100 node positive. Kết quả này chỉ là shadow research evidence trên dữ liệu synthetic với random node split, không được dùng làm precision production. GNN có decision authority = NONE.
Hồ sơ trạng thái hiện tại ghi nhận lần kiểm chứng gần nhất:
857 passed, 5 skipped;188 passed;Các số liệu kiểm thử luôn phải đi kèm release/commit cụ thể khi dùng làm bằng chứng chính thức. Working tree thay đổi hoặc một release mới cần chạy lại toàn bộ gate tương ứng.
Project đã chứng minh các thành phần có thể nối thành một luồng kỹ thuật hoàn chỉnh và có thể trình diễn lặp lại trên dữ liệu synthetic. Tính khả thi production vẫn là một giả thuyết cần được xác nhận bằng UAT có kiểm soát, dữ liệu đại diện, benchmark, security/resilience evidence và phê duyệt của con người.
| Nhóm | Giới hạn hiện tại | Điều kiện cần bổ sung |
|---|---|---|
| Dữ liệu | Dataset hiện tại là synthetic | Masked dataset được Data Owner phê duyệt và source-to-alert reconciliation |
| Detection | Rule/list/risk demo không phải production bundle | Bundle có version, checksum, owner và AML reviewer |
| Hiệu quả AML | Chưa có precision/recall/FPR trên dữ liệu đại diện | Pilot theo typology, temporal/entity holdout và calibration |
| AI/RAG | External egress tắt mặc định; Case RAG 100K là demo local | DPA, provider/model approval, immutable registry và canary evaluation |
| GNN | Offline shadow, không có decision authority | Drift/bias/calibration, độc lập review và promotion gate |
| Hạ tầng | Demo một EC2, HTTP/IP, DB và broker cùng host | TLS/domain, production identity, HA, backup/PITR và DR |
| Bảo mật | Chưa có đủ DAST/pentest/load/soak evidence trên release hiện tại | Kiểm thử và triage P0/P1 gắn với exact image digest |
| Phê duyệt | AML, Security, Legal và UAT đang pending | Named approvals trên cùng release manifest |
Những hành động sau không thuộc quyền tự động của SENTRA:
Roadmap tuân theo thứ tự PROVE → PILOT → SCALE. Dự án ưu tiên chứng minh dữ liệu, kiểm soát và hiệu quả trước khi tăng quyền cho AI hoặc mở rộng hạ tầng.
| Nhóm chỉ số | Ví dụ chỉ số |
|---|---|
| Chất lượng detection | Precision, recall, false-positive rate, alert coverage theo typology |
| Chất lượng điều tra | Thời gian alert-to-case, case handling time, tỷ lệ yêu cầu bổ sung, SLA breach |
| Chất lượng AI | Citation precision, unsupported-claim rate, abstention correctness, fallback rate |
| Trải nghiệm người dùng | Số màn hình/thao tác cho một case, thời gian tìm bằng chứng, analyst satisfaction |
| Độ tin cậy | p50/p95/p99 latency, throughput, retry/DLQ rate, availability, restore time |
| Quản trị | Tỷ lệ artifact có version/hash, approval completeness, audit replay success |
| Bảo mật | Tenant isolation tests, raw-PII rejection, access-denial correctness, P0/P1 findings |
Mục tiêu định lượng chỉ nên được chốt sau khi xác định baseline, dataset, typology và cách đo cùng các bên AML, Data Owner và Business.
| Năng lực | Trạng thái hiện tại |
|---|---|
| Canonical event, ingestion, outbox và workers | Implemented — engineering candidate |
| Rule T01–T11, graph, screening, risk, evidence và alert | Implemented — cần production-approved bundles/evidence |
| Alert, graph, search, case, review và audit UI/API | Implemented — engineering candidate |
| Investigation Agent read-only và deterministic fallback | Implemented — non-authoritative |
| Governed PostgreSQL FTS/pgvector RAG | Implemented code path — egress/registry gated |
| Case RAG 100K local feature-hash | Synthetic demo only |
| GraphSAGE GNN | Offline shadow research — no decision authority |
| Customer Portal | Local/demo code path — excluded from shared/production boundary |
| Public EC2 demo | Available as synthetic demo topology — not production |
| Production deployment | NO-GO — approvals and evidence pending |
SENTRA không chỉ là một mô hình AI hay một dashboard cảnh báo. Sản phẩm là một chuỗi giá trị AML theo hướng Evidence-first: chuẩn hóa sự kiện, phát hiện xác định, phân tích quan hệ, lưu bằng chứng, tổ chức vụ việc và sử dụng AI có giới hạn để hỗ trợ giải thích và soạn thảo.
Đóng góp nổi bật của giải pháp nằm ở ranh giới trách nhiệm rõ ràng:
Phiên bản hiện tại đủ để chứng minh engineering feasibility và thực hiện Demo Day trên dữ liệu synthetic. Bước tiếp theo không phải là tuyên bố production-ready, mà là hoàn thiện UAT evidence, pilot trên dữ liệu masked đại diện và đo lường hiệu quả bằng các tiêu chí đã được thống nhất.
Thông điệp chốt: SENTRA dùng AI để tăng năng lực của điều tra viên — không thay thế trách nhiệm của điều tra viên.
apps/api/ FastAPI entrypoint, auth, schemas và API routes
apps/web/src/ React/TypeScript UI, repositories và feature pages
packages/contracts/ Canonical event, JSON Schema và contract manifest
packages/domain/ Domain services, persistence và workflow state
packages/rules/ Rule configuration, evaluator, simulation và replay
packages/graph/ Graph materialization, bounded traversal và detectors
packages/screening/ Screening snapshot, service, lifecycle và recovery
packages/risk/ Risk policy, aggregation và calibration
packages/evidence/ Evidence store
packages/knowledge/ Governed ingestion, retrieval, vector và reranking
packages/security/ Authorization, capabilities, PII protection và redaction
src/agents/ Bounded investigation, tools, grounded provider và STR draft
workers/ Outbox, detection, investigation, screening và STR export
governance/ Rule/model/release manifests và readiness decisions
docs/ Architecture, business, UAT, security và release evidence