Thực Hành: Dùng AI Và Vnstock Phân Tích Báo Cáo Tài Chính
Bạn giao cho AI câu hỏi “doanh nghiệp này đang kinh doanh tốt lên hay xấu đi?”. Vài phút sau, nó có thể trả một bảng và đoạn nhận xét. Nhưng nếu hỏi con số đến từ đâu, công thức nào đã chạy và có thể làm lại vào tháng sau không, câu trả lời thường kém rõ ràng hơn.
Bài này theo một nhiệm vụ từ đầu tới cuối để cho thấy harness thay đổi điều gì: AI đọc hướng dẫn, dùng Vnstock lấy dữ liệu, kiểm lỗi, giữ bằng chứng rồi mới viết báo cáo.
Tình huống cụ thể là xem doanh thu, lợi nhuận gộp và biên lợi nhuận gộp của FPT trong tám quý gần nhất. “Tám quý” chỉ là phạm vi đủ cụ thể cho ví dụ, không phải một phương pháp đầu tư hay con số bắt buộc cho nghiên cứu khác.
Bài này mô tả quy trình mẫu, không công bố số liệu hay kết luận thực nghiệm về FPT. Khi thực hiện thật, kết quả phụ thuộc thời điểm truy xuất, nguồn bên thứ ba, loại báo cáo và các giả định người dùng xác nhận.
Bài 7/7 — tuyến chính: Trước: Vì sao cùng một phân tích AI cho kết quả khác? · Về bài mở đầu: Harness Engineering là gì?
Muốn nhận gì từ bài thực hành này?
Nếu chỉ yêu cầu “phân tích FPT”, Agent sẽ phải tự chọn phạm vi và dạng kết quả. Một harness bắt đầu bằng điều kiện hoàn thành rõ hơn:
- một bảng tám quý theo thứ tự thời gian;
- doanh thu và lợi nhuận gộp cùng đơn vị;
- biên lợi nhuận gộp được tính lại bằng code;
- bảng kiểm dữ liệu;
- biểu đồ bám đúng bảng đã kiểm;
- nhận xét mô tả, không dự báo;
- hộ chiếu nghiên cứu ghi nguồn, thời điểm, cấu hình, phiên bản và cảnh báo;
- toàn bộ tệp nằm trong một thư mục riêng.
Đầu ra được chốt trước giúp Agent không kết thúc chỉ vì đã tạo được một đoạn văn.
Bước 1 — Giao câu hỏi cùng ranh giới
Prompt khởi đầu có thể viết như sau:
Hãy dùng Agent Guide, Agent Skills và tài liệu Vnstock hiện hành để tạo một nghiên cứu về doanh thu, lợi nhuận gộp và biên lợi nhuận gộp của FPT trong tám quý gần nhất. Mục tiêu là mô tả xu hướng, không dự báo và không đưa khuyến nghị đầu tư. Trước khi lấy dữ liệu, hãy hỏi tôi về loại báo cáo, loại kỳ và đơn vị nếu tài liệu không cho phép xác định chắc chắn. Chỉ làm việc trong thư mục nghiên cứu mới. Giữ code, bảng trung gian, bảng kiểm, log và báo cáo.
Prompt này trao phần thao tác cho Agent nhưng không trao quyền tự quyết các giả định tài chính quan trọng.
Bước 2 — Agent đọc hướng dẫn theo nhu cầu
Agent nên bắt đầu từ hướng dẫn nền của Vnstock, sau đó nạp skill liên quan đến báo cáo tài chính và đọc tài liệu của lớp cần dùng. Trình tự này tránh hai lỗi phổ biến:
- đoán tên hàm từ ví dụ cũ;
- đưa quá nhiều tài liệu không liên quan vào cùng lúc.
Người dùng không cần theo dõi từng lệnh kỹ thuật. Bằng chứng cần nhận ở bước này là một bản tóm tắt ngắn:
Nhiệm vụ: phân tích báo cáo tài chính theo quý
Hướng dẫn đã đọc: Agent Guide + skill liên quan
Nhóm dữ liệu dự kiến: Fundamental — dữ liệu cơ bản
Các giả định cần xác nhận: hợp nhất/riêng lẻ, riêng quý/lũy kế, đơn vịNếu Agent không thể tìm tài liệu hiện hành, nó phải báo giới hạn thay vì tự tạo giao diện lập trình nghe có vẻ hợp lý.
Bước 3 — Chốt cấu hình trước khi xem kết quả
Sau khi người dùng xác nhận, Agent tạo tệp cấu hình:
doi_tuong: FPT
so_ky: 8
loai_ky: rieng_quy
loai_bao_cao: hop_nhat
chi_tieu:
- doanh_thu
- loi_nhuan_gop
cong_thuc:
bien_loi_nhuan_gop: loi_nhuan_gop / doanh_thu
don_vi_trinh_bay: ty_dong
neu_thieu_ky: dung_va_baoĐây không phải cú pháp người làm tài chính phải học thuộc. Nó là tờ ghi quyết định. Chốt trước khi xem số giúp hạn chế việc đổi định nghĩa chỉ vì kết quả chưa đẹp.
Bước 4 — Tạo thư mục nghiên cứu
Một cấu trúc vừa đủ:
fpt-8-quy/
├── cau-hoi.md
├── config.yaml
├── run.py
├── data/
│ ├── dau-vao.csv
│ └── da-chuan-hoa.csv
├── checks/
│ └── bang-kiem.md
├── output/
│ ├── bieu-do.png
│ └── bao-cao.md
├── log.txt
└── ho-chieu-nghien-cuu.mdNếu điều kiện của nguồn không cho phép lưu dữ liệu đầu vào, Agent không được bỏ qua im lặng. Tệp hộ chiếu phải ghi rõ chỉ giữ tham số, thời điểm truy xuất và thông tin đủ để truy vết.
Bước 5 — Lấy dữ liệu bằng chương trình, không chép số vào lời giải
Agent viết chương trình Python dùng Vnstock để người dùng tự kết nối tới nguồn bên thứ ba. Chương trình cần tách ba việc:
- lấy dữ liệu;
- chuẩn hoá tên trường, kỳ và đơn vị;
- tính chỉ tiêu phục vụ báo cáo.
Tách các bước giúp tìm lỗi dễ hơn. Nếu số đầu vào sai, kiểm tra bước kết nối và thời điểm truy xuất. Nếu đầu vào đúng nhưng tỷ lệ sai, kiểm tra phép biến đổi và công thức.
Không nên để Agent chép vài con số từ màn hình rồi đưa thẳng vào nhận xét. Con số trong báo cáo phải lần ngược được về một trường trong bảng đã chuẩn hoá.
Bước 6 — Chạy bảy phép kiểm
Trước khi tạo biểu đồ, Agent chạy checklist từ bài 5:
| Phép kiểm | Áp dụng cho tình huống này |
|---|---|
| Đúng đối tượng | Mã và tên doanh nghiệp khớp |
| Loại kỳ | Có đúng tám dòng riêng quý, theo thứ tự |
| Đơn vị | Hai trường tiền tệ cùng đơn vị sau chuẩn hoá |
| Độ đầy đủ | Không thiếu doanh thu hoặc lợi nhuận gộp |
| Dòng trùng | Mỗi kỳ chỉ có một dòng theo cấu hình |
| Thời điểm biết tin | Ghi ngày truy xuất; nếu chỉ mô tả hiện trạng thì nêu rõ không phải phép thử lịch sử |
| Công thức | Tính lại biên lợi nhuận từ hai trường đầu vào |
Nếu không rõ kỳ hoặc đơn vị, trạng thái là Cần xác nhận hoặc Không đạt. Agent dừng ở đây; không vẽ biểu đồ để che một bảng chưa đủ điều kiện.
Bước 7 — Người dùng duyệt bảng trước khi duyệt lời văn
Người làm tài chính nên nhìn ít nhất năm dòng sau:
- nhãn từng quý;
- doanh thu;
- lợi nhuận gộp;
- biên lợi nhuận gộp đã tính;
- ghi chú ngoại lệ.
Câu hỏi cần đặt không phải “biểu đồ đẹp chưa?” mà là:
- các kỳ có cùng cách hiểu không;
- biến động lớn có phản ánh sự kiện thật hay lỗi đơn vị;
- tỷ lệ có khớp với hai trường gốc;
- một quý bất thường có cần tách riêng khi diễn giải;
- phạm vi tám quý có đủ để nói điều đang muốn nói.
Agent có thể hỗ trợ tìm điểm bất thường. Người dùng quyết định điểm đó có ý nghĩa kinh tế gì.
Bước 8 — Viết báo cáo theo chuỗi bằng chứng
Báo cáo nên đi theo thứ tự:
- Câu hỏi và phạm vi — nghiên cứu mô tả điều gì.
- Dữ liệu và giả định — loại báo cáo, kỳ, đơn vị và thời điểm.
- Bảng kết quả — số liệu đã qua kiểm tra.
- Nhận xét — mô tả biến động có dẫn lại kỳ và chỉ tiêu.
- Phép kiểm — mục nào đạt, mục nào còn cảnh báo.
- Giới hạn — dữ liệu và phương pháp chưa cho phép kết luận điều gì.
Một câu nhận xét tốt phải cho người đọc đường quay lại bảng. Ví dụ: “biên lợi nhuận thay đổi giữa các quý” mới chỉ là mô tả; muốn nói nguyên nhân, Agent cần bằng chứng bổ sung chứ không được tự điền một câu chuyện hợp lý.
Bước 9 — Tạo hộ chiếu nghiên cứu
Hộ chiếu là trang tóm tắt để vài tuần sau không phải đọc lại toàn bộ cuộc chat:
Câu hỏi: Doanh thu và biên lợi nhuận gộp FPT trong 8 quý
Thời điểm truy xuất: [ngày giờ]
Nguồn: nguồn bên thứ ba, truy cập qua Vnstock
Cấu hình: config.yaml
Chương trình: run.py
Phiên bản thư viện: [ghi từ môi trường]
Phép kiểm: 7 mục, [số] đạt, [số] cảnh báo
Snapshot: có / không, kèm lý do
Kết quả: output/bao-cao.mdHộ chiếu không chứng minh nghiên cứu đúng. Nó giúp người khác biết phải kiểm tra ở đâu và phân biệt dữ liệu thay đổi với phương pháp thay đổi.
Bước 10 — Chỉ kết thúc khi đạt điều kiện hoàn thành
Agent được coi là hoàn thành khi:
- đủ tám kỳ hoặc đã dừng theo cấu hình;
- loại kỳ và đơn vị được ghi rõ;
- công thức tính lại khớp;
- bảng kiểm có bằng chứng;
- bảng trung gian và báo cáo liên kết được với nhau;
- log không còn lỗi chưa xử lý;
- hộ chiếu chỉ tới đúng tệp;
- phần giới hạn không bị bỏ trống.
Nếu chưa đạt, kết quả là “công việc đang thiếu căn cứ”, không phải “báo cáo sơ bộ” được trình bày như đã xong.
Khi nào nên biến quy trình này thành Agent Skill?
Sau vài lần chạy, những phần ổn định có thể được đóng gói thành skill: tạo cấu trúc thư mục, hỏi các giả định, chạy bảy phép kiểm và lập hộ chiếu. Phần phụ thuộc từng câu hỏi — chỉ tiêu, công thức, ngoại lệ và mức bằng chứng — vẫn do người dùng xác nhận.
Đây là cách harness phát triển từ thực tế: chạy một quy trình nhỏ, quan sát lỗi, chuẩn hoá phần lặp lại rồi mới mở rộng. Không cần bắt đầu bằng nhiều Agent hay một lớp kết nối phức tạp.
Vnstock và gói quyền sử dụng nằm ở đâu?
Bản Cộng đồng giúp người dùng làm quen với lớp công cụ nền tảng và cách xây quy trình cùng Agent. Khi cần các thư viện và hướng dẫn theo nhiệm vụ thuộc bản Mở rộng, bạn có thể xem các gói quyền sử dụng Vnstock.
Tài trợ là hình thức duy trì và phát triển Vnstock. Người tài trợ nhận quyền sử dụng phần mềm mở rộng có thời hạn, hạn mức cao hơn và mức ưu tiên hỗ trợ cao hơn. Công ty cấp quyền sử dụng từng phần mềm; riêng nội dung được kết nối qua vnstock hoặc vnstock_news vẫn chịu điều kiện của nguồn tương ứng.
Giá trị cần đánh giá không phải “AI trả lời được bao nhiêu câu”, mà là quy trình của bạn có ghép được đúng lớp dữ liệu, hướng dẫn và phép kiểm cho công việc thực tế hay không.
Kết luận
Một harness hoàn chỉnh không nhất thiết lớn. Với câu hỏi tám quý, nó chỉ cần tạo ra chuỗi có thể lần lại:
Câu hỏi → cấu hình → dữ liệu → phép kiểm → bảng → nhận xét → hộ chiếu.
AI đảm nhận nhiều thao tác kỹ thuật. Vnstock cung cấp lớp Python và hướng dẫn để Agent làm việc với dữ liệu thị trường Việt Nam. Người dùng giữ quyền quyết định giả định tài chính và đọc lại bằng chứng trước khi chấp nhận kết quả.
—
Vnstock là hệ sinh thái năm phần mềm chạy trên hạ tầng của bạn. Công ty cấp quyền sử dụng từng phần mềm; riêng nội dung được kết nối qua vnstock hoặc vnstock_news vẫn chịu điều kiện, tính sẵn sàng và độ chính xác của nguồn. Nội dung phục vụ nghiên cứu
và tham khảo, không phải khuyến nghị đầu tư.
Mã nguồn: github.com/vnstock-hq · Tài liệu: vnstocks.com
