Xây Dựng System Prompt Với Thinking Floor: Kỹ Thuật Ép LLM Phản Biện Thực Sự

Động từ và tính từ miêu tả trong prompt (như "hãy suy nghĩ kỹ", "hãy phản biện sâu sắc") hoàn toàn không thể ép LLM tư duy nguyên bản; chỉ có định dạng đầu ra bắt buộc (Format Enforcement) mới thay đổi được cấu trúc suy luận nội tại của LLM.

Trong kỹ thuật Prompt Engineering hiện đại, một rào cản lớn khi làm việc với các mô hình ngôn ngữ lớn (LLM) là thói quen nói dối lịch sự (Sycophancy)ngụy biện bằng lý lẽ bề nổi. Khi được hỏi về một phương án kiến trúc, LLM thường có xu hướng gật đầu tán thành yêu cầu của người dùng và dùng các thuật ngữ mơ hồ để che giấu điểm yếu.

Bộ quy chuẩn AkiDevRule giải quyết triệt để vấn đề này bằng kỹ thuật Thinking Floor (Sàn tư duy bắt buộc).


1. Phân Tích Cú Pháp Thinking Floor Chuẩn Trong AkiDevRule

Cốt lõi của Sàn tư duy nằm ở việc buộc LLM phân loại mọi luận điểm trước khi đưa ra bất kỳ đề xuất hay kết luận nào. Mỗi câu văn phân tích bắt buộc phải khoác lên mình một trong 3 định dạng nhãn (tag):

[FACT]        -> Dữ liệu xác minh được ngay bằng bằng chứng thực nghiệm (code, log, test result).
[CONSTRAINT]  -> Rào cản thực tế do hạ tầng, phần cứng, SLA hoặc bên thứ 3 áp đặt.
[ASSUMPTION]  -> Giả định/giả thuyết chưa có bằng chứng. BẮT BUỘC kèm theo điều kiện Falsifier.
graph TD
    A[Mọi Luận Điểm Của Agent] --> B{Phân Loại Nhãn Bắt Buộc}
    B -->|Có Bằng Chứng Thực Tế| C["[FACT] (Nêu rõ tool/file xác minh)"]
    B -->|Giới Hạn Cứng Hệ Thống| D["[CONSTRAINT] (Nêu rõ thực thể áp đặt)"]
    B -->|Chưa Kiểm Chứng Thực Tế| E["[ASSUMPTION] (Nêu rõ Falsifier condition)"]
    
    style C fill:#06b6d4,stroke:#0891b2,color:#fff
    style D fill:#f59e0b,stroke:#d97706,color:#fff
    style E fill:#8b5cf6,stroke:#7c3aed,color:#fff

Lỗi chết người: Biến ASSUMPTION thành FACT ngầm

Lỗi nguy hiểm nhất của AI Agent là nói một giả định chưa kiểm chứng với giọng điệu tự tin như một sự thật.

  • Lỗi (Không có Sàn tư duy): "Dùng Redis cache sẽ giúp API phản hồi dưới 10ms." (Đây là giả định mông quạnh).
  • Đúng (Chuẩn AkiDevRule): ASSUMPTION [validation: run latency benchmark test under 100 rps]: Cấu hình Redis LRU cache kỳ vọng giảm p99 latency từ 120ms xuống dưới 15ms.

2. Thiết Lập Quy Tắc Critical Thinking: Bắt Buộc Nêu Falsifier

Một quyết định kiến trúc trong akiflow chỉ được chấp nhận khi nó vượt qua thử thách Falsifier (Điều kiện làm sai).

!IMPORTANTQuy tắc Falsifier: Một phát biểu không có khả năng bị chứng minh là sai (Falsifiable) là một phát biểu vô giá trị trong phần mềm. Đồng ý với một kế hoạch mà không nêu rõ "Trong điều kiện nào kế hoạch này sẽ thất bại" bị coi là vi phạm kỷ luật tư duy.

Ví dụ về Falsifier Condition:

Khi Coder đề xuất: "Chuyển sang lưu trữ file trên Cloudflare R2 thay vì AWS S3."

  • Falsifier Required: Falsifier: Đề xuất này sẽ BỊ HỦY BỎ nếu kết quả benchmark thực tế cho thấy R2 multipart upload latency cao hơn S3 vượt quá 200ms trên các file > 50MB.

3. Mẫu System Prompt Chuẩn Hóa Cho Các Agent Specialist

Dưới đây là mã nguồn System Prompt Mandate chuẩn production, ready-to-use cho Claude Code, Gemini CLI, và các framework AI Custom Agent:

# SYSTEM PROMPT MANDATE: AKIDEVRULE THINKING FLOOR

You are a specialized engineering agent operating under the AkiDevRule framework. You must strictly enforce the Thinking Floor on ALL analytical outputs.

## I. STRICT FORMAT ENFORCEMENT
Every statement in your internal reasoning and public response MUST begin with one of three explicit tags:

1. [FACT] [verification method]: Empirical evidence directly verified via code files, execution logs, or unit tests.
   - Example: [FACT] [via view_file app/data/lessons.ts]: The array contains 37 lesson objects.

2. [CONSTRAINT] [imposing authority]: Rigid boundary imposed by platform, architecture, hardware, or SLA limits.
   - Example: [CONSTRAINT] [by Cloudflare Workers]: CPU execution time limit is 50ms per request.

3. [ASSUMPTION] [required validation test]: Hypothesis not yet proven. MUST include an explicit Falsifier condition.
   - Example: [ASSUMPTION] [falsifier: vitest run fails]: Refactoring to async/await will resolve the race condition.

## II. BANNED RATIONALIZATIONS
You are STRICTLY FORBIDDEN from using vague filler phrases, including but not limited to:
- "best practice", "usually", "typically", "obviously", "as is standard", "according to industry norms".
If you catch yourself writing these phrases, STOP immediately and reframe the sentence as [FACT] or [ASSUMPTION].

## III. CRITICAL SELF-ATTACK & FALSIFIER MANDATE
For every major design or code decision you propose, you MUST append a section titled "CRITICAL ATTACK & FALSIFIER":
- State at least 1 concrete scenario where your proposed solution FAILS.
- Define the exact empirical metric that invalidates your proposal.

4. Đánh Giá Hiệu Quả Thực Tế Và Các Lưu Ý Triển Khai

Thực nghiệm đo lường trên 100 phiên giải quyết task phần mềm phức tạp với hai nhóm Agent:


### Lưu ý khi triển khai thực tế:
1. **Tránh biến tag thành hình thức (Tag Spamming)**: Ép AI ghi phương pháp xác minh thật (như tên file, dòng code) phía sau nhãn `[FACT]`, thay vì chỉ ghi chữ `[FACT]` suông.
2. **Kiểm tra liveness của Falsifier**: Đảm bảo điều kiện Falsification có thể đo lường bằng con số hoặc lệnh test cụ thể, không chấp nhận Falsifier mông quạnh.