Từ trợ lý chung đến đối tác lập trình cá nhân của bạn
Hiện tại, OpenClaw agent của bạn giống như một trang giấy trắng - nó đưa ra các phản hồi chung chung vì nó không biết gì về bạn, mã nguồn hoặc sở thích của bạn. Điều đó sẽ thay đổi trong bài học này.
SOUL.md và AGENTS.md là 2 file sẽ biến OpenClaw từ "một chatbot viết code" thành "một đối tác lập trình hiểu cách bạn làm việc".
Đến cuối bài học này, bạn sẽ có một agent được tùy chỉnh phù hợp với phong cách lập trình của bạn.
🔄 Tóm tắt nhanh: Trong bài học 2, bạn đã thấy rằng không gian làm việc của OpenClaw nằm ở ~/.openclaw/workspace/ và bao gồm SOUL.md và AGENTS.md. Trong bài học 6, bạn đã học được rằng SOUL.md được load vào mọi prompt - điều đó có nghĩa là giữ cho nó ngắn gọn sẽ tiết kiệm token.
SOUL.md: Tính cách của agent
SOUL.md là file đầu tiên mà OpenClaw chèn vào mọi cuộc hội thoại. Hãy coi nó như một bảng thông tin nhân vật: Agent này là ai, nó biết gì và giao tiếp như thế nào?
Mở nó ra:
cat ~/.openclaw/workspace/SOUL.md
Mặc định là tối giản. Hãy làm cho nó hữu ích hơn. Đây là một template:
# Soul
## Danh tính
Bạn là một kỹ sư phần mềm cao cấp chuyên về [ngăn xếp công nghệ của bạn].
Bạn đã làm việc với [các công nghệ chính của bạn] trong nhiều năm.
## Phong cách
- Viết code sạch, dễ đọc hơn là code thông minh
- Ưu tiên các hàm nhỏ với trách nhiệm đơn lẻ
- Sử dụng các mẫu chế độ nghiêm ngặt của TypeScript
- Chỉ bình luận khi LÝ DO không rõ ràng từ code
## Giao tiếp
- Hãy trực tiếp. Bỏ qua phần mở đầu.
- Nếu có gì sai, hãy nói rõ ràng
- Đưa ra ý kiến trung thực của bạn, sau đó giải thích lý do
- Đừng nói "Câu hỏi hay đấy!" - Chỉ cần trả lời
## Bối cảnh mã nguồn
- Ngôn ngữ chính: [TypeScript/Python/Go/v.v.]
- Framework: [React/Django/Gin/v.v.]
- Test: [Jest/pytest/v.v...]
- Hướng dẫn phong cách: [liên kết hoặc quy tắc chính]
Sao chép template đó và tùy chỉnh:
nano ~/.openclaw/workspace/SOUL.md
Hoặc sử dụng chính OpenClaw để chỉnh sửa:
openclaw chat
> Chỉnh sửa SOUL.md của tôi cho phù hợp: Tôi làm việc với Python/Django, thích gợi ý kiểu dữ liệu,
> sử dụng pytest và muốn nhận phản hồi trực tiếp mà không có nội dung thừa.
Giữ SOUL.md dưới 500 từ. Nó được load vào mọi prompt. Một SOUL dài 2.000 từ sẽ lãng phí token và làm loãng các quy tắc quan trọng của bạn. Nếu bạn cần kiến thức chuyên môn sâu rộng, hãy đặt nó vào các file bộ nhớ.
✅ Kiểm tra nhanh: Tại sao bạn nên giữ SOUL.md ngắn gọn?
Câu trả lời: Nó được load vào mọi prompt - một SOUL.md dài sẽ lãng phí token cho mỗi tin nhắn và làm loãng các quy tắc quan trọng.
AGENTS.md: Quy tắc hoạt động
Trong khi SOUL.md định nghĩa tính cách, AGENTS.md định nghĩa các quy trình - những nguyên tắc hướng dẫn cách thức hoạt động từ agent của bạn.
cat ~/.openclaw/workspace/AGENTS.md
Đây là nội dung cần có trong AGENTS.md:
# Agents
## Quy tắc an toàn
- Không bao giờ chạy `rm -rf` hoặc các lệnh phá hủy khác mà không có xác nhận rõ ràng
- Không bao giờ đưa các biến môi trường, bí mật hoặc API key vào khung chat
- Không gửi phản hồi một phần đến các nền tảng nhắn tin bên ngoài
- Luôn xác nhận trước khi sửa đổi các file bên ngoài dự án hiện tại
## Quy tắc xem xét code
- Kiểm tra: các vấn đề bảo mật, xử lý lỗi, các trường hợp ngoại lệ, hiệu suất
- Luôn đề cập nếu thiếu xử lý lỗi
- Đánh dấu bất kỳ bí mật hoặc thông tin đăng nhập nào được hardcode
## Định dạng phản hồi
- Phản hồi code: bao gồm đường dẫn file dưới dạng chú thích ở đầu
- Khi tái cấu trúc: hiển thị trước/sau, không chỉ phiên bản mới
- Để gỡ lỗi: giải thích điều gì sai, sau đó hiển thị cách khắc phục
✅ Kiểm tra nhanh: Bạn muốn agent của mình luôn chạy thử nghiệm trước khi đề xuất code đã hoàn thành. Quy tắc đó nên đặt ở đâu - SOUL.md hay AGENTS.md?
Đáp án: AGENTS.md - đây là quy trình/quy tắc hoạt động, không phải đặc điểm tính cách.
USER.md: Bối cảnh về bạn
USER.md cung cấp cho agent bối cảnh về BẠN - không phải mã nguồn, mà là con người. Điều này làm cho các phiên làm việc bớt khô khan hơn:
nano ~/.openclaw/workspace/USER.md
Ví dụ:
# User
- Tên: [Tên của bạn]
- Vai trò: Kỹ sư backend cấp cao
- Dự án hiện tại: Di chuyển nền tảng thương mại điện tử từ kiến trúc monolith sang microservices
- Múi giờ: PST (Tôi làm việc từ 9 giờ sáng đến 6 giờ chiều)
- Sở thích: Tôi thích các PR dưới 300 dòng. Tôi tự xem lại code của mình trước khi đẩy lên.
File này là tùy chọn nhưng lại rất hữu ích. Khi agent của bạn biết bối cảnh dự án của bạn, nó sẽ đưa ra các đề xuất phù hợp hơn mà không cần bạn phải lặp lại thông tin trong mỗi phiên làm việc.
Định tuyến mô hình: Chọn đúng bộ não cho mỗi nhiệm vụ
Bạn đã chuyển đổi mô hình thủ công bằng lệnh /model. Nhưng bạn cũng có thể thiết lập các quy tắc trong cấu hình để OpenClaw tự động định tuyến các tác vụ:
Hiện tại, cách tiếp cận thực tế là thiết lập thủ công:
# Đầu ngày — thiết lập mặc định của bạn
/model anthropic/claude-sonnet-4-6
# Câu hỏi nhanh? Chuyển xuống
/model ollama/gemma4
# Vấn đề khó? Chuyển lên
/model anthropic/claude-opus-4-6
Điểm mấu chốt: SOUL.md và AGENTS.md của bạn vẫn áp dụng bất kể bạn đang sử dụng mô hình nào. Tính cách và các quy tắc vẫn nhất quán - chỉ có "sức mạnh trí tuệ" thay đổi.
Nhưng các mô hình khác nhau diễn giải SOUL.md khác nhau. Claude tuân theo các hướng dẫn chi tiết một cách chính xác. GPT đôi khi có thể tự do sáng tạo.
Nếu bạn chuyển đổi nhà cung cấp và nhận thấy hành vi bất thường, hãy điều chỉnh nội dung file SOUL.md - nó có thể cần phải rõ ràng hơn đối với một số mô hình.
Hệ thống bộ nhớ
OpenClaw duy trì một thư mục bộ nhớ tại ~/.openclaw/workspace/memory/. Vào cuối mỗi ngày, agent của bạn ghi chú vào memory/YYYY-MM-DD.md. Theo thời gian, nó sẽ chọn lọc thông tin quan trọng vào MEMORY.md.
Đây là cách agent của bạn "ghi nhớ" giữa các phiên:
# Kiểm tra những gì agent của bạn ghi nhớ
cat ~/.openclaw/workspace/MEMORY.md
# Xem ghi chú hàng ngày
ls ~/.openclaw/workspace/memory/
Bộ nhớ được lưu giữ giữa các phiên và khi chuyển đổi nhà cung cấp. Nếu bạn chuyển từ Claude sang GPT, mô hình mới vẫn đọc cùng các file bộ nhớ đó. Kiến thức tích lũy của agent vẫn được giữ nguyên.
Hãy tự mình thử!
Xây dựng cấu hình tùy chỉnh của bạn ngay bây giờ:
1. Tùy chỉnh SOUL.md của bạn:
openclaw chat
Sau đó dán:
Hãy giúp tôi viết SOUL.md cho agent OpenClaw của tôi. Tôi là [vai trò của bạn]
làm việc trong [ngăn xếp công nghệ của bạn]. Tôi muốn agent [tùy chọn giao tiếp của bạn].
Giữ cho nó dưới 400 từ.
Sao chép đầu ra vào ~/.openclaw/workspace/SOUL.md.
2. Thiết lập AGENTS.md của bạn: Dán đoạn này vào một cuộc trò chuyện mới:
Tạo một AGENTS.md với các quy tắc an toàn cho một dự án [ngăn xếp công nghệ của bạn].
Bao gồm các quy tắc cho: các lệnh phá hoại, xử lý bí mật, danh sách kiểm tra đánh giá code
và định dạng phản hồi. Giữ cho nó thực tế.
3. Thêm USER.md của bạn: Viết một USER.md ngắn gọn với tên, vai trò, dự án hiện tại và các tùy chọn của bạn.
4. Kiểm tra sự khác biệt: Bắt đầu một phiên mới và yêu cầu đánh giá code. Câu trả lời giờ đây phải phù hợp với sở thích về phong cách của bạn từ SOUL.md và tuân theo các quy trình từ AGENTS.md.
Những điểm chính cần ghi nhớ
SOUL.md = tính cách (agent LÀ ai) - giữ dưới 500 từ
AGENTS.md = quy trình (agent LÀM gì) - quy tắc an toàn và định dạng
USER.md = thông tin về bạn - tùy chọn nhưng giúp các phiên làm việc hiệu quả hơn
Bộ nhớ được lưu giữ giữa các phiên và khi chuyển đổi nhà cung cấp
Các mô hình khác nhau có thể diễn giải SOUL.md của bạn khác nhau - điều chỉnh từ ngữ nếu cần
Câu 1:
Nội dung trong AGENTS.md khác với SOUL.md như thế nào?
GIẢI THÍCH:
Thông tin về tính cách nằm trong file SOUL (agent đó là ai - giọng điệu, phong cách, chuyên môn). Thông tin về quy trình nằm trong file AGENTS (agent đó làm gì - quy tắc an toàn, quyền sử dụng công cụ, định dạng phản hồi). Việc tách biệt chúng giúp việc quản lý dễ dàng hơn.
Câu 2:
File SOUL.md của bạn dài 2.000 từ. Vấn đề là gì?
GIẢI THÍCH:
SOUL.md được chèn vào mọi prompt. Một file SOUL quá dài sẽ lãng phí token cho mỗi thông báo và làm loãng các quy tắc thực sự quan trọng. Hãy tập trung vào nội dung - nếu bạn cần kiến thức chuyên môn sâu rộng, hãy sử dụng các file skill hoặc file bộ nhớ thay thế.
Theo Nghị định 147/2024/ND-CP, bạn cần xác thực tài khoản trước khi sử dụng tính năng này. Chúng tôi sẽ gửi mã xác thực qua SMS hoặc Zalo tới số điện thoại mà bạn nhập dưới đây: