Bảy bài trước xây từng mảnh; bài này ghép chúng thành một agent chạy được hằng tháng, an toàn với tiền thật và có thể audit. Tự động hóa tài chính khác app thường: sai một số là mất tiền hoặc sai thuế.
Pipeline end-to-end
def monthly_pipeline(bank_file, ledger_file):
bank = load_transactions(bank_file, "bank")
ledger = load_transactions(ledger_file, "ledger")
matches, unmatched = reconcile_deterministic(bank, ledger) # Bài 3
matches += llm_reconcile(unmatched, ledger) # Bài 4
for t in bank:
t["category"] = classify(t)["category"] # Bài 5
alerts = detect_anomalies(bank) # Bài 6
metrics = compute_metrics(bank, prev_month()) # Bài 7
report = write_summary(metrics, alerts)
return {"report": report, "alerts": alerts,
"exceptions": exception_queue()}
Ba nguyên tắc an toàn
1. READ mặc định, WRITE phải duyệt:
Agent tự do đọc/phân tích; mọi ghi sổ, chi tiền, gửi email đều qua người.
2. Idempotent (chạy lại không hại):
Chạy pipeline hai lần không được tạo bút toán trùng. Dùng khóa theo kỳ.
3. Audit trail đầy đủ:
Mỗi quyết định lưu: input, tool đã gọi, output, ai/độ tin cậy nào duyệt.
Human-in-the-loop đúng chỗ
Không phải mọi thứ cần duyệt — chỉ những điểm rủi ro:
HITL_GATES = {
"ghi_but_toan": True, # luôn cần người
"gui_bao_cao": True, # người xem trước khi gửi sếp
"phan_loai": False, # tự động, chỉ review khi confidence thấp
"doi_soat_1_1": False, # tự động nếu confidence >= 0.9
}
Xử lý lỗi và trạng thái
Giao dịch nên có vòng đời trạng thái rõ ràng để không bao giờ "mất dấu":
loaded -> matched | unmatched
unmatched -> in_review -> resolved | written_off
matched -> categorized -> reported
Nếu LLM lỗi/timeout, dòng đó rơi về in_review chứ không bị bỏ im lặng — fail an toàn, không fail thầm lặng.
Giám sát chất lượng theo kỳ
kpi = {
"auto_match_rate": matched_auto / total, # mục tiêu > 0.9
"review_queue": len(exception_queue()),
"llm_cost": token_usage * price,
"human_overrides": corrections_count # cao = agent đang học sai
}
Theo dõi human_overrides: nếu con người liên tục sửa cùng loại lỗi, đó là tín hiệu cải thiện rule/prompt.
Khung tư duy triển khai dần
Giai đoạn 1: SHADOW -> agent chạy song song, người vẫn làm tay, so kết quả
Giai đoạn 2: ASSIST -> agent gợi ý, người duyệt từng bước
Giai đoạn 3: AUTO -> agent tự làm phần confidence cao, người chỉ soát ngoại lệ
Đừng nhảy thẳng lên AUTO. Chạy SHADOW ít nhất 1–2 kỳ để đo độ chính xác thật.
Checklist go-live
- [ ] Pipeline idempotent, chạy lại không tạo trùng?
- [ ] Mọi hành động WRITE đều có cổng duyệt?
- [ ] Audit trail ghi đủ để truy vết mọi số?
- [ ] Có KPI giám sát mỗi kỳ (match rate, cost, overrides)?
- [ ] Đã chạy SHADOW trước khi bật AUTO?
- [ ] Lỗi LLM rơi về hàng đợi review, không mất dòng?
Sai lầm thường gặp
- Bật AUTO ngay từ đầu: chưa đo được độ chính xác đã giao tiền cho agent. Luôn SHADOW trước.
- Pipeline không idempotent: chạy lại tạo bút toán trùng, lệch sổ. Khóa theo kỳ + kiểm trùng.
- Fail thầm lặng: LLM lỗi, dòng biến mất khỏi báo cáo. Mọi lỗi phải rơi về review.
- Thiếu audit trail: khi kiểm toán hỏi "số này ở đâu ra" thì không trả lời được. Ghi log mọi quyết định.
Học xong bài này rồi?
Tạo tài khoản miễn phí để lưu lại — lần sau vào là biết ngay đang dở ở đâu,
và học hết khóa thì có chứng chỉ.
Lưu tiến độ của tôi