WEBSITE ĐANG PHÁT TRIỂN

EU AI Act enforcement 2/8/2026: checklist kỹ thuật cho team AI Việt Nam

Ngày 2/8/2026, EU AI Act chính thức enforce các yêu cầu cho high-risk AI system. Team BKGlobal đã rà soát lại toàn bộ pipeline AI cho khách hàng có user EU và phát hiện 4 điểm dễ bị bỏ sót: phân loại risk, audit logging, human oversight, và conformity assessment. Bài này tổng hợp những thay đổi kỹ thuật cần làm, kèm code .NET minh họa cho audit middleware.

EU AI Act enforcement 2/8/2026: checklist kỹ thuật cho team AI Việt Nam

Hook dự án: khách hàng EU yêu cầu compliance audit

Tháng 5/2026, team chúng tôi nhận yêu cầu từ khách hàng fintech Đức: hệ thống AI scoring tín dụng của họ phải đáp ứng EU AI Act trước ngày 2/8/2026, nếu không họ sẽ ngừng cung cấp dịch vụ tại thị trường EU. Team phụ trách gồm 4 backend developer Việt Nam và 1 solution architect, làm việc từ xa qua hai múi giờ.

Đây không phải case đặc biệt. Theo nguồn từ Breaking Cube Tech (3/2026), đã có developer ở Mỹ mất hai tuần code resume screener cho HR platform rồi mới phát hiện đó là high-risk AI system theo Annex III. Tương tự với team chúng tôi: phân loại risk sai từ đầu sẽ dẫn đến phải retrofit toàn bộ audit logging và human oversight trên codebase đã chạy production.

Trong bài này, tôi chia sẻ 4 điểm kỹ thuật cụ thể team cần kiểm tra, kèm code .NET mẫu. Mục tiêu: team Việt Nam đang xây AI cho khách hàng EU có thể tự audit trong 2 tuần, thay vì phát hiện vấn đề vào phút chót.


Timeline 3 mốc quan trọng

Theo Regulation (EU) 2024/1689, có ba mốc thời gian cần nhớ:

  • Tháng 2/2025: Các AI practice bị cấm đã có hiệu lực (social scoring, manipulative AI, untargeted facial scraping).
  • Tháng 8/2025: General-purpose AI model obligations có hiệu lực. Chủ yếu áp dụng cho OpenAI, Anthropic, Google - các nhà cung cấp model lớn. Nếu team bạn chỉ gọi API của họ, bạn thuộc "deployer" và chịu trách nhiệm về cách ứng dụng dùng model.
  • 2/8/2026: High-risk AI system requirements có hiệu lực. Đây là mốc quan trọng nhất cho team đang xây sản phẩm AI ở EU.

Nếu hệ thống AI của bạn vẫn còn chạy production sau tháng 8, bạn nên đang lên kế hoạch compliance từ bây giờ. Retrofit tốn gấp đôi thời gian so với thiết kế ngay từ đầu.


4 điểm kỹ thuật team Việt Nam hay bỏ sót

1. Phân loại risk sai từ đầu

EU AI Act phân loại AI theo 4 mức: Unacceptable (cấm), High, Limited, Minimal. Full taxonomy nằm ở Annex III - danh sách 8 nhóm high-risk use case. Trong đó, employment-related AI (resume screening, interview scoring, performance evaluation) là high-risk bất kể chỉ là "suggestion tool" hay "human always makes the final call". Nếu AI tham gia filter hoặc rank candidate, bạn đã ở high-risk territory.

Team chúng tôi đã phân loại sai 1 use case lúc đầu: một chatbot hỗ trợ khách hàng nghĩ rằng "limited risk" vì chỉ trả lời câu hỏi. Nhưng khi chatbot đó bắt đầu gợi ý sản phẩm tài chính dựa trên phân tích hành vi, nó chuyển sang high-risk vì ảnh hưởng đến quyết định tài chính của người dùng. Sửa classification từ đầu tốn ít công hơn sửa sau khi đã viết test.

2. Audit logging - phần đau đầu nhất

Đây là yêu cầu khó nhất về mặt kỹ thuật: AI system phải tự động ghi log các sự kiện trong vận hành. Thời gian lưu log được quy định là "appropriate period" - khá mơ hồ. Team chúng tôi chọn 5 năm dựa trên precedent GDPR và tư vấn từ luật sư Đức. Con số này có thể quá thấp hoặc quá cao tùy member state.

Vấn đề thực tế: khi audit database down, bạn phải có fallback. Không thể silently drop audit records cho high-risk AI - đó là điều cơ quan quản lý sẽ phát hiện đầu tiên khi điều tra.

Đây là middleware audit logging team chúng tôi viết cho .NET, dùng Entity Framework Core và có fallback ra local file:

public sealed class AuditLoggingMiddleware
{
    private readonly RequestDelegate _next;
    private readonly AuditDbContext _auditDb;
    private readonly ILogger<AuditLoggingMiddleware> _logger;
    private const string FallbackPath = "./audit-fallback.ndjson";

    public AuditLoggingMiddleware(
        RequestDelegate next,
        AuditDbContext auditDb,
        ILogger<AuditLoggingMiddleware> logger)
    {
        _next = next;
        _auditDb = auditDb;
        _logger = logger;
    }

    public async Task InvokeAsync(HttpContext context)
    {
        // Chỉ audit các endpoint AI
        if (!context.Request.Path.StartsWithSegments("/api/ai"))
        {
            await _next(context);
            return;
        }

        var startTime = DateTimeOffset.UtcNow;
        var auditEntry = new AuditEntry
        {
            Id = Guid.NewGuid(),
            Endpoint = context.Request.Path,
            Method = context.Request.Method,
            ModelVersion = "gpt-5.6-2026-06",
            UserId = context.User?.Identity?.Name ?? "anonymous",
            RequestHash = HashPii(context.Request.Body),
            Timestamp = startTime
        };

        try
        {
            await _next(context);

            // Log cả request thành công và thất bại
            auditEntry.ResponseStatus = context.Response.StatusCode;
            auditEntry.ProcessingTimeMs =
                (long)(DateTimeOffset.UtcNow - startTime).TotalMilliseconds;

            await SafeWriteAuditAsync(auditEntry);
        }
        catch (Exception ex)
        {
            auditEntry.ResponseStatus = 500;
            auditEntry.ErrorMessage = ex.Message;
            // VẪN log khi exception - regulator quan tâm cả request fail
            await SafeWriteAuditAsync(auditEntry);
            throw;
        }
    }

    private async Task SafeWriteAuditAsync(AuditEntry entry)
    {
        try
        {
            _auditDb.AuditEntries.Add(entry);
            await _auditDb.SaveChangesAsync();
        }
        catch (Exception dbEx)
        {
            // Fallback: ghi ra local file, batch import khi DB recover
            _logger.LogError(dbEx,
                "Audit DB write failed for {Endpoint}, falling back to file",
                entry.Endpoint);

            var line = JsonSerializer.Serialize(entry);
            await File.AppendAllTextAsync(FallbackPath, line + Environment.NewLine);
        }
    }

    private static string HashPii(Stream body)
    {
        // PII hashing: tách riêng PII fields để audit log
        // vẫn cho biết WHAT xảy ra nhưng không lộ WHO
        // Implementation chi tiết phụ thuộc schema cụ thể
        using var sha = SHA256.Create();
        var hash = sha.ComputeHash(body);
        return Convert.ToHexString(hash);
    }
}

Code trên xử lý 2 vấn đề thực tế: fallback khi DB down, và phải log cả request thất bại (không chỉ request thành công). Phần PII hashing tách riêng mất 3 ngày để làm đúng vừa GDPR vừa audit.

3. Human override không phải checkbox

Mọi output AI high-risk phải có khả năng bị human override. Khi recruiter override ranking của AI, hành động đó phải được log riêng. Article 14 yêu cầu hệ thống phải được thiết kế để con người "properly understand" output và "decide not to use" nó. Một nút "Approve" mà không có ý nghĩa thực sự không đáp ứng yêu cầu này.

Team chúng tôi đã gặp tình huống khách hàng muốn gộp "approve" thành một nút bulk để tiết kiệm thời gian. Chúng tôi phải giải thích rằng bulk approve mà không qua từng case không phải human oversight thực sự, và sẽ bị coi là non-compliant. Khách hàng đã đồng ý tách thành approve từng case với ghi chú bắt buộc.

4. Conformity assessment - phần dễ trì hoãn

Đây là phần team hay trì hoãn vì flowchart của Chapter III khá phức tạp. Theo Article 43: high-risk system có thể dùng internal conformity assessment (Annex VI) hoặc third-party (Annex VII) tùy loại. Employment AI không phải safety-critical thường qualify cho self-assessment - nhưng ranh giới mơ hồ.

Hai luật sư team tôi hỏi cho hai câu trả lời khác nhau về cùng một use case. Khuyến nghị: đừng tự quyết, thuê luật sư EU có kinh nghiệm về AI Act.


Provider vs Deployer - ranh giới quan trọng

EU AI Act phân biệt rõ hai vai trò:

  • Provider: cung cấp general-purpose AI model. OpenAI, Anthropic, Google thuộc nhóm này. Họ chịu trách nhiệm về model documentation, training data summary, adversarial testing.
  • Deployer: xây ứng dụng trên model. Nếu bạn gọi OpenAI API, bạn là deployer. Bạn chịu trách nhiệm về cách ứng dụng dùng model: risk classification, transparency, audit logging, human oversight.

Điều quan trọng cho team Việt Nam: bạn không phải audit training data của GPT-4. Nhưng nếu bạn fine-tune một model, ranh giới provider/deployer trở nên mờ. EU AI Office guidance về vấn đề này còn sơ sài. Một số luật sư cho rằng fine-tuning khiến bạn thành "provider" của một high-risk AI model với bộ nghĩa vụ hoàn toàn khác. Số khác cho rằng bạn vẫn là deployer. Hiện chưa có consensus.

Team chúng tôi quyết định: nếu phải fine-tune cho use case high-risk, thuê thêm luật sư chuyên EU AI Act để review classification.


Có áp dụng nếu team bạn ở Việt Nam không?

Có, trong hầu hết trường hợp. Article 2(1) cover ba trường hợp: provider placing AI on EU market, deployer located in EU, và provider/deployer located outside EU whose AI system output is "used in the Union". Nếu app của bạn có user EU, EU AI Act áp dụng - bất kể công ty đặt ở đâu. Cùng logic lãnh thổ như GDPR: quy định theo user, không theo trụ sở công ty.

Một số developer Việt Nam tôi trao đổi nghĩ đây là "vấn đề châu Âu". Không phải, nếu bạn có khách hàng châu Âu. Ranh giới rất đơn giản: user ở EU + AI trong sản phẩm = EU AI Act áp dụng.


Điều này quan trọng với team AI Việt Nam thế nào

Với team BKGlobal, 3 việc cần làm ngay trong tháng 7/2026:

Audit mọi dự án AI đang chạy:

  • Liệt kê tất cả pipeline AI có user EU
  • Phân loại risk theo Annex III cho từng use case
  • Ưu tiên high-risk để retrofit trước 2/8

Build audit logging ngay từ đầu cho dự án mới:

  • Không phải retrofit sau này
  • Middleware như code .NET ở trên
  • Fallback cho DB down

Thuê luật sư EU cho use case high-risk:

  • Không tự quyết conformity assessment
  • Clarify provider/deployer nếu có fine-tuning
  • Documentation review trước khi ship

Với team Việt Nam khác, câu hỏi đầu tiên nên là: dự án AI của bạn có user EU không? Nếu có, bạn cần checklist ở trên. Nếu không, bạn có thể chờ thêm vài tháng để xem EU enforcement thực tế như thế nào, rồi chuẩn bị cho lần enforce tiếp theo (2/2027 cho general-purpose AI risk classification theo lộ trình).


Số liệu & thống kê

