Playbook AI: trích nghĩa vụ và mốc gia hạn từ hợp đồng, có bước duyệt
Biến hợp đồng thành danh sách việc cần theo dõi bằng workflow AI có cấu trúc: giảm lộ dữ liệu nhạy cảm, trích nghĩa vụ và mốc quan trọng, rồi bắt buộc người phụ trách duyệt trước khi tạo việc hoặc gửi email.
Một hợp đồng mới vào hộp thư chung có thể kéo theo nhiều việc: theo dõi ngày gia hạn, gửi thông báo đúng hạn, kiểm tra nghĩa vụ thanh toán hoặc rà soát điều khoản chấm dứt. Chỉ cần bỏ sót một mốc quan trọng, team đã có thêm một rủi ro vận hành.
AI có thể giúp đọc nhanh và chuyển nội dung thành danh sách theo dõi. Nhưng không nên để AI tự gửi thông báo, tự cập nhật CRM hoặc tự tạo cam kết với đối tác.
Cách phù hợp hơn là coi AI như một trợ lý bóc tách bản nháp: AI đề xuất dữ liệu có cấu trúc, còn người có thẩm quyền kiểm tra và phê duyệt trước khi workflow hành động.
Trước khi nghĩ đến prompt, hãy nghĩ đến dữ liệu. Hợp đồng thường chứa tên, thông tin liên hệ, dữ liệu tài chính và các thông tin nhạy cảm khác. Presidio là SDK hỗ trợ nhận diện và khử định danh dữ liệu nhận dạng cá nhân (PII) trong văn bản và hình ảnh, có thể là một lớp bảo vệ trước khi đưa nội dung vào bước AI.
Đầu ra cần có: danh sách việc, không phải bản tóm tắt dài
Với người làm operations, no-code hoặc IT generalist, đầu ra hữu ích thường là các bản ghi có thể đi tiếp trong workflow:
Nghĩa vụ: Bên nào cần làm gì.
Mốc thời gian: Ngày hiệu lực, hết hạn, gia hạn hoặc thời hạn thông báo.
Điều kiện kích hoạt: Sự kiện nào khiến nghĩa vụ phát sinh.
Điều khoản cần chú ý: Ví dụ phạt, chấm dứt, giới hạn trách nhiệm, bảo mật, thay đổi giá hoặc gia hạn tự động.
Dẫn chiếu nguồn: Câu hoặc đoạn hợp đồng để người duyệt đối chiếu.
Trạng thái duyệt: Chưa duyệt, cần làm rõ, đã duyệt.
Đừng bắt đầu bằng một agent “tự quản lý hợp đồng”. Với tác vụ có đầu vào và đầu ra tương đối rõ, workflow cố định thường dễ kiểm soát hơn:
> Nhận tài liệu → giảm lộ dữ liệu nhạy cảm → AI trích xuất JSON → con người duyệt → tạo việc.
Hãy định nghĩa bản ghi cần theo dõi trước khi mở n8n, Make, Zapier hay Power Automate. Schema rõ ràng giúp AI bớt trả lời lan man và giúp các bước sau không phải đoán ý dữ liệu.
Dùng Presidio làm lớp bảo vệ dữ liệu trước AI
Presidio cung cấp các mô-đun nhận diện và khử định danh PII. Tài liệu dự án nêu các ví dụ như tên, địa điểm, số thẻ tín dụng, số điện thoại tại Mỹ, dữ liệu tài chính và nhiều loại dữ liệu khác.
Công cụ hỗ trợ recognizer có sẵn hoặc recognizer tùy chỉnh, dựa trên các kỹ thuật như:
Nhận diện thực thể có tên (NER)
Biểu thức chính quy
Logic theo luật
Checksum
Ngữ cảnh liên quan, trên nhiều ngôn ngữ
Presidio có thể được sử dụng trong Python hoặc PySpark, cũng như qua Docker hoặc Kubernetes. Dự án còn có mô-đun che PII trong ảnh, bao gồm ảnh tiêu chuẩn và ảnh y khoa DICOM.
Tuy nhiên, Presidio cảnh báo rõ: cơ chế phát hiện tự động không bảo đảm tìm được toàn bộ dữ liệu nhạy cảm. Vì vậy, khử định danh bằng máy không phải là lý do để mặc định gửi toàn bộ kho hợp đồng sang một dịch vụ AI bên ngoài.
Workflow mẫu: từ hợp đồng đến hàng chờ phê duyệt
Bạn có thể triển khai logic này bằng no-code, low-code hoặc code riêng. Tên node thay đổi theo nền tảng, nhưng vai trò của từng bước nên giữ nguyên.
1. Nhận tài liệu và kiểm tra đầu vào
Lưu các thông tin tối thiểu:
Mã tài liệu nội bộ
Nguồn tải lên
Thời điểm nhận
Người gửi hoặc đơn vị phụ trách
Trạng thái xử lý
Không dùng riêng tên file làm định danh vì tên có thể trùng hoặc bị đổi.
Nếu tài liệu là file scan, workflow cần một bước phù hợp để lấy nội dung văn bản trước khi AI hoặc Presidio xử lý. README của Presidio không mô tả sẵn quy trình OCR hay cấu hình đọc hợp đồng tiếng Việt.
Nếu file không mở được, không có nội dung văn bản hoặc lỗi ở bước xử lý, hãy đưa vào hàng chờ lỗi để người vận hành xem lại. Không nên lặp vô hạn với cùng một file lỗi.
2. Nhận diện và khử định danh PII
Ở bước này, dùng Presidio để quét dữ liệu nhạy cảm và tạo bản văn bản đã được xử lý trước khi gọi AI.
Nên tách riêng:
Bản gốc: Lưu trong kho có phân quyền.
Bản đã che: Dùng cho bước AI khi phù hợp với chính sách dữ liệu của tổ chức.
Nhật ký xử lý: Chỉ lưu thông tin cần thiết, chẳng hạn loại thực thể được phát hiện.
Cấu hình recognizer: Theo dõi phiên bản quy tắc đang dùng để dễ kiểm tra lại.
Không đưa bản gốc vào log debug, chat nội bộ hoặc sheet dùng chung. Thông tin truy cập dịch vụ nên được quản lý bằng cơ chế lưu trữ bí mật phù hợp với nền tảng bạn dùng, thay vì ghi trực tiếp trong prompt hay workflow.
3. Yêu cầu AI trích xuất JSON
Hãy yêu cầu AI trả về JSON thuần và buộc mô hình đánh dấu điểm không chắc chắn. Mục tiêu không phải là một bản diễn giải hay, mà là dữ liệu dễ kiểm tra và dễ đưa vào workflow.
text
Bạn là trợ lý trích xuất nghĩa vụ hợp đồng để tạo danh sách theo dõi nội bộ.
Chỉ dùng thông tin có trong <contracttext>. Không suy diễn, không tự tính ngày, không tự thêm nghĩa vụ.
Nếu một trường không có trong văn bản, dùng null.
Nếu câu chữ mơ hồ, ghi rõ vào reviewnote và đặt confidence là "low".
Trả về JSON theo cấu trúc:
{
"contractreference": "<contractreference>",
"obligations": [
{
"party": "<partyornull>",
"action": "<requiredaction>",
"trigger": "<triggerornull>",
"duedatetext": "<verbatimdateornull>",
"renewalornotice": "<verbatimtermornull>",
"riskclause": "<riskclauseornull>",
"sourceexcerpt": "<shortverbatimexcerpt>",
"confidence": "high|medium|low",
"reviewnote": "<whyreviewisneededornull>"
}
],
"overallreviewnote": "<noteornull>"
}
<contracttext>
<redactedcontracttext>
</contracttext>
Sau bước AI, kiểm tra JSON có hợp lệ hay không. Nếu mô hình trả Markdown, thiếu khóa bắt buộc hoặc không parse được, workflow chỉ nên thử lại có kiểm soát rồi đưa bản ghi vào hàng chờ kiểm tra.
Đừng để node tạo task chạy tiếp với một chuỗi văn bản lỗi.
4. Con người phê duyệt
Gửi kết quả đến đúng người phụ trách, chẳng hạn contract owner, procurement hoặc bộ phận pháp chế.
Màn hình duyệt nên hiển thị đồng thời:
Nội dung AI trích xuất
sourceexcerpt để đối chiếu
Mức độ tin cậy
Nút duyệt, sửa, từ chối hoặc yêu cầu đọc lại toàn văn
Với ngày gia hạn, nghĩa vụ có tác động tài chính và điều khoản rủi ro, nên yêu cầu duyệt thủ công trước khi workflow tạo hành động tiếp theo.
Đây là điểm chặn cần có trước các việc như gửi email ra ngoài, tạo cam kết, thanh toán, xóa dữ liệu hoặc cập nhật trường quan trọng trong CRM.
5. Chỉ hành động sau khi đã duyệt
Sau khi được duyệt, workflow mới tạo dòng trên sheet, record CRM hoặc task trong công cụ quản lý việc.
Nếu cần liên hệ đối tác, hãy ưu tiên tạo email nháp để người phụ trách kiểm tra và bấm gửi. Cách này giảm nguy cơ gửi nhầm nội dung hoặc hiểu sai điều khoản.
Ví dụ: AI nên trả lời thế nào khi thiếu dữ liệu?
Giả sử đoạn văn bản đã che dữ liệu là:
text
Bên A phải gửi thông báo bằng văn bản trước ngày gia hạn.
Nếu không thông báo theo điều khoản này, hợp đồng tự gia hạn.
Một kết quả phù hợp có thể là:
json
{
"contractreference": "<contractreference>",
"obligations": [
{
"party": "Bên A",
"action": "Gửi thông báo bằng văn bản",
"trigger": "Trước ngày gia hạn",
"duedatetext": null,
"renewalornotice": "Nếu không thông báo theo điều khoản này, hợp đồng tự gia hạn.",
"riskclause": "Hợp đồng tự gia hạn nếu không thông báo.",
"sourceexcerpt": "Bên A phải gửi thông báo bằng văn bản trước ngày gia hạn.",
"confidence": "medium",
"reviewnote": "Văn bản không nêu ngày gia hạn cụ thể trong đoạn được cung cấp."
}
],
"overallreviewnote": "Cần kiểm tra phần định nghĩa ngày gia hạn trong toàn bộ hợp đồng."
}
Điểm quan trọng là AI không tự bịa ra ngày. Trong workflow hợp đồng, một câu trả lời “chưa đủ dữ liệu” thường hữu ích hơn một ngày tháng có vẻ hợp lý nhưng sai.
Kiểm tra chất lượng trước khi mở rộng
Trước khi triển khai rộng, hãy chuẩn bị một nhóm hợp đồng đã được con người kiểm tra để đối chiếu kết quả AI.
Tập trung vào các lỗi có tác động lớn:
Bỏ sót điều khoản gia hạn tự động
Nhầm bên chịu nghĩa vụ
Cắt sai điều kiện kích hoạt
Không giữ được trích đoạn nguồn
Suy diễn ngày hoặc thời hạn không có trong văn bản
Thiết kế xử lý lỗi theo nguyên tắc đơn giản:
Lỗi tạm thời: Thử lại có giới hạn và ghi nhận lý do.
Lỗi JSON: Yêu cầu lại đúng định dạng; nếu vẫn lỗi thì chuyển sang review.
Nghi ngờ PII chưa được xử lý: Dừng luồng trước khi gọi dịch vụ AI bên ngoài.
Confidence thấp: Tạo mục cần kiểm tra, không tự tạo nhắc việc chính thức.
Lỗi CRM hoặc email: Không chạy lại mù quáng để tránh tạo bản ghi hoặc gửi trùng.
Chi phí vận hành sẽ phụ thuộc vào các thành phần bạn chọn, như bước lấy văn bản từ tài liệu, hạ tầng chạy Presidio, lượt gọi mô hình AI, lưu trữ và công sức kiểm duyệt. Chỉ gửi phần văn bản cần thiết và tránh xử lý lại tài liệu chưa thay đổi.
Checklist trước khi đưa vào vận hành
[ ] Có bản gốc được phân quyền và bản đã xử lý PII cho bước AI.
[ ] Prompt yêu cầu JSON, có sourceexcerpt và mức độ tin cậy.
[ ] Mốc gia hạn, điều khoản rủi ro và hành động ra bên ngoài đều phải qua phê duyệt.
[ ] Có log trạng thái từng node nhưng không ghi lộ nội dung nhạy cảm.
[ ] Có hàng chờ lỗi, retry giới hạn và cơ chế hạn chế tạo trùng.
[ ] Thông tin truy cập dịch vụ không nằm trong workflow export hoặc prompt.
[ ] Team hiểu Presidio hỗ trợ giảm nguy cơ lộ PII, nhưng không bảo đảm phát hiện toàn bộ PII.
Kết quả cần hướng tới không phải là “AI đã đọc xong hợp đồng”. Đó là một hàng chờ rõ ràng: việc gì, ai làm, khi nào cần chú ý, trích ở đâu và ai đã duyệt.
Khi con người vẫn đứng giữa AI và hành động thực tế, workflow mới vừa nhanh vừa dễ kiểm soát.