Chức năng thực sự của lệnh /goal trong Claude Code
Hầu hết mọi người sử dụng Claude Code một cách tương tác — bạn nhập yêu cầu, Claude phản hồi, bạn xem xét, yêu cầu thay đổi. Điều đó hoạt động tốt đối với các tác vụ đơn giản. Nhưng khi bạn cần Claude xử lý một việc phức tạp mà không cần giám sát liên tục, lệnh /goal sẽ thay đổi hoàn toàn cách thức hoạt động.
Lệnh /goal trong Claude Code cho phép bạn xác định mục tiêu cấp cao và điều kiện hoàn thành có thể đo lường được. Thay vì trả lời một prompt và chờ đợi, Claude Code tiếp tục suy luận, thực hiện hành động và kiểm tra đầu ra của chính nó cho đến khi xác định được mục tiêu đã đạt được. Đó là cốt lõi của những gì làm cho nó hữu ích với các workflow tự động.
Hướng dẫn này bao gồm cách viết mục tiêu hiệu quả, cách xác định tiêu chí thoát để Claude biết khi nào cần dừng lại, cách kết hợp /goal với các subagent để làm việc song song và cách tránh những lỗi thường gặp khiến các lần chạy tự động bị lệch hướng.
Cách lệnh /goal phù hợp với kiến trúc của Claude Code
Claude Code là agent lập trình dựa trên terminal của Anthropic. Không giống như giao diện trò chuyện, nó có quyền truy cập trực tiếp vào hệ thống file của bạn, có thể thực thi các lệnh shell, chạy thử nghiệm, gọi API và đọc đầu ra lỗi — tất cả mà không cần bạn can thiệp ở mỗi bước.
Lệnh /goal được thiết kế đặc biệt cho lớp agentic của Claude Code. Nó chuyển Claude từ chế độ phản hồi (chờ đầu vào của bạn) sang chế độ lập kế hoạch và thực thi (làm việc hướng tới một kết quả đã xác định).
Sự khác biệt giữa prompt và mục tiêu
Một prompt thông thường của Claude Code có phạm vi nhiệm vụ: “Tái cấu trúc hàm này để sử dụng async/await”. Claude thực hiện công việc, báo cáo lại và dừng lại.
Mục tiêu được xác định dựa trên kết quả: “Tất cả các bài kiểm thử đơn vị đều đạt, không có lỗi TypeScript nào và quy trình CI trả về trạng thái xanh”. Claude sẽ tiếp tục làm việc — sửa lỗi, điều chỉnh code, chạy lại các bài kiểm thử — cho đến khi điều kiện đó được đáp ứng hoặc nó xác định rằng không thể tiếp tục nếu không có sự can thiệp của con người.
Sự khác biệt đó rất quan trọng. Mục tiêu được thiết kế cho các quy trình yêu cầu nhiều bước phụ thuộc, lặp lại và tự điều chỉnh.
Khi nào nên sử dụng /goal? Khi nào nên sử dụng prompt tiêu chuẩn?
Sử dụng /goal khi:
- Nhiệm vụ yêu cầu nhiều vòng thực thi và sửa lỗi
- Bạn muốn Claude hoạt động tự động trong khi bạn tập trung vào việc khác
- Điều kiện thành công có thể được nêu rõ ràng và xác minh bằng lập trình
- Bạn đang chạy Claude Code ở chế độ Headless hoặc tự động
Sử dụng prompt tiêu chuẩn khi:
- Bạn cần kiểm soát chặt chẽ từng bước
- Nhiệm vụ là một thao tác đơn lẻ, có giới hạn
- Bạn đang khám phá hoặc lặp lại một cách tương tác
Thiết lập mục tiêu đầu tiên của bạn
Cú pháp cơ bản
Lệnh /goal nhận một mô tả bằng ngôn ngữ đơn giản về kết quả mong muốn của bạn:
/goal All tests in the /tests directory pass without modification to test files
Đó là dạng đơn giản nhất. Claude Code sẽ hiểu đây là mục tiêu của nó và bắt đầu hoạt động — đọc các file liên quan, chạy thử nghiệm, chẩn đoán lỗi, viết bản sửa lỗi và chạy lại những bài kiểm tra để xác minh.
Viết mục tiêu hiệu quả
Mục tiêu mơ hồ tạo ra kết quả không nhất quán. Bạn càng mô tả kết quả chính xác, Claude Code càng có thể đánh giá tốt hơn liệu mục tiêu đó đã đạt được hay chưa.
Mục tiêu yếu:
/goal Make the app work better
Mục tiêu mạnh:
/goal The Express server starts without errors, all /api routes return 200 status codes on the test suite, and no console.error calls appear in the output
Phiên bản mạnh cung cấp cho Claude ba điều kiện có thể kiểm tra được. Nó biết "hoàn thành" trông như thế nào.
Nguyên tắc cho các mục tiêu hiệu quả:
- Sử dụng các điều kiện có thể kiểm chứng được — Những thứ có thể đo lường được: số lần kiểm thử, exit code, sự tồn tại của file, phản hồi API.
- Tránh ngôn ngữ chủ quan — "Sạch", "tối ưu hóa" hoặc "tốt hơn" rất khó để Claude đánh giá bằng lập trình.
- Xác định phạm vi — Cho Claude biết file, thư mục hoặc hệ thống nào nằm trong phạm vi. Nếu không có phạm vi, Claude có thể làm việc trên những thứ bạn không dự định.
- Bao gồm các điều kiện phủ định nếu có liên quan — "Không sửa đổi bất kỳ file nào trong /config" đặt ra một ranh giới rõ ràng.
Góc nhìn chuyên gia kỹ thuật của TTC Việt Nam
Dưới góc độ kỹ thuật, việc sử dụng lệnh /goal không chỉ là một tiện ích mà là bước chuyển dịch sang lập trình định hướng mục tiêu (goal-oriented programming). Tại TTC Việt Nam, chúng tôi nhận thấy rằng việc thiết lập các tiêu chí dừng (stop criteria) chính xác là yếu tố then chốt để đảm bảo tính an toàn cho hệ thống. Khi tích hợp vào môi trường CI/CD, việc kết hợp giữa lệnh /goal và các bộ kiểm thử tự động (automated testing) sẽ giúp giảm thiểu rủi ro sai sót của AI trong quá trình refactoring hoặc tối ưu code, đồng thời giúp đội ngũ kỹ sư tiết kiệm thời gian đáng kể cho các nhiệm vụ lặp lại.
Xác định tiêu chí thoát
Tiêu chí thoát là các điều kiện có thể đo lường được, cho biết Claude Code cần ngừng hoạt động. Chúng là phần quan trọng nhất của bất kỳ workflow tự động nào.
Nếu không có tiêu chí thoát rõ ràng, Claude Code có thể:
- Dừng quá sớm (trước khi nhiệm vụ hoàn thành đầy đủ)
- Chạy quá đích (thực hiện các thay đổi không cần thiết sau khi mục tiêu đã đạt được)
- Vòng lặp vô hạn cố gắng sửa chữa điều gì đó không thể sửa chữa trong ngữ cảnh hiện tại
Các loại tiêu chí thoát
Mã thoát lệnh
Hình thức đơn giản nhất. Claude chạy một lệnh và mục tiêu được đáp ứng khi nó thoát với code 0:
/goal `npm test` exits with code 0 and all 47 test cases show as passing
Điều kiện trạng thái file
Mục tiêu được đáp ứng khi một file cụ thể tồn tại, chứa nội dung cụ thể hoặc đã được sửa đổi:
/goal A file named CHANGELOG.md exists in the root directory with entries for all commits since the last tag
Điều kiện phản hồi API
Hữu ích cho công việc tích hợp:
/goal GET /health returns {"status": "ok"} with a 200 response after the server starts
Điều kiện kết hợp
Bạn có thể kết hợp nhiều tiêu chí:
/goal TypeScript compilation succeeds with zero errors, all Jest tests pass, and the build artifact exists at /dist/index.js
Đặt giới hạn số lần lặp
Một điều cần lưu ý: Nếu không có ràng buộc, Claude Code sẽ tiếp tục thử nếu nó nghĩ rằng nó có thể tiến bộ. Đối với các tác vụ phức tạp, bạn có thể muốn chỉ định điều kiện dừng trong trường hợp không thể đạt được mục tiêu:
/goal All database migration scripts run successfully in sequence. If any migration fails after three retry attempts, stop and report the failure with the full error output.
Điều này ngăn Claude dành thời gian cho những việc cần sự can thiệp của con người để giải quyết.
Chạy lệnh /goal ở chế độ Headless và tự động
Lệnh /goal thực sự thể hiện giá trị của nó khi chạy Claude Code mà không cần tương tác — như một phần của quy trình CI, một công việc theo lịch trình hoặc một trình kích hoạt tự động.
Những điều cơ bản về chế độ Headless
Claude Code hỗ trợ chế độ Headless thông qua flag --headless (hoặc biến môi trường tương đương), flag này sẽ loại bỏ các prompt tương tác và chạy hoàn toàn tự động. Kết hợp với /goal, bạn sẽ có một agent tự động thực thi một workflow được xác định từ đầu đến cuối.
Ví dụ về lệnh gọi shell:
claude-code --headless --goal "All unit tests pass and the build artifact is generated at /dist"
Đây là cách bạn nhúng Claude Code vào các hệ thống tự động: Một CI job gọi Claude Code với một mục tiêu, Claude xử lý nhiệm vụ và công việc thành công hoặc thất bại dựa trên exit code.
Ghi nhật ký và khả năng quan sát
Khi chạy ở chế độ Headless, hãy luôn ghi lại nhật ký. Claude Code xuất ra một dấu vết chi tiết về lý luận và hành động của nó — đây là dấu vết kiểm toán của bạn nếu có điều gì đó không ổn.
claude-code --headless --goal "..." --log-file ./claude-run.log
Xem lại nhật ký sau bất kỳ lần chạy nào không tầm thường để hiểu Claude đã làm gì, đã thử gì và đưa ra quyết định ở đâu.
Kết nối với các CI/CD pipeline
Một mô hình phổ biến là kích hoạt Claude Code thông qua một bước CI sau khi các bài kiểm tra thất bại trên một nhánh tính năng:
- Các bài kiểm tra thất bại trong pipeline
- CI kích hoạt một bước Claude Code với mục tiêu: “Sửa các bài kiểm tra thất bại mà không thay đổi những file test”.
- Claude Code xử lý các lỗi và cam kết những bản sửa lỗi
- CI chạy lại bước kiểm tra ban đầu để xác minh
Điều này hoạt động tốt nhất đối với các lỗi có tính xác định — lỗi kiểu dữ liệu, khẳng định thất bại, thiếu import — trong đó bản sửa lỗi được xác định rõ ràng.
Kết hợp lệnh /goal với các subagent
Claude Code hỗ trợ phối hợp multi-agent, trong đó một agent chính tạo ra các subagent để xử lý những tác vụ song song hoặc chuyên biệt. Lệnh /goal hoạt động ở cả hai cấp độ.
Các subagent làm gì
Các subagent là những phiên bản riêng biệt của Claude Code mà agent chính có thể gọi để xử lý một phần công việc cụ thể. Agent chính định nghĩa một mục tiêu phụ, ủy thác nó, chờ kết quả (hoặc chạy các công việc khác song song) và tích hợp đầu ra.
Điều này đặc biệt hữu ích khi:
- Các phần khác nhau của một tác vụ yêu cầu những ngữ cảnh khác nhau
- Công việc có thể được song song hóa (ví dụ: sửa lỗi trong các mô-đun khác nhau cùng một lúc)
- Bạn muốn cô lập các hoạt động rủi ro cho một subagent có thể được khởi động lại nếu nó bị lỗi
Cách agent chính điều phối
Một agent chính chạy với lệnh /goal có thể phân chia công việc như sau:
- Phân tích mục tiêu tổng thể và xác định các nhiệm vụ phụ độc lập
- Tạo các subagent cho mỗi nhiệm vụ phụ với mục tiêu riêng của chúng
- Giám sát kết quả của subagent khi chúng hoàn thành
- Tích hợp đầu ra và xác minh các tiêu chí thoát cấp cao nhất
Bạn không cần phải tự mình điều phối việc này. Lớp lập kế hoạch của Claude Code tự động xử lý việc phân tách khi bạn cung cấp cho nó một mục tiêu đủ phức tạp để cần đến công việc song song.
Ví dụ thực tế: Tái cấu trúc nhiều mô-đun
Giả sử mục tiêu của bạn là:
/goal Migrate all database calls in /src to use the new ORM interface. All existing tests must still pass.
Claude Code có thể:
- Tạo các subagent cho /src/users, /src/orders và /src/products song song
- Mỗi subagent xử lý mô-đun của nó một cách độc lập
- Agent chính thu thập kết quả, chạy toàn bộ bộ kiểm thử và xử lý mọi xung đột giữa các mô-đun
Điều này rút ngắn quá trình tuần tự có thể kéo dài hàng giờ thành một quá trình song song ngắn hơn nhiều.
Nếu doanh nghiệp của bạn đang cần triển khai các giải pháp mạng và tối ưu hóa hệ thống viễn thông chuyên nghiệp, hãy liên hệ ngay với TTC Việt Nam (ttcvn.net) để nhận được sự tư vấn và hỗ trợ từ đội ngũ kỹ thuật giàu kinh nghiệm.