Số liệu Nguồn Ý nghĩa
High-risk AI rules có hiệu lực từ 2/8/2026 EU AI Act Regulation 2024/1689 Mốc quan trọng nhất cho developer
General-purpose AI obligations từ 8/2025 EU AI Act Áp dụng cho provider, không trực tiếp cho deployer
Prohibited AI practices từ 2/2025 EU AI Act Đã có hiệu lực, social scoring/manipulation
Phạt vi phạm: tối đa 7% doanh thu toàn cầu hoặc 35 triệu EUR EU AI Act Mức phạt cao nhất cho prohibited practices
Phạt high-risk violation: tối đa 3% doanh thu hoặc 15 triệu EUR EU AI Act Mức phạt cho high-risk non-compliance
Audit log retention: 5 năm (team chúng tôi áp dụng) GDPR precedent + legal counsel Có thể khác tùy member state

Sources

# Title URL Ghi chú
1 EU AI Act Impact on Developers 2026 - What Actually Changes https://tech.breakingcube.com/2026/03/10/eu-ai-act-impact-on-developers-2026/ Nguồn case study developer thực tế
2 AI Act - Shaping Europe's Digital Future https://digital-strategy.ec.europa.eu/en/policies/regulatory-framework-ai Trang chính thức EU Commission
3 The Artificial Intelligence Act - Full text https://artificialintelligenceact.eu/the-act/ Toàn văn Regulation (EU) 2024/1689

Bạn đang xây AI cho khách hàng EU? Team BKGlobal đang hỗ trợ audit compliance cho 3 dự án fintech tại Việt Nam trong tháng 7/2026. Nếu team bạn cần review kiến trúc trước deadline 2/8, mở issue trên GitHub repo hoặc liên hệ trang tech.bkglobal.vn.

Bài liên quan trên tech.bkglobal.vn:


Son Do - BKGlobal Tech Team

#BKGlobal #ung-dung-ai #ai-trends #senior-dev #tech-lead


Bài viết liên quan

Xem thêm
Ứng dụng & Xu hướng AI

GPT-6 Astra và cuộc đua computer-use agent: nhìn từ góc độ developer

Tuần qua team mình ngồi xem buổi ra mắt GPT-6 Astra của OpenAI và không khỏi dừng lại ở cảm xúc "wow" hay "AGI đã đến". Câu hỏi thực tế của team là: nếu đây là hướng đi mới, kiến trúc agent của chúng ta cần thay đổi gì? Bài viết này chia sẻ những gì team rút ra từ sự kiện này, benchmark Astra, điểm yếu thật sự của computer-use agent, và code mẫu C# / .NET cho team đang xây dựng agent tương tự.

Ứng dụng & Xu hướng AI

Cloudflare Pay-Per-Crawl: cuộc chiến dữ liệu mới ảnh hưởng đến AI developer thế nào

Cloudflare vừa công bố chính sách mới: từ 15/9/2026, các AI crawler "mixed-use" (vừa search, vừa training, vừa agent) sẽ bị chặn mặc định trên các site có quảng cáo. Kèm theo đó, mô hình Pay-Per-Crawl đang tiến hóa thành Pay-Per-Use - trả tiền khi nội dung tạo ra giá trị, không chỉ khi được fetch. Với team BKGlobal, đây không phải tin xa vời - nó ảnh hưởng trực tiếp đến cách chúng tôi thiết kế RAG pipeline và AI agent. Bài này phân tích thay đổi, đưa ra góc nhìn kỹ thuật, và hướng dẫn team Việt Nam nên chuẩn bị gì.

Ứng dụng & Xu hướng AI

Behind the scenes: dùng Claude + Obsidian để xây knowledge graph kết nối backend và frontend trong một project lớn

Trong project đủ lớn, backend và frontend dev thường sống trong hai thế giới tách biệt — cùng build một hệ thống nhưng hiểu nó theo hai cách khác nhau. Chúng tôi dùng Claude + Obsidian để xây knowledge graph kết nối hai thế giới đó: mỗi API endpoint có note về thiết kế từ góc backend, và note về cách dùng từ góc frontend — tất cả liên kết với nhau, Claude traverse được.