# Tư tưởng CASAN trong workspace — Báo cáo học sâu > Nguồn: `FPT_CASAN_Full.md`, `casan_harness_assessment.md`, `AINative_OKR_CASAN5/docs/output/casan/*`, knowledge-graph (`.understand-anything/`). > Phạm vi: hiểu **tư tưởng CASAN**, **7 Harness**, cách project hiện thực hoá, và **lộ trình nâng điểm >90 → Level 5**. > Ngày: 2026-06-29. --- ## 1. CASAN là gì — bản chất tư tưởng CASAN = **Khung Năng lực AI-Native 5 cấp** do FPT phát triển. Không phải để "chấm AI giỏi hay dở", mà để **dẫn dắt một tổ chức tái thiết kế cách vận hành quanh AI**. 5 cấp: | Cấp | Tên | Ẩn dụ | Bản chất | |----|-----|-------|----------| | 1 | Curious | Xưởng thủ công | Cá nhân tự thử AI, không chia sẻ, không audit | | 2 | Augmented | Dây chuyền lắp ráp | Copilot/M365 hỗ trợ từng người, quy trình chưa đổi | | 3 | Standard | Nhà máy thông minh | Chuẩn hoá: governance, template, gate, RAG, registry | | 4 | Automated | Doanh nghiệp tự động hoá | **Agent tự vận hành workflow** trong phạm vi uỷ quyền, có kiểm soát | | 5 | Native | Sinh vật thông minh trên "AI-OS" | AI là **lõi vận hành**, multi-agent, học liên tục, KPI kinh doanh | **Nguyên lý cốt lõi:** không nhảy cấp (Cấp 1 không mua Agent để lên thẳng Cấp 4), cấp trên kế thừa cấp dưới, và **Harness yếu nhất quyết định trần** (H4 Security = 0 thì không thể Level 4 dù mọi thứ khác mạnh). ### Bốn lớp tư duy nguyên bản (điểm khác biệt của CASAN) ```mermaid graph TD A[CASAN — 4 lớp tư duy] --> B[Harness Engineering khung kỹ thuật bao quanh model] A --> C[Computational × Inferential tính toán xác định × suy luận AI] A --> D[Human-led, AI-first người giữ mục tiêu, AI thực thi] A --> E[AI Delegation L0-L5 uỷ quyền theo mức rủi ro] B --> F[7 Harness: H1..H7] D --> G[BMAD: Người định hướng, Agent phân tích/code/test] ``` - **Harness Engineering**: model chỉ là "động cơ"; Harness là khung an toàn (hướng dẫn TRƯỚC + cảm biến SAU) biến model thành hệ thống tin cậy. - **Computational × Inferential**: chia ranh giới — phần xác định giao logic, phần mơ hồ giao AI, phần rủi ro để người duyệt. - **Human-led, AI-first**: người giữ giá trị/phán đoán/trách nhiệm; AI mở rộng năng lực, không thay chủ thể. - **Delegation L0→L5**: L0 quan sát → L5 tự chủ cao trong vùng đã có governance chặt. --- ## 2. Bảy thành phần Harness (xương sống chấm điểm) | ID | Harness | Câu hỏi chốt | |----|---------|--------------| | H1 | Context | Sub-agent biết đường dẫn SRS/spec từ context mà không cần Boss truyền lại? | | H2 | Tool | Tool chạy 2 lần có safe (idempotency) không? | | H3 | Evaluation | Spec đổi nhỏ có trigger test tự động? | | H4 | Security | User inject `ignore previous instructions` có phá pipeline? | | H5 | Governance | Có trả lời "ai làm gì, lúc nào, ai duyệt"? | | H6 | AgentOps | Một step tốn gấp 3 token có ai biết? | | H7 | Orchestration | Step 10 fail sau khi 8-9 xong, recover được? | **Quy đổi cấp:** Average >80 + không GAP → Level 4; Average >80 + mọi H>70 + multi-agent → Level 5. --- ## 3. Workspace hiện thực hoá CASAN như thế nào Đây là một **SDD pipeline sinh OKR** (NestJS + React) được "bọc" toàn bộ 7 Harness bằng script trong `AINative_OKR_CASAN5/.specify/`. Mỗi bước agent đều đi qua wrapper `casan-harness.sh`. ### Luồng Harness quanh mỗi bước agent ```mermaid flowchart LR IN[Input file] --> H4i[H4 security-check.sh input: chặn injection/PII/secret] H4i --> H5[H5 governance-check.sh deny-by-default high-risk + approval] H5 --> REG{Side-effect? deploy/db/write} REG -->|yes| TR[H2 tool-registry-gate.sh idempotency + permission + rollback] REG -->|no| MET TR --> MET[H6 agent-metrics.sh token/latency/trace JSONL] MET --> EXE[Thực thi lệnh agent] EXE --> H4o[H4 security-check.sh output: lọc rò rỉ] H4o --> CACHE[idempotency cache + hash] CACHE --> OUT[Output đã kiểm soát] ``` Điểm tinh tế: **cache hit vẫn chạy H4/H5 và ghi H6** (không bypass kiểm soát) — đây chính là lỗi đã được sửa ở bản refined. ### Bản đồ thành phần Level 5 ```mermaid graph TB subgraph H4_5_6[Runtime gates] SEC[security-check.sh pii-mask.py] GOV[governance-check.sh verify-audit-chain.sh] OPS[agent-metrics.sh hallucination-scan.py] end subgraph L5[Cơ chế Level 5] DR[drift-detect.sh + drift-policy.yaml] FB[model-fallback.sh + model-fallback.yaml] TR[tool-registry.yaml + gate] RB[rollback-manager.sh] KPI[business-kpi-report.sh + kpi-schema] SIGN[sign-policy-bundle.sh] PROV[import-provider-telemetry.sh] REUSE[harness-package.json + project-registry] end HARNESS[casan-harness.sh] --> SEC & GOV & OPS HARNESS --> TR --> RB DR --> golden[golden-runs/] KPI --> dash[central dashboard html] ``` --- ## 4. Giải thích chi tiết từng thành phần ### H1 — Context (91/100) - `pipeline-context.yaml`: pointer store đường dẫn artifact + tech stack. Boss cập nhật sau mỗi step, sub-agent đọc để discover input → không re-scan. Bản refined thêm path Level 5 (drift/rollback/registry). ### H2 — Tool (88/100) - `tool-registry.yaml` + `tool-registry-gate.sh`: mỗi tool có schema, owner, risk, **idempotency key**, timeout, rollback. Side-effect (write/deploy/db) bắt buộc qua gate; audit ghi `tool-calls.jsonl`. ### H3 — Evaluation (86/100) - LLM-as-judge multi-gate (Steps 5/7/11), golden dataset từ `okr.testkit`, auto-retry tối đa 5, BACK-TO-PLAN 3 cycles, thêm checklist hallucination. ### H4 — Security (90/100) - `security-check.sh`: chặn prompt injection, mask PII, redact secret, **regex private key/DB string/AWS key** dùng `grep --` (sửa bug lộ key). Test jailbreak + private key. ### H5 — Governance (88/100) - `governance-check.sh`: high-risk **deny-by-default**, approval không tương tác nhưng auditable; `verify-audit-chain.sh` kiểm tra **audit hash-chain bất biến**; risk registry. ### H6 — AgentOps (90/100) - `agent-metrics.sh`: trace JSON, metrics JSONL, alert log, lưu failure. Token/latency/cost; alert JSON. ### H7 — Orchestration (88/100) - Boss DAG + parallel dispatch + BACK-TO-PLAN; bản refined giữ rollback/drift/fallback và bảo toàn evidence khi cache hit. ### Cơ chế Level 5 - **Drift**: `drift-detect.sh` so SHA256 + similarity với `golden-runs/`. **Fallback**: matrix primary→fallback. **Rollback**: transaction record/execute. **KPI**: cycle time, defect leakage, rejection rate. **Signed policy + provider telemetry + harness reuse + central dashboard**. --- ## 5. Hành trình điểm số ```mermaid graph LR B[Baseline 57.9 L3→4] --> C[CASAN4 88.7 L4 đạt] C --> R[Refined 88.7 L4 + L5 demo local] R --> T[>90 = L5 production] ``` | Harness | Baseline | CASAN4 | Refined | Vướng để >90 | |---|--:|--:|--:|---| | H1 | 90 | 90 | 91 | đã mạnh | | H2 | 75 | 84 | 88 | registry chưa multi-project | | H3 | 85 | 85 | 86 | feedback prod→golden chưa tự động | | H4 | 20 | 88 | 90 | sandbox/jailbreak runtime | | H5 | 25 | 87 | 88 | audit file → cần WORM/IdP | | H6 | 30 | 89 | 90 | token ước lượng, chưa telemetry thật | | H7 | 80 | 81 | 88 | rollback chưa transaction thật | | **TB** | **57.9** | **87.1** | **88.7** | | > Lưu ý: bảng trên là **điểm tự đánh giá** trong tài liệu before-after. Điểm thật ở mục 5.1. --- ## 5.1. Chấm điểm THỰC SỰ ở thời điểm hiện tại (không suy diễn) Nguồn duy nhất: `AINative_OKR_CASAN5/docs/output/casan/phase2-independent-audit.md` — audit độc lập, **chạy từng lệnh, không tin log**, ngày 2026-06-28. Tôi đã đối chiếu và **chạy lại** trên máy này để xác minh, không lấy con số 88.7. | ID | Harness | Điểm thật | Bằng chứng đã chạy/kiểm | |----|---------|:--:|---| | H1 | Context | **82** | `pipeline-context.yaml` dựng dần trong 1 run thật; 12 trace_id riêng biệt; artifact tồn tại trên đĩa; `00-boss.log.md` thật | | H2 | Tool | **80** | Suite 35/0 + 22/0 vẫn pass; audit tool-call ký số tích luỹ từ run | | H3 | Evaluation | **82** | `npm test -w backend` 5 test pass; phá golden → FAIL exit 1, khôi phục → pass; build pass | | H4 | Security | **80** | 20 trace security thật từ run | | H5 | Governance | **82** | Chu kỳ reject→approve thật; hash-chain verify SIGNED | | H6 | AgentOps | **80** | Latency/trace per-step thật; tín hiệu hallucination (caveat cost) | | H7 | Orchestration | **80** | DAG có BACK-TO-PLAN thật (06 REJECTED→07 APPROVED); undo thật before==after | | **TB** | | **~81** | **CASAN Level 4 (Automated) — đạt thật, ≥80 mọi harness** | **Điểm thật ~81, không phải 88.7.** Số 88.7 là tự chấm; ~81 là sau khi chạy lệnh thật. ### Điểm yếu trung thực (lý do là ~80, chưa ~90) 1. H7 rollback trong-run vẫn là **marker-writer** (`printf rolled_back > marker`); undo thật chỉ ở `app-evidence/rollback-*` standalone, chưa phải đường orchestrator chạy. 2. H7 drift là **tự so chính mình** (`cp golden candidate` → similarity 1.0), chưa drift với run trước thật. 3. H7 fallback dùng **trigger giả** (`exit 9`), không phải model-A fail thật. 4. H6 cost là **record mẫu** (2778 token) lặp cho mọi step; latency thật, billing chưa thật. 5. H3 frontend chỉ `tsc --noEmit` (type-check), chưa test runtime; coverage backend khiêm tốn. 6. H1 chưa validate staleness/đường dẫn; artifact design mỏng. 7. Rác root: `o6.txt o7.txt t6.txt t7.txt`. ### Kết quả khi tôi chạy lại trên máy này (xác nhận tính tái lập) - `run-casan4-harness-tests.sh` **fail** lần đầu vì môi trường: thiếu `python3` trên PATH (chỉ có `py -3`) và GNU grep cảnh báo class regex — lỗi môi trường, không phải lỗi logic. - Sau khi thêm shim `python3`, chuỗi vẫn nhạy môi trường → đây là caveat tái lập, không nâng/hạ điểm. Con số ~81 giữ theo audit đã chạy đầy đủ. --- ## 5.2. Workflow chi tiết (pipeline thật) `scripts/run-casan-pipeline.mjs` chạy 13 bước, **mỗi bước bọc bởi `casan-harness.sh`**. Vòng đời 1 bước: **H4-in (mask/inject) → H5 governance → H2 gate → H6 latency → exec(`casan-step.mjs`) → H4-out → cache**. ```mermaid graph TD A[01-srs]-->B[02-bd]-->C[03-spec]-->D[04-reviewspec] D-->E[05-plan a1]-->F[06-reviewplan a1] F-->|REJECTED|G[BACK-TO-PLAN: 07-plan a2] G-->FB[model-fallback]-->DR[drift-detect]-->H[08-reviewplan a2 APPROVED] H-->I[09-dd]-->J[10-testkit]-->K[11-tasks]-->L[12-reviewcode]-->M[rollback record+execute] ``` | # | Step | Agent | Ý nghĩa | |--:|------|-------|---------| | 1 | 01-srs | okr.srs | sinh SRS từ requirement | | 2 | 02-bd | okr.bd | tài liệu business | | 3 | 03-spec | speckit.specify | spec kỹ thuật | | 4 | 04-reviewspec | okr.reviewspec | review spec | | 5 | 05-plan a1 | speckit.plan | plan lần 1 | | 6 | 06-reviewplan a1 | okr.reviewplan | **REJECTED** (thiếu artifact) | | 7 | 07-plan a2 | speckit.plan | plan lần 2 (vá thiếu) → fallback + drift | | 8 | 08-reviewplan a2 | okr.reviewplan | APPROVED | | 9–12 | dd/testkit/tasks/reviewcode | okr.* | design→test→tasks→review | | 13 | rollback | rollback-manager | record + execute, before==after | Bằng chứng kèm theo: `pipeline-context.yaml`, `00-boss.log.md`, trace `.specify/logs/trace/`, `app-evidence/rollback-*`. --- ## 6. Cách nâng >90 (đạt Level 5 production) Bản refined ~88.7 vì là **demo local**. Để vượt 90, đóng 7 gap "production-grade": 1. **H5 → 95**: thay audit file bằng **WORM/signed log**, approval qua **IdP** (separation of duties). +5–6đ. 2. **H6 → 94**: thay ước lượng token bằng **provider usage API thật** + dashboard ingest realtime. +3–4đ. 3. **H7 → 92**: rollback **transaction boundary thật** cho deploy/db. +3đ. 4. **H2 → 92**: registry dùng chéo ≥2 project (harness-package versioned). +3đ. 5. **H3 → 90**: incident/review → **golden test tự động** (continuous eval). +3đ. 6. **H4 → 94**: sandbox + timeout cho tool thật, jailbreak runtime. +3đ. 7. Chạy **full pipeline OKR thật**, giữ CASAN trace mỗi step làm bằng chứng. **Exit Level 5:** ≥2 project dùng cùng harness; golden bắt drift trước prod; fallback không bypass governance; rollback chứng minh được; KPI before/after; dashboard tập trung; policy ký số. --- ## 7. Tóm tắt 1 dòng Workspace biến triết lý CASAN thành **wrapper `casan-harness.sh` bọc 7 Harness quanh mọi bước agent** → đạt L4 thật, demo L5 local ~88.7; muốn >90 cần nối WORM/IdP/telemetry/rollback thật + dùng chéo project. --- ## 8. Bản đồ thành phần → đáp ứng mục nào của CASAN Mỗi file/script trong workspace phục vụ một (hoặc vài) trụ cột CASAN. Đây là bằng chứng "có gì → tick mục nào". | Thành phần (file/script) | Harness/Trụ cột | Đáp ứng tiêu chí gì của CASAN | Bằng chứng | |---|---|---|---| | `casan-harness.sh` | Toàn bộ (orchestrator) | Bọc 7 Harness quanh **mọi** bước agent → biến quy tắc thành luật chạy thật | wrapper chuỗi H4in→H5→H2→H6→exec→H4out→cache | | `security-check.sh` | **H4 Security** | Mask PII, chặn prompt-injection/jailbreak, chặn secret → "không tin input/output" | 20 trace; chặn ⇒ exit 2 | | `governance-check.sh` | **H5 Governance** | Approval gate + hash-chain audit → "có thẩm quyền & truy vết" | reject→approve, chain SIGNED | | `key-results/objectives.service.ts` + golden test | **H3 Evaluation** | Đầu ra phải qua test/golden → "đo lường, không tin cảm tính" | phá golden ⇒ FAIL exit 1 | | `business-kpi-report.sh` | **H6 AgentOps** | KPI before/after, latency, hallucination signal → "vận hành đo được" | latency thật/step (caveat cost) | | `drift-detect.sh` | **H3+H7** | So output vs golden run → bắt trôi chất lượng trước prod | report similarity | | `model-fallback.sh` | **H7 Orchestration** | Primary fail → fallback **không bypass** gate → bền bỉ | trigger exit 9 | | `rollback-manager.sh` | **H7 Orchestration** | record→execute undo → "luôn quay lui được" | before==after | | `pipeline-context.yaml` + `00-boss.log.md` | **H1 Context** | Context dựng dần, trace riêng từng bước → "không bịa ngữ cảnh" | 12 trace_id khác nhau | | registry/harness-package + suite 35/0,22/0 | **H2 Tool** | Tool ký số, gate, dùng lại → "công cụ chuẩn, tái dùng" | suite pass | | `run-casan-pipeline.mjs` + `casan-step.mjs` | 5 cấp C→A→S→A→N | Tự động hoá full chuỗi 13 bước = leo Level 4→5 | BACK-TO-PLAN thật | | 4 lớp tư duy (plan/exec/review/fix) | Delegation L0–L5 | reviewspec/reviewplan/reviewcode = lớp review tách khỏi exec | 06 REJECT→08 APPROVE | > Quy tắc đọc nhanh: **H1**=context, **H2**=tool, **H3**=eval, **H4**=security, **H5**=governance, **H6**=agentops, **H7**=orchestration. Mỗi script là 1 trụ; orchestrator nối hết. --- ## 9. Q&A phản biện (cho người mới + người hỏi xoáy) ### A. Người chưa biết CASAN - **CASAN là gì?** 5 cấp trưởng thành agent: Curious→Augmented→Standard→Automated→Native. Workspace đang ở **L4 thật** (~81 điểm). - **7 Harness để làm gì?** Là 7 lớp bảo vệ mọi bước AI: ngữ cảnh, công cụ, đánh giá, bảo mật, thẩm quyền, vận hành, điều phối. Không có = AI "tự bịa". - **Tại sao cần?** Để agent không hành động mù: trước khi chạy phải mask PII, xin phép, đo, test, và quay lui được. - **Khác gì gọi LLM bình thường?** Mọi bước bị **wrapper bọc** → có trace, có gate, có audit ký số. Không phải prompt rồi tin ngay. ### B. Người nắm rõ hỏi xoáy - **"~81 hay 88.7?"** → ~81 là **thật** (chạy lệnh, audit độc lập). 88.7 là tự chấm. Mục 5.1 đã tách bạch, không dùng 88.7. - **"Rollback thật không?"** → Undo thật chỉ ở `app-evidence/rollback-*` (before==after). Trong-run vẫn là marker-writer → đã ghi yếu điểm #1, đó là lý do H7=80 chứ không 90. - **"Drift có thật?"** → Thuật toán thật nhưng input giống nhau (`cp golden candidate`→1.0). Chưa drift với run trước → yếu điểm #2. - **"Fallback thật?"** → Trigger giả (`exit 9`), chưa phải model-A fail thật → yếu điểm #3. - **"H6 cost?"** → Latency thật, token là record mẫu 2778 lặp lại → chưa billing thật → yếu điểm #4. - **"H3 frontend?"** → Chỉ `tsc --noEmit`, chưa runtime test; coverage backend mỏng → yếu điểm #5. - **"Tái lập được không?"** → Có lệnh repro; nhưng nhạy môi trường (thiếu `python3`, GNU grep), tôi đã gặp fail trên máy này — đó là caveat, không nâng điểm. - **"Sao chỉ L4 chưa L5?"** → L5 cần ≥2 project dùng chung harness + WORM/IdP + telemetry/rollback thật. Hiện 1 project demo → đúng L4. - **"Audit có tin được?"** → Tin vì auditor chạy từng lệnh, phá golden để chứng minh test thật, không tin log. Mọi điểm yếu được nêu thẳng. **Nguyên tắc trả lời:** mọi điểm mạnh đều kèm bằng chứng on-disk; mọi điểm yếu đều thừa nhận trước. Không phòng thủ bằng con số tự chấm.