18 KiB
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)
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
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
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 ghitool-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ùnggrep --(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.shkiể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.shso SHA256 + similarity vớigolden-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ố
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)
- 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. - 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. - H7 fallback dùng trigger giả (
exit 9), không phải model-A fail thật. - H6 cost là record mẫu (2778 token) lặp cho mọi step; latency thật, billing chưa thật.
- H3 frontend chỉ
tsc --noEmit(type-check), chưa test runtime; coverage backend khiêm tốn. - H1 chưa validate staleness/đường dẫn; artifact design mỏng.
- 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.shfail lần đầu vì môi trường: thiếupython3trê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.
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":
- H5 → 95: thay audit file bằng WORM/signed log, approval qua IdP (separation of duties). +5–6đ.
- H6 → 94: thay ước lượng token bằng provider usage API thật + dashboard ingest realtime. +3–4đ.
- H7 → 92: rollback transaction boundary thật cho deploy/db. +3đ.
- H2 → 92: registry dùng chéo ≥2 project (harness-package versioned). +3đ.
- H3 → 90: incident/review → golden test tự động (continuous eval). +3đ.
- H4 → 94: sandbox + timeout cho tool thật, jailbreak runtime. +3đ.
- 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.