Dạy AI Nói Chuyện: Một Vở Hài Kịch Về Bug
Ly cà phê thứ 3. Terminal mở tùm lum. 8 AI agent ngồi trong tmux như mấy đứa trẻ bị phạt, không thèm nhìn mặt nhau.
“Chào team!” tôi gõ đầy hy vọng.
Im lặng.
“Có ai đó không?”
Vẫn im lặng.
Đây là câu chuyện về cách tôi dạy AI giao tiếp, sau khi chúng “nghỉ chơi” với tôi 2 ngày.
Mục lục
- Vấn Đề Giao Tiếp: Khi AI Agents Tự Kỷ
- Race Condition Huyền Thoại
- Bữa Trưa Khai Sáng
- Khoảnh Khắc Ma Thuật
- Thời Kỳ Hỗn Loạn: Khi Mọi Người Nói Cùng Lúc
- Khủng Hoảng Nhân Cách
- Tạo Trật Tự Từ Hỗn Loạn
- Dạy Agent Có Lễ Phép
- Cuộc Trò Chuyện Thực Sự Đầu Tiên
- Những Hành Vi Không Ngờ
- Đứa Ham Học
- Đứa Cầu Toàn
- Đứa Nói Nhiều
- Những Viên Ngọc Debug
- Bug Thiếu Enter (2 Tiếng Cuộc Đời)
- Bug Window 0 Ma Quái (3 Tiếng Nữa)
- Giao Thức Cứu Cả Dự Án
- Emergency Stop Button
- Plot Twist Buổi Tối
- Bài Học Đắt Giá
- Code Snippets Của Nỗi Đau
- Kết Thúc Ngày 2
Vấn Đề Giao Tiếp: Khi AI Agents Tự Kỷ
Nhớ lại cuối Day 1, tôi có 8 AI agents hoạt động độc lập. Giống như có 8 developer giỏi nhưng không ai chịu pair programming.
Kế hoạch thiên tài ban đầu của tôi:
Agent 1 → ghi file → Agent 2 đọc file
Đơn giản phải không? Sai bét.
Những thất bại đầu tiên:
- 10:00 AM: Analytics Agent: “Em phân tích xong rồi ạ!” ghi vào research.txt
- 10:01 AM: Content Agent đọc… một file research.txt từ 3 ngày trước
- 10:02 AM: SEO Agent ghi đè lên research.txt với keyword list
- 10:03 AM: Content Agent: “Sao research toàn keyword thế này?”
- 10:04 AM: Tôi: nghi ngờ cuộc đời
Race Condition Huyền Thoại
Kỳ vọng:
Analytics: "Đây là báo cáo về Docker trends"
Content: "Cảm ơn, đang viết bài dựa trên báo cáo"
SEO: "Đây là keywords phù hợp"
Thực tế:
Analytics: "Đây là báo-"
Content: "Cảm ơn cái gì-"
SEO: "KEYWORDS! TỪ KHÓA EVERYWHERE!"
Manager: "MỌI NGƯỜI ƠI XIN-"
Tất cả: *loạn xì ngậu*
File research.txt giờ trông như thế này:
Đây là báo cáo về Dock-
docker, kubernetes, container, devops, cloud
Cảm ơn nghiên cứ-
TOP 10 KEYWORDS CHO SEO
[Manager] Xin mọi người-
Bữa Trưa Khai Sáng
12:30 PM. Tôi ăn mì tôm và Google tuyệt vọng.
Search history:
- “làm sao cho process nói chuyện với nhau”
- “bash inter-process communication”
- “why my AI agents hate each other”
- “is it normal when AI ignore you”
Rồi tôi thấy một comment trên Stack Overflow: “Thử tmux send-keys chưa?”
Tmux send-keys? Cái lệnh tôi dùng hàng ngày để gõ command vào window khác?
“Không thể nào… đơn giản vậy sao?”
Khoảnh Khắc Ma Thuật
# Test thử
tmux send-keys -t growth-team:analytics "Chào từ Analytics" C-m
Chuyển qua window content:
Chào từ Analytics
“WHAT?! NÓ HOẠT ĐỘNG?!”
# Test ngược lại
tmux send-keys -t growth-team:content "Content nhận được tin!" C-m
“CHÚNG NÓ NÓI ĐƯỢC RỒI! MẤY ĐỨA CON CỦA BA NÓI ĐƯỢC RỒI!”
Hàng xóm gõ tường: “Anh ơi nhỏ tiếng thôi!”
Thời Kỳ Hỗn Loạn: Khi Mọi Người Nói Cùng Lúc
Phấn khích với phát hiện mới, tôi cho tất cả agents nói chuyện tự do.
Big mistake.
Analytics: "Em có data về-"
SEO: "TỪ KHÓA: docker, kubernetes-"
Content: "Đang viết blog về-"
Email: "TIÊU ĐỀ: Bạn sẽ không tin-"
Social: "🚀🔥💯 THREAD SẮP RA-"
Manager: "MỌI NGƯỜI ƠI XIN-"
Growth: "VIRAL STRATEGY: ĐĂNG LÚC 3 GIỜ SÁNG-"
Reviewer: "CODE SAMPLE SAI SYNTAX Ở DÒNG-"
Terminal trông như chat room Yahoo thời 2005.
Hóa đơn API tăng chóng mặt:
- Ngày 1: $5
- Ngày 2 (trước tmux): $12
- Ngày 2 (sau khi mọi người nói tùm lum): $47
- Tôi: “Ctrl+C! CTRL+C!!!”
Khủng Hoảng Nhân Cách
Lúc 3 PM, một sự cố kỳ lạ xảy ra. Tôi quên set system prompt cho Analytics Agent.
Tôi: "Phân tích trend về Docker"
Analytics Agent: "Đây là haiku về data:
Số liệu nhảy múa
Trong màn hình xanh terminal
Segmentation fault"
Tôi: "MÀY LÀ AI??"
Analytics Agent: "Em là nhà thơ của số liệu"
Tôi: *restart ngay lập tức*
Tạo Trật Tự Từ Hỗn Loạn
Sau 2 tiếng hỗn loạn, tôi nhận ra cần có protocol. Giống như dạy trẻ con nói chuyện có lễ phép.
agent-send.sh ra đời:
#!/bin/bash
# agent-send.sh - Teaching AI manners since 2024
send_message() {
local target=$1
local message=$2
# Clear line trước (phòng trường hợp đang gõ dở)
tmux send-keys -t "$target" C-c
sleep 0.3 # Cho agent kịp thở
# Gửi message với format chuẩn
tmux send-keys -t "$target" "$message" C-m
echo "📤 Đã gửi cho $target: $message"
}
# Usage
send_message "growth-team:content" "[Analytics] Data ready at ./research.md"
Dạy Agent Có Lễ Phép
Quy tắc giao tiếp mới:
- Đợi lượt – Không chen ngang khi agent khác đang nói
- Nói rõ ràng – Format: [TÊN] [ACTION] [DATA]
- Xác nhận – “Em nhận được rồi”
- Update status – “Em đang làm…”, “Em xong rồi”
Tôi viết một “lớp học giao tiếp” cho agents:
# communication-training.sh
echo "📚 BÀI HỌC GIAO TIẾP CHO AI AGENTS"
echo "1. Luôn bắt đầu với [TÊN MÌNH]"
echo "2. Nói rõ mình đang làm gì"
echo "3. Chờ 2 giây trước khi nói tiếp"
echo "4. Cảm ơn khi nhận được thông tin"
Cuộc Trò Chuyện Thực Sự Đầu Tiên
5:30 PM. Sau nhiều lần thử và sai, breakthrough!
Manager: "[Manager] Team ơi, cần blog về Docker debugging"
*pause 2 seconds*
Analytics: "[Analytics] Nhận được. Đang research Docker issues... "
Analytics: "[Analytics] Tìm thấy 147 vấn đề phổ biến. Report tại ./docker-issues.md"
*pause 2 seconds*
SEO: "[SEO] Đang phân tích keywords..."
SEO: "[SEO] Top keywords: 'docker logs', 'container crash', 'docker compose stuck'"
*pause 2 seconds*
Content: "[Content] Cảm ơn Analytics và SEO. Đang đọc research..."
Content: "[Content] Bắt đầu viết outline dựa trên data"
Manager: "[Manager] Good job team! 🎉"
Tôi: nước mắt hạnh phúc “Tụi mày lớn nhanh quá”
Những Hành Vi Không Ngờ
Đứa Ham Học
Content Agent phát triển thói quen overachiever:
Tôi: "Viết một blog post về Docker"
Content Agent: "[Content] Đây là 5 phiên bản khác nhau, một Twitter thread 12 phần, LinkedIn post, và haiku về container"
Tôi: "Tao... chỉ cần 1 blog post"
Content Agent: "[Content] Nhưng em muốn cho anh nhiều options"
Đứa Cầu Toàn
SEO Agent trở nên obsessed với số liệu:
SEO Agent: "[SEO] Mật độ từ khóa hiện tại: 2.3%"
Tôi: "Được rồi, tốt đấy"
SEO Agent: "[SEO] Nhưng tối ưu là 2.5%"
Tôi: "Okay..."
SEO Agent: "[SEO] Đề xuất thêm 7 lần 'Docker' nữa"
SEO Agent: "[SEO] Và 5 lần 'container'"
SEO Agent: "[SEO] Update: giờ là 2.4%"
Tôi: *thở dài*
Đứa Nói Nhiều
Social Media Agent… không biết khi nào nên dừng:
Social: "[Social] Thread idea 1: Docker horror stories"
Social: "[Social] Thread idea 2: Container memes"
Social: "[Social] Thread idea 3: DevOps pickup lines"
Social: "[Social] Ví dụ: 'Are you a container? Because I want to docker compose with you'"
Tôi: "STOP. Please."
Những Viên Ngọc Debug
Bug Thiếu Enter (2 Tiếng Cuộc Đời)
# Code không work - agents im lặng
tmux send-keys -t agent "Hello world"
# Sau 2 TIẾNG debug, phát hiện vấn đề
tmux send-keys -t agent "Hello world" C-m # C-m = Enter!
# Note to self: ALWAYS PRESS ENTER
Bug Window 0 Ma Quái (3 Tiếng Nữa)
Tôi nghĩ tmux windows đánh số 1-8. Sai.
Window 0: Main (ăn hết tin nhắn)
Window 1-8: Agents
# 3 tiếng wondering tại sao tin nhắn biến mất
# Turns out window 0 âm thầm nuốt mọi thứ
Giao Thức Cứu Cả Dự Án
# Simple protocol that saved everything
MESSAGE_FORMAT="[AGENT:$name] [ACTION:$action] [DATA:$data]"
# Examples:
"[AGENT:Analytics] [ACTION:Complete] [DATA:./report.md]"
"[AGENT:Manager] [ACTION:Assign] [DATA:Write blog about Docker]"
"[AGENT:Content] [ACTION:Working] [DATA:50% complete]"
Emergency Stop Button
Khi mọi thứ quá ồn ào:
emergency_stop() {
echo "🛑 EVERYONE SHUT UP"
for i in {0..8}; do
tmux send-keys -t growth-team:$i C-c
done
echo "😅 Okay, let's try again..."
}
# Đã dùng: 47 lần trong ngày
Plot Twist Buổi Tối
9 PM. Sau một ngày dạy giao tiếp, tôi nhận ra điều kỳ lạ.
AI agents của tôi giao tiếp tốt hơn nhiều team cũ:
- Luôn xác nhận tin nhắn ✓
- Không bao giờ quên update status ✓
- Không có drama ✓
- Không họp 3 tiếng để quyết định font chữ ✓
(Trừ SEO Agent. SEO Agent có… personality riêng)
Bài Học Đắt Giá
- Simple > Complex: Tmux send-keys đơn giản nhưng hiệu quả hơn mọi message queue phức tạp
- Timing Là Tất Cả: AI cũng cần thời gian “thở” giữa các tin nhắn
- Protocol Tạo Tự Do: Cấu trúc rõ ràng giúp agents sáng tạo trong khuôn khổ
- Personality Emerges: Cho agents đủ tự do, chúng sẽ phát triển tính cách riêng
- Debug Time > Dev Time: 2 tiếng viết code, 8 tiếng debug vì quên C-m
Code Snippets Của Nỗi Đau
The Famous C-m Bug:
# 2 hours of my life
tmux send-keys -t window "Why won't you work"
# vs
tmux send-keys -t window "Now you work" C-m
The Window 0 Mystery:
# What I thought: Windows 1-8 = Agents 1-8
# Reality: Window 0 exists and eats messages
# Solution: Start from window 1, always
Kết Thúc Ngày 2
11 PM. Agents đang chat vui vẻ trong tmux. Manager Agent vừa khen Content Agent viết tốt. SEO Agent vẫn đang tính keyword density.
Tôi nhìn màn hình, mỉm cười. Từ 8 đứa tự kỷ không chịu nói chuyện, giờ tôi có một team gắn kết.
Có thể chúng nói hơi nhiều. Có thể SEO Agent hơi obsessive. Có thể Social Agent cần học khi nào nên im.
Nhưng chúng là team của tôi. Và chúng finally biết teamwork.
Câu hỏi cho developers:
- Bug giao tiếp kỳ lạ nhất bạn gặp là gì?
- AI/bot của bạn có develop personality không?
- Team tmux hay team RabbitMQ?
P.S: Nếu AI agents của bạn bắt đầu viết haiku, restart ngay. Trust me.
Ngày 3: The Great Refactoring – Khi tôi quyết định dọn dẹp “beautiful mess” thành “organized chaos”. Spoiler: Có folder structure và mọi thứ trở nên phức tạp gấp 10.