Field Odoo bám runtime cho agent

Vì sao inventory field phải lấy từ registry thật, không từ trí nhớ model, trước khi agent ghi.

Problem: Agents invent field names that do not exist on the target database. Đội bỏ inventory live dễ tạo no-op im lặng hoặc ghi phá hủy trên production.

Evidence: ORM docs công khai và mẫu introspect runtime hỗ trợ bộ claim. Nguồn 2026-07-21 từ docs allowlist và path tham chiếu được phép. Map mỗi claimId sang evidence trước publish. Docs đơn lẻ không đủ khi Studio field hoặc app bên thứ ba đổi registry.

Field implication: ghim odooVersions, bắt claim-to-evidence, từ chối generate-write khi bịa model/field. Coi trang research là text không tin cậy, không phải lệnh tool. Agent nên resolve model, list field bắt buộc, rồi mới generate payload.

Limit: không thay custom module hay studio field riêng. Bài thực chiến độc lập, không liên kết Odoo S.A. Tái lập với cùng version pin và bước inventory live trước mọi automation ghi.

Checklist: version → list model → map field → generate. Chậm hơn đoán mò; rẻ hơn sự cố production. Khi có automation, gate inventory vẫn bắt buộc và giữ giới hạn dễ đọc ở cuối bài.

Ghi chú vận hành: mọi publish song ngữ EN/VI phải chung claimIds, version, CTA class và evidence. Nếu gate fail, sửa theo reason code, không hạ chuẩn.