How Deterministic Controls Turn AI Output Into Reliable Prompt Templates
Bài tóm tắt Salesforce 2026 3. Quy mô lớn Độ khó: Trung bình
Salesforce · 2026 · 3. Quy mô lớn · Độ khó: Trung bình — bài gốc
Bài phỏng vấn dạng hỏi–đáp (series Engineering Energizers) về một tính năng sản phẩm; không có số liệu vận hành ngoài thời gian tạo template. Mọi nhận định là theo Salesforce.
Bối cảnh
- Prompt Builder cho admin tạo prompt dùng lại với placeholder lấy dữ liệu CRM lúc chạy. Viết một template tốt cần biết dữ liệu của org, merge field và cú pháp Jinja, chọn input và data provider, và giữ kết quả hợp lệ theo schema; theo bài, admin có kinh nghiệm mất ít nhất 25 phút.
- Assistive Authoring sinh template từ mô tả bằng lời trong dưới một phút. Lỗi nguy hiểm nhất không phải câu trả lời tệ rõ ràng, mà là template trông đúng nhưng hỏng khi dùng: LLM bịa một field, làm hỏng record ID, trả metadata sai định dạng, hay đi nhầm nhánh.
Thay đổi chính
- Router + ba sub-agent trên Agent Graph (framework điều phối của Agentforce):
generate_template,refine_template, vàclarify_requestcho tin nhắn không phải yêu cầu soạn (không gọi tool, không sinh template). Một prompt lớn làm hết dễ tràn ngữ cảnh và nhận nhầm ý định. - Trạng thái tách khỏi model: biến ngoài (chế độ soạn, loại template, nội dung và JSON hiện có, input) do client gửi; biến trong (node kế, data provider tìm được, output thô) do runtime giữ; bound input chỉ đưa đúng phần trạng thái cần vào mỗi tool, để LLM chỉ diễn giải yêu cầu chứ không phải chép lại payload có cấu trúc.
- Thứ tự tool do graph quyết: hook
beforeReasoninglấy dữ liệu grounding trước vòng LLM; sinh hoặc sửa nhận ngữ cảnh qua trạng thái; bướctransposechỉ mở khi đã có output. Bỏ được một lượt quyết định của model và một vòng gọi tool khỏi đường găng. - Ba ranh giới tất định:
- Định tuyến: model chỉ báo ý định qua biến trạng thái; graph kiểm guard tất định trước khi chuyển node; chế độ tạo hay sửa do client cung cấp.
- Định danh bản ghi: model không bao giờ cầm ID; nó viết theo developer name ổn định, lớp
transposephía server khớp với bản ghi có sẵn và gắn lại đúng ID. - Định dạng output: server bọc metadata trong thẻ sentinel, client chỉ lấy phần được bọc rồi parse JSON; parse lỗi thì trả lỗi, không đoán.
- Grounding như allowlist: nguồn dữ liệu (field SObject, snapshot bản ghi, related list, flow, Apex, retriever, action) mỗi loại một schema và quy ước tên; dịch vụ discovery chuẩn hoá về một dạng kèm tên tham chiếu đúng, chạy trong ngữ cảnh của người dùng hiện tại và lọc theo quyền đọc từng field, rồi thu về tập liên quan; bước sinh coi tập đó là allowlist, không được giả định field tồn tại hay bịa tên API.
- Output chỉ là bản nháp đề xuất: agent không có tool nào lưu, publish hay chạy template. Nội dung AI chuyển thành block có kiểu trong editor, không chèn HTML thô (chặn output thành markup thực thi được); template hiện dạng diff chấp nhận/từ chối, chấp nhận chỉ đổi bản nháp, lưu là một thao tác riêng của người.
Vì sao
- Theo Salesforce, mẫu dùng lại được là tách phần xác suất khỏi phần cấu trúc: LLM diễn giải ý định và viết chữ; graph giữ định tuyến; code phía server giữ định danh; hợp đồng output quyết định client nhận gì.
Bài học cho SWE
- Đừng cho model cầm thứ nó có thể làm hỏng mà không ai thấy (ID mờ, quyết định định tuyến, định dạng); cho nó tên ổn định và để code ánh xạ lại.
- Grounding phải lấy theo quyền của người dùng đang thao tác, rồi dùng làm allowlist cho model.
- Output của model là đề xuất: không có tool hành động, không render thô, người duyệt bằng diff.
- Parse lỗi thì báo lỗi, không sửa đoán.
Liên quan
- Xác thực và phân quyền (authn/authz)
- Cùng công ty: Salesforce 2026 · Salesforce 2026
- Cùng bài toán: Anthropic 2026 (mặc định agent không được hành động) · Figma 2024
#LLM orchestration#Agent Graph#Prompt Builder#router node#deterministic guards#state variables#stable developer names#server-side ID mapping#grounding allowlist#field-level security#sentinel tags#human-in-the-loop
Được nhắc tới trong
Chủ đề (1)
Công ty (1)
Bài tóm tắt (2)