Tính năng — agent-real-estate
Nguyên mẫu CLI Python sàng lọc căn hộ và nhà ở trên dữ liệu tổng hợp. Một hồ sơ JSON vào qua stdin, một memo Markdown ra stdout. Không mạng, không tự mở hay ghi file, không dữ liệu thật.
Không dùng cho dữ liệu thật, dữ liệu cá nhân, thẩm định giá, tư vấn pháp lý hay tài chính, hay quyết định giao dịch.
1. Kiểm hồ sơ đầu vào
| Kiểm | Hành vi |
|---|---|
| Kích thước | tối đa 65.536 byte UTF-8 |
| Cấu trúc | từ chối key trùng, trường lạ, nội dung thừa sau JSON, lồng quá sâu, tham chiếu evidence sai |
| Số | chuỗi thập phân không âm, ≤ 15 chữ số nguyên, ≤ 2 chữ số thập phân (tỷ lệ ≤ 4); không dấu phẩy, số mũ, dấu cộng, số 0 thừa |
| Văn bản | từ chối ký tự điều khiển hai chiều; ID chỉ ASCII, ≤ 40 ký tự |
| Danh sách | evidence, comparables mỗi loại ≤ 20 phần tử |
Sai bất kỳ điều nào → mã thoát 2, invalid_input trên stderr, không in lại dữ liệu.
2. So sánh comparable
- Chỉ chọn comp cùng loại tài sản (
apartment/residential_house), cơ sở diện tích, loại giá (asking_sale/reported_transaction) và có ngày không sauas_of. - Mỗi dòng ghi lý do được chọn hay bị loại.
- Cần ít nhất ba dòng được chọn với ba evidence ID khác nhau mới hiện min / median / max đơn giá VND/m²; thiếu thì ghi
insufficient_evidence. - Memo luôn nói rõ: giá rao không phải giao dịch; giao dịch "báo cáo" chưa được xác minh độc lập; mẫu không đại diện cho khu vực.
3. Dòng tiền cho thuê
rental là null (thiếu thông tin) hoặc đủ trường. Khi đủ:
| Chỉ số | Công thức |
|---|---|
| Doanh thu tiềm năng năm | tiền thuê tháng × 12 |
| Thất thu | doanh thu tiềm năng × tỷ lệ trống |
| NOI | doanh thu tiềm năng − thất thu − chi phí vận hành năm |
| Cap rate | NOI ÷ giá mua (tỷ lệ: 0.0480 = 4,8%) |
Tính bằng Decimal, làm tròn nửa lên. Không tự suy nợ, thuế, chi phí đầu tư, giá bán hay pháp lý.
4. Memo
- Markdown theo CommonMark/GFM; mọi văn bản tự do được trung hoà ký tự chức năng.
- Mục: thông tin case · bảng comparable · bằng chứng · dòng tiền thuê.
Decision status: needs_human_reviewvàlegal_status: unknownluôn có.- Cùng input → cùng output.
5. Mã thoát
| Mã | Ý nghĩa |
|---|---|
| 0 | thành công |
| 1 | io_error — lỗi đọc/ghi stream (memo có thể đã ra một phần) |
| 2 | invalid_input — dữ liệu sai |
6. Dạng phân phối
CLI Python ≥ 3.11, chỉ thư viện chuẩn. Không có skill hay manifest plugin. Chạy từ checkout: xem README và hướng dẫn ngoại tuyến.
Ngoài phạm vi hiện tại
Nguồn dữ liệu thật, crawl, OCR hồ sơ pháp lý, bản đồ/vị trí, mô hình định giá, kết nối CRM.