Mình không cài thêm agent. Mình biến Claude Code thành trợ lý làm việc riêng.
Claude Code 2.1.207 · Desktop 1.20186.1 · đo trên máy thật
▸ Beat 1 · ~1 phút. Mở bằng case study thật, không phải lời hứa. Không so tool. Đây là cách mình đang làm việc — để họ nhìn 2-3 giây rồi vào quick win.
OpenClaw/Hermes giải đúng bài toán nhưng không bằng cách mình chọn.
bán cho người lạ
Phải làm general
Chợ plugin, 152 extension, module "dreaming" để tự nhớ. Vì phục vụ người lạ nên phải đoán mọi việc.
phục vụ một người
Quyết sẵn từng lệnh
Việc đã thành lệnh thì không cần nhớ. CLI + MCP thiết kế có chủ đích cho đời mình.
▸ Beat 2 · ~2 phút. Đặt chúng vào vai tham chiếu, KHÔNG biến buổi học thành so tool. Cả hai đều là cái vỏ gọi xuống Claude Code. Một đối chiếu ngắn rồi đi tiếp.
Chọn đúng nền, đừng mua cái vỏ.
Tiêu chíClaude CodeOpenClawHermes
Model + giáOpus, gói Max cố địnhTự API key, theo tokenTự API key, theo token
Công cụBash gọi mọi CLI152 extension + chợ plugin30 toolset
Bộ nhớ truy hồiIndex phẳng, tự đoánVector + keyword, tự dọnSnapshot lúc mở phiên
Tự nhắn + kênhBắc cầu: Routine + MCPDaemon + nhiều kênhDaemon + nhiều kênh
Bộ nãoClaudeClaude hoặc GPTClaude hoặc GPT
Chọn Claude Code làm nền. Bộ nhớ và tự nhắn là phần mình vá đúng việc sau.
▸ Beat 2b · ~2 phút. Đối chiếu bối cảnh hiện tại. Claude Code thắng ở model+giá, công cụ, bộ não. Bộ nhớ + tự nhắn là chỗ vá — dẫn sang big idea.
Ý tưởng cốt lõi
Biến việc của mình thành lợi thế.
“CLI và MCP được quyết sẵn cho việc của mình — không phải một máy tính chung cho mọi người.”
Họ làm general vì phục vụ người lạ. Mình phục vụ một người, nên chọn sẵn một lệnh cho từng việc.
▸ Beat 2c · ~2 phút. Đây là luận điểm gốc. Không phải "general computer use" — mà là verb quyết sẵn cho đúng công việc của bạn. Cả buổi build quanh câu này.
Đây là Personal Operator của bạn.
Một lệnh chưa phải trợ lý. Cả vòng này mới là.
▸ Beat 2d · ~2 phút. Bức tranh toàn cảnh. Đi qua từng node một lần cho họ có bản đồ. Cả buổi sau là zoom vào từng phần của luồng này.
Một agent chỉ đáng giá khi việc được làm xong.
Không phải khi nó thông minh. Không phải khi nó tiết kiệm token. Khi việc xong.
▸ Beat 3 · ~1 phút. Tạo nhu cầu cho một kết quả cụ thể. Dẫn thẳng vào quick win — họ sắp thấy "việc xong" nghĩa là gì trong 10 phút tới.
Peak 1 · quick win · ~10 phút
Chạy thử một việc an toàn trước, chưa cần tin framework.
# read-only · sample data · không đụng gì thật
$ ./bin/operator-verb weekly-close --json
▸ Beat 4 · ~4 phút. Kết quả TRƯỚC framework. Chạy verb thật trên sample board. LUẬT CỨNG: read-only / sample — không bao giờ ghi Trello/order/member. Thắng lợi đầu không được thành sự cố đầu.
Trợ lý đáng tin tạo kết quả kiểm được, không chỉ trả lời hay.
Output có cấu trúc, đọc được bằng máy, và có luật an toàn ghi thẳng trong code.
{
"total": 6,
"stuck": [
{ "name": "Book the venue", "days_idle": 15 },
{ "name": "Legal review", "days_idle": 19 }
],
"by_status": { "todo": 2, "review": 2, "in-progress": 2 }
}
# days_idle động · nguồn: sample-data/board.json · KHÔNG ghi hệ thống thật
▸ Beat 5 · ~2 phút. Structured output = agent gọi được, không phải người đọc text. Chỉ ra chỗ nói "sample data", nhấn: không có gì thật bị đụng.
Một lệnh có sẵn cho việc lặp lại tốt hơn tự mò.
tự mò
43–65 lượt · 2.5–2.7M token
Mò credentials, thử curl, sai, thử lại. Yêu cầu thứ 3 quá 9 phút rồi bỏ cuộc. 2/3 việc xong.
lệnh sẵn
2 lượt · ~6 giây / yêu cầu
Gõ lệnh, đọc kết quả. 3/3 việc xong trong 17 giây tổng.
Điểm không phải tiết kiệm token. Điểm là: việc này được làm xong.
▸ Beat 6 · ~3 phút. Nhấn "hoàn thành việc", KHÔNG bán "tiết kiệm $X". Con số 29x là phụ; thứ người ta sợ thật là giao việc rồi AI loay hoay không xong. Số đo: 31-so-do-token.md.
Nhưng một lệnh chạy được chưa phải trợ lý.
Nó chưa biết khi nào chạy, đọc gì trước, xin xác nhận ở đâu, lưu kết quả vào đâu.
▸ Beat 7 · ~1.5 phút. Mở câu hỏi kế tiếp: chỉ tích nhiều command là đủ? Verb là hạt giống đúng, nhưng còn thiếu bốn thứ. Bốn thứ đó là phần còn lại của buổi.
Kit là một Claude Code project không phải bộ file để chép tay.
Clone về, mở trong Claude Code. CLAUDE.md và skill load ngay. Không có bước copy X đến Y.
▸ Beat 8 · ~2 phút. Giới thiệu đúng bản kit cuối. Nguyên tắc số 1: copy-and-run. Script chỉ lo hai thứ thật sự cần: memory hook (đường tuyệt đối) + đưa verb lên PATH.
Đặt file đúng chỗ để Claude Code tự dùng.
personal-operator-kit/ ← LÀ một Claude Code project
├── CLAUDE.md← load ngay (operating context)
├── .claude/skills/workflow-runner/SKILL.md ← skill tự load
├── .claude/settings.json← hook + env (gitignored)
├── bin/operator-verb ← verb (read-only, sample)
├── hooks/ memory/ ← vòng bộ nhớ
└── docs/ ← file người-đọc (không CC-load)
▸ Beat 9 · ~2 phút. Hai loại file, không được lẫn. File CC-load phải đúng chỗ (CLAUDE.md, .claude/skills, settings.json); file người-đọc để docs/. Bản đầu đánh số 00-05 rồi đẩy SKILL.md ra khỏi chỗ CC tìm — hỏng.
Bạn cần một đường đi, không phải cây thư mục.
README dẫn theo trải nghiệm · cây thư mục theo hệ thống · đừng trộn
▸ Beat 10 · ~1.5 phút. Kết quả trước, khung sau. Người mua đang mệt vì nhiều app; bắt nuốt 4 khái niệm trước khi thấy gì chạy = bức tường. README theo 6 bước trải nghiệm.
Phần 2 · việc chạy trọn vẹn
Biến một lệnh thành trợ lý riêng: một vòng làm việc trọn vẹn.
ý định → skill → bối cảnh → CLI/MCP → kết quả → nhớ lại
▸ Beat 11 · ~3 phút. Reveal vòng vận hành — đây là cái biến command thành operator. Skill workflow-runner nạp context + workflow, chọn tool, dừng ở chỗ cần xác nhận, ghi proof đúng nơi.
Context cho Claude biết nó đang vận hành cho ai và theo luật nào.
CLAUDE.md · bạn là ai, làm việc kiểu gì
operating contract · ranh giới duyệt
read-only chạy tự do · write phải hỏi
▸ Beat 12 · ~2 phút. Context = CLAUDE.md + operating-contract.md. Không có nó, agent đoán. Có nó, agent biết chỗ nào được chạy, chỗ nào phải dừng xin phép.
Workflow quyết định thế nào là "xong".
trigger
steps
approval boundary
kết quả
done-when
Không có workflow brief, skill không tự bịa quy trình. Nó dừng và hỏi bạn điền.
▸ Beat 13 · ~2 phút. workflow-brief.md = hợp đồng "xong". Trigger, steps, chỗ xin duyệt, proof ghi đâu, khi nào coi là xong. Skill đọc brief; không có brief thì không chạy.
Skill là đầu điều phối. Lệnh là tay thực thi.
verb (surface)
Làm một việc xác định
Cùng input, cùng output. Không suy nghĩ. `operator-verb weekly-close`.
skill
Biết KHI NÀO chạy
Đọc gì trước, xin xác nhận ở đâu, proof ghi đâu. `workflow-runner` nối chúng lại.
▸ Beat 14 · ~2 phút. Giữ rõ khác biệt — gộp lại là biến kit thành thư viện command, mất điểm bán "operator". Verb = tay; skill = đầu. workflow-runner là lớp nối.
Demo
Cùng lệnh đó, giờ đã thành một việc chạy trọn vẹn.
# yêu cầu weekly close an toàn / đã sanitize
> "chạy weekly close cho mình"
skill đọc brief → đọc CLAUDE.md + contract
→ gọi operator-verb --json → dừng ở chỗ write
→ xin duyệt → ghi proof
▸ Beat 15 · ~3 phút. Cho thấy SỰ CHUYỂN HÓA, không phải một ví dụ khác. Chính verb ở Peak 1, giờ bọc trong skill. Read-only chạy thẳng; chỗ write dừng xin duyệt.
CLI, MCP hay model? Không chọn theo trend.
CLI
việc deterministic mình sở hữu
Cùng input, cùng output. Bạn nắm code.
MCP
một việc chạy được ở ngoài
Dịch vụ bên thứ ba đã có sẵn.
model
phán đoán thay đổi
Việc cần suy xét, không cố định được.
▸ Beat 16 · ~2.5 phút. Dạy judgment khi chọn surface. tool-sourcing ladder: CLI cho việc mình sở hữu + deterministic; MCP cho capability ngoài; giữ ở model khi phán đoán còn thay đổi.
Browser là fallback. neo và CLI-Anything là đường nâng cao.
web app đã login, không API → neo
phần mềm desktop GUI → CLI-Anything
một phút quyết · không cài, không demo
Không phải core setup. Chỉ mở ra khi CLI và MCP thật sự không với tới được.
▸ Beat 17 · ~1.5 phút. Đặt ranh giới cho tool nâng cao — decision guide một phút, KHÔNG cài hay demo. neo/CLI-Anything trỏ về research (26). Đừng biến thành workshop cài đặt.
Đơn vị thực hành
Workflow + nơi làm việc + skill tạo thành trợ lý riêng.
Chọn một việc bạn làm lặp lại. Làm nó chạy trọn vẹn với trợ lý.
▸ Beat 18 · ~2 phút. Đơn vị thực hành = một vertical slice, KHÔNG phải "một CLI". Chọn recurring job → dùng ladder quyết surface → dựng slice đầu tiên.
Việc chạy trọn vẹn cần ranh giới an toàn và kết quả kiểm được.
bắt đầu
Read-only / sample trước
Chạy thật, không đụng hệ thống thật. Xác nhận vòng vận hành đúng.
rồi mới
Write phải có confirmation
Mọi thao tác ghi vào hệ thống thật: dừng, cho xem sẽ đổi gì, chờ yes.
▸ Beat 19 · ~2 phút. Ngăn tự động hóa thiếu kiểm soát. Read-only/sample trước để test luồng; write luôn có confirmation. Đây là guardrail baked vào code, không phải lời khuyên.
Memory là phần còn lại của những gì chưa biến thành verb.
▸ Beat 20 · ~1.5 phút. Đặt memory đúng vai — thêm SAU khi workflow đã chạy thật. Việc đã thành lệnh thì không cần nhớ. Memory chỉ giữ durable context còn lại.
Memory loop giữ context bền vững, không ghi tự do.
Kiến trúc bị ép bởi hợp đồng hook: PreCompact chỉ veto, nên phải ghi ở Stop, nạp lại ở SessionStart.
đã verify riêng lẻ · vòng clean-install Desktop end-to-end = khe hở còn lại
▸ Beat 21 · ~3 phút. DẠY KIẾN TRÚC + giới hạn cài đặt. KHÔNG trình bày như live proof. Đã verify riêng: hook bắn trên Desktop, merge đúng, fact có nhãn, sống qua /compact ở phiên trước. CHƯA verify: clone sạch → install → phiên Desktop thật → dạy → nén → nhớ lại, liền một mạch. TODO: nếu Tony gõ vài câu trong Desktop pass trước buổi → slide này thành live proof 3 phút (dạy fact → /compact → hỏi lại). Mặc định: framing trung thực.
Kit giúp bạn tránh những bẫy đã trả giá.
preflight kiểm máy ở nhà
merge idempotent, backup trước
TRAPS trỏ đúng bẫy theo từng bước
19 bẫy không Google ra được. Ví dụ: đếm lượt theo session thì hook chạy hoài mà không bao giờ ghi.
▸ Beat 22 · ~2 phút. Giá trị của preflight + install + TRAPS. Mỗi bẫy = một buổi tối ai đó trả giá. Kit không bắt đọc hết 19 bẫy — README trỏ đúng bẫy theo việc đang làm. Nguồn: 40-cac-bay-ky-thuat.md.
Peak 3 · feedback loop
Workflow chỉ compound khi được chấm theo kết quả.
Playbook có track record · held / partial / broke
▸ Beat 23 · ~3 phút. Làm feedback loop trở nên hữu hình. Retrospective chỉ ĐỀ XUẤT sửa memory/skill/SOP; chủ hệ thống mới approve/reject. Track record chấm mỗi lần chạy: held/partial/broke.
Đừng tự động hóa phán đoán. Hãy tự động hóa nhịp học.
▸ Beat 24 · ~2 phút. Trả lời claim "self-improvement" của Hermes. Hermes tự bảo LLM cứ sửa skill mỗi phiên, bỏ qua tín hiệu dùng thật — tự học sai. Ở đây: retrospective đề xuất, chủ hệ thống duyệt hoặc từ chối.
Thứ bạn mang về là một đường đi, không phải một kho tài liệu.
memory và review đến SAU · không phải bước đầu
▸ Beat 25 · ~2 phút. Chuyển take-home thành hành động cụ thể. Không mang về 8 folder để đọc. Mang về một đường: chuẩn bị máy → gõ một lệnh → Claude tự làm trọn → xem kết quả → nhớ → chấm lại.
Không cần một agent biết mọi thứ. Cần một trợ lý riêng biết việc của bạn.
quay lại verb ở Peak 1 · giờ nó là một compound workflow
▸ Beat 26 · last slide, hold for Q&A. Khép lại câu hỏi mở đầu. Quay về chính verb ở slide 4 — giờ audience hiểu nó như một compound workflow, không chỉ một command chạy được. Đừng auto-advance.