DEV Community

Cover image for Lệnh /goal: Hướng Dẫn Chạy Codex và Claude Code Tự Động 24/7
Sebastian Petrus
Sebastian Petrus

Posted on • Originally published at apidog.com

Lệnh /goal: Hướng Dẫn Chạy Codex và Claude Code Tự Động 24/7

Mọi phòng thí nghiệm AI lớn đều đang hội tụ về cùng một mẫu giao diện: /goal. Anthropic thêm /goal vào Claude Code, OpenAI đưa nó vào Codex CLI và Codex desktop, Nous Research hỗ trợ trong Hermes. Ý tưởng chung: giao cho agent một mục tiêu có thể đo lường, để agent tự chạy trong vòng lặp khép kín cho đến khi hoàn thành, thay vì yêu cầu bạn phê duyệt từng bước.

Dùng thử Apidog ngay hôm nay

Nếu bạn từng phải lặp lại chuỗi “phê duyệt → gửi prompt → yêu cầu tiếp tục → kiểm tra kết quả”, thì /goal là cách rút gọn quy trình đó. Bạn mô tả mục tiêu, điều kiện hoàn thành và ràng buộc; agent tự lập kế hoạch, thực thi, kiểm tra và chỉ quay lại khi đạt kết quả hoặc gặp giới hạn.

Bài viết này tập trung vào cách dùng /goal trong thực tế: cơ chế hoạt động, cách thiết lập trong Codex và Claude Code, cấu trúc prompt hiệu quả, và cách áp dụng vào quy trình phát triển API với Apidog.

Bạn có thể tải xuống Apidog miễn phí nếu muốn thực hành các ví dụ API ở phần sau.

/goal thực sự làm gì

Tóm gọn: /goal cho phép agent AI lặp lại một nhiệm vụ cho đến khi điều kiện dừng được thỏa mãn, không cần bạn phê duyệt từng bước.

Cơ chế thường gồm hai phần:

  1. Agent chính: lập kế hoạch, sửa mã, gọi công cụ, chạy lệnh, tạo tài liệu.
  2. Validator model: kiểm tra sau mỗi bước xem mục tiêu đã hoàn thành chưa.

Validator trả lời câu hỏi: “Mục tiêu đã đạt chưa?” Nếu chưa, agent tiếp tục. Nếu rồi, vòng lặp dừng và agent trả kết quả.

Khác biệt so với prompt thông thường:

  • Không có /goal: bạn là vòng lặp. Bạn đọc kết quả, quyết định bước tiếp theo, gửi prompt mới, phê duyệt tool call.
  • /goal: agent sở hữu vòng lặp. Nó tự chạy cho đến khi hoàn thành, gặp ràng buộc, hoặc hết ngân sách.

Ví dụ:

/goal create a landing page until it builds successfully and passes the preview check
Enter fullscreen mode Exit fullscreen mode

Agent có thể tự tạo layout, viết CSS, chạy build, sửa lỗi, xem preview và dừng khi trạng thái cuối đạt được.

Tại sao /goal xuất hiện ở khắp nơi

Các nhiệm vụ agent dài thường lỗi theo hai cách:

  1. Lệch hướng: mô hình đi xa khỏi mục tiêu ban đầu và tạo ra kết quả có vẻ hợp lý nhưng sai.
  2. Cần giám sát liên tục: bạn vẫn phải kiểm tra từng vòng lặp, làm mất ý nghĩa của agent tự động.

Validator model giúp xử lý cả hai. Nó rẻ hơn mô hình chính, prompt hẹp hơn, và có nhiệm vụ duy nhất: kiểm tra điều kiện dừng.

Điểm quan trọng: /goal chỉ hoạt động tốt khi bạn định nghĩa được “hoàn thành” là gì. Với lập trình và API, điều này thường rõ ràng: test pass, build thành công, endpoint trả 200, schema khớp OpenAPI.

Thiết lập /goal trong Codex

Codex CLI cho bạn nhiều quyền kiểm soát nhất.

1. Bật goal trong Codex desktop

Mở Codex desktop:

Settings → Configuration → goals = true
Enter fullscreen mode Exit fullscreen mode

CLI sẽ kế thừa cấu hình này.

2. Chạy CLI ở chế độ tự động

codex --approval-mode full-auto
Enter fullscreen mode Exit fullscreen mode

Chế độ này giảm các prompt phê duyệt thủ công trong khi agent chạy mục tiêu.

3. Gửi mục tiêu

/goal [mục tiêu của bạn]
Enter fullscreen mode Exit fullscreen mode

Ví dụ:

/goal fix every failing test until npm test exits 0 without modifying any file outside the /auth directory
Enter fullscreen mode Exit fullscreen mode

Codex sẽ xác nhận goal đã được đăng ký và bắt đầu chạy.

Codex goal

Nếu bạn không quen CLI, hãy bắt đầu bằng Codex desktop. Chức năng tương tự, nhưng có giao diện để tạm dừng, xóa goal và theo dõi token.

Thiết lập /goal trong Claude Code

Claude Code CLI hoạt động tương tự:

/goal [mô tả nhiệm vụ]
Enter fullscreen mode Exit fullscreen mode

Tài liệu chính thức nằm ở trang tài liệu Claude Code.

Claude Code goal

Nếu gặp lỗi cấu hình khi khởi chạy Claude Code, xem hướng dẫn khắc phục lỗi cấu hình doanh nghiệp custom3p không hợp lệ. Nếu muốn kết hợp /goal với workflow đa agent, xem bài viết về Ruflo, lớp đa tác nhân trên Claude Code.

Mẹo thực tế: theo dõi token usage, không chỉ output. Nếu /goal tiêu tốn nhiều token nhưng không tiến triển, validator có thể không hội tụ. Khi đó hãy dùng:

/pause
Enter fullscreen mode Exit fullscreen mode

hoặc:

/goal clear
Enter fullscreen mode Exit fullscreen mode

Sau đó viết lại goal với tiêu chí thành công rõ hơn.

Cách viết prompt /goal hiệu quả

Cú pháp /goal đơn giản. Phần khó là viết mục tiêu đủ cụ thể để agent không chạy vòng quanh.

Một prompt /goal tốt có 3 phần:

  1. Công việc: cần làm gì.
  2. Trạng thái hoàn thành có thể đo lường: kiểm tra bằng lệnh, test, schema, file, điểm số.
  3. Ràng buộc: không được thay đổi gì, giới hạn phạm vi, quy tắc an toàn.

Mẫu cơ bản:

/goal [làm việc X] until [điều kiện hoàn thành đo được] without [ràng buộc]
Enter fullscreen mode Exit fullscreen mode

Ví dụ tốt:

/goal fix every failing test until npm test exits 0 without modifying any file outside the /auth directory
Enter fullscreen mode Exit fullscreen mode

Vì sao tốt:

  • npm test exits 0 là điều kiện kiểm chứng được.
  • /auth directory là phạm vi rõ ràng.
  • Validator có thể chạy test sau mỗi vòng lặp.

Ví dụ kém:

/goal make this UI look more modern
Enter fullscreen mode Exit fullscreen mode

Vấn đề: “modern” không đo được. Agent không biết khi nào nên dừng.

Viết lại tốt hơn:

/goal improve the UI until Lighthouse accessibility score is at least 90 and all existing visual regression tests pass without changing backend code
Enter fullscreen mode Exit fullscreen mode

Mẫu nâng cao cho nhiệm vụ dài

Với nhiệm vụ lớn, dùng cấu trúc nhiều khối:

/goal
Objective: [mục tiêu một dòng]

Success criteria:
  - [tiêu chí đo được 1]
  - [tiêu chí đo được 2]
  - [tiêu chí đo được 3]

Constraints:
  - [ràng buộc 1]
  - [ràng buộc 2]

Context:
  - [file, repo, service, API spec, test command]
Enter fullscreen mode Exit fullscreen mode

Ví dụ:

/goal
Objective: Implement the POST /auth/login endpoint.

Success criteria:
  - All existing auth tests pass.
  - POST /auth/login returns 200 for valid credentials.
  - Invalid credentials return 401 with the documented error schema.
  - OpenAPI response schema matches the implementation.

Constraints:
  - Do not modify files outside /src/auth and /tests/auth.
  - Do not change the database schema.
  - Do not remove existing tests.

Context:
  - OpenAPI spec: ./docs/openapi.yaml
  - Test command: npm run test:auth
Enter fullscreen mode Exit fullscreen mode

Cấu trúc này giúp validator biết chính xác cần kiểm tra gì sau mỗi vòng lặp.

Ví dụ /goal đáng dùng

Nghiên cứu

/goal collect every public benchmark for Claude Opus 4.7 published since April 2026, save sources, and produce a markdown table sorted by date until the table covers at least 10 distinct benchmarks
Enter fullscreen mode Exit fullscreen mode

Bảo trì repo

/goal find dead code, unused dependencies, and stale files in this repo, then propose a PR description listing safe removals until every item has a justification
Enter fullscreen mode Exit fullscreen mode

Tài liệu

/goal rewrite README.md so a new contributor can install, run, test, and understand the project until each of those four steps has a working command and an expected output
Enter fullscreen mode Exit fullscreen mode

Phát triển tính năng

/goal add a dark/light theme toggle, persist the choice in localStorage, update styles for both themes, and verify in the browser until the toggle works without a page reload and survives a refresh
Enter fullscreen mode Exit fullscreen mode

Mẫu chung: mỗi goal đều có trạng thái cuối có thể kiểm tra. Đây là khác biệt giữa một agent hoàn thành việc và một agent chạy vô hạn.

Kết hợp /goal với quy trình phát triển API

API là trường hợp rất phù hợp cho /goal, vì trạng thái hoàn thành thường rõ ràng:

  • Endpoint trả đúng status code.
  • Response khớp schema.
  • Contract OpenAPI không bị phá vỡ.
  • Test case pass.
  • Tài liệu được cập nhật.

Một workflow thực tế:

  1. Thiết kế contract trước trong Apidog

    Định nghĩa endpoint, request schema, response schema và payload ví dụ trong Apidog.

  2. Xuất OpenAPI 3.x

    Dùng file OpenAPI làm context cho Codex hoặc Claude Code.

  3. Chạy /goal trên implementation

    Ví dụ:

   /goal implement the POST /orders endpoint until every Apidog test case passes and the response matches the OpenAPI schema without changing unrelated endpoints
Enter fullscreen mode Exit fullscreen mode
  1. Validator chạy test sau mỗi vòng lặp Agent chỉ dừng khi test pass và contract khớp.

Cách này tốt hơn để agent tự viết test, vì contract đã được khóa trước. Agent không thể “thắng” bằng cách tạo bộ test dễ hơn.

Nếu bạn mới dùng Apidog, đây là nền tảng API kết hợp thiết kế, mock, kiểm thử và tài liệu trong một công cụ. Điều này hữu ích với /goal vì validator chỉ cần chạy một lệnh hoặc một bộ test để xác định trạng thái hoàn thành.

Tham khảo thêm:

Ví dụ workflow API với /goal

Giả sử bạn có OpenAPI spec:

paths:
  /users/{id}:
    get:
      responses:
        "200":
          description: User found
        "404":
          description: User not found
Enter fullscreen mode Exit fullscreen mode

Bạn có thể dùng goal:

/goal
Objective: Implement GET /users/{id} according to the OpenAPI contract.

Success criteria:
  - GET /users/{id} returns 200 for an existing user.
  - GET /users/{id} returns 404 for a missing user.
  - Response body matches the OpenAPI schema.
  - All Apidog test cases for this endpoint pass.

Constraints:
  - Do not modify unrelated endpoints.
  - Do not change the OpenAPI contract.
  - Do not remove existing tests.

Context:
  - OpenAPI spec: ./openapi.yaml
  - API test command: npm run test:api
Enter fullscreen mode Exit fullscreen mode

Điểm mấu chốt: goal không nói “hãy làm endpoint này tốt hơn”. Nó nói rõ khi nào endpoint được xem là hoàn thành.

Mẹo khi chạy /goal trong dự án thật

Chỉ chạy một goal tại một thời điểm

Codex và Claude Code thường chỉ nên có một goal active. Trước khi chạy mục tiêu mới:

/goal clear
Enter fullscreen mode Exit fullscreen mode

Dùng /plan trước /goal

Workflow hiệu quả:

/plan implement the new billing webhook endpoint
Enter fullscreen mode Exit fullscreen mode

Xem lại kế hoạch, sau đó chạy:

/goal implement the approved billing webhook plan until all webhook tests pass without modifying payment provider configuration
Enter fullscreen mode Exit fullscreen mode

/plan giúp giảm số vòng lặp vì agent không phải tự thiết kế lại hướng tiếp cận trong lúc chạy.

Yêu cầu agent ghi log tiến trình

Thêm vào prompt:

Maintain progress.md with completed steps, failed attempts, and current blocker after each iteration.
Enter fullscreen mode Exit fullscreen mode

Bạn sẽ có audit log dễ đọc, và agent có thêm ngữ cảnh liên tục.

Để model viết lại goal

Bạn có thể đưa ý tưởng thô:

I need to clean up the auth module and make tests pass. Turn this into a precise /goal prompt with measurable success criteria.
Enter fullscreen mode Exit fullscreen mode

Sau đó dùng prompt đã được model cấu trúc lại. Thường model biết tiêu chí nào validator có thể kiểm tra được.

Theo dõi validator, không chỉ output

Nếu vòng lặp không dừng, nguyên nhân thường là tiêu chí thành công mơ hồ. Đừng chạy lại cùng prompt. Hãy viết lại điều kiện dừng.

Kém:

until the code is clean
Enter fullscreen mode Exit fullscreen mode

Tốt hơn:

until eslint exits 0, npm test exits 0, and no file outside /src/auth is modified
Enter fullscreen mode Exit fullscreen mode

Khi nào không nên dùng /goal

/goal không phải lúc nào cũng là lựa chọn tốt.

Tác vụ quá nhỏ

Với refactor một dòng hoặc sửa typo, prompt thường nhanh hơn. /goal có chi phí vòng lặp và validator.

Tác vụ không có tín hiệu đo được

Các yêu cầu như “làm đẹp hơn”, “nghe chuyên nghiệp hơn”, “UX tốt hơn” dễ khiến agent dừng sai hoặc chạy quá lâu. Hãy biến chúng thành tiêu chí đo được trước.

Tác vụ có tác dụng phụ bên ngoài

Cẩn trọng với goal liên quan đến:

  • Gửi email thật.
  • Thanh toán.
  • Gọi API production.
  • Xóa dữ liệu.
  • Thay đổi quyền truy cập.

Nếu agent có thể gọi API thật, cần ràng buộc chặt chẽ. Bài viết về API sử dụng và thanh toán của GitHub Copilot cho các nhóm có thêm ngữ cảnh về cách các nhà cung cấp lớn xử lý kiểm soát này.

Ngữ cảnh lỗi thời

Nếu codebase thay đổi trong khi goal đang chạy, agent có thể tiếp tục với giả định cũ. Tốt hơn là pause, clear goal và chạy lại với context mới.

Ý nghĩa đối với cách xây dựng bằng AI

/goal chuyển vai trò của AI từ “autocomplete nâng cao” sang “worker tự chạy theo tiêu chí kiểm tra được”.

Điều này thay đổi công việc của developer:

  • Ít viết từng dòng code hơn.
  • Nhiều viết contract, test, constraint và success criteria hơn.
  • Cần CI, OpenAPI spec và test suite đáng tin cậy hơn.

Nhóm tận dụng tốt /goal thường đã có:

  • Contract API rõ ràng.
  • OpenAPI spec được cập nhật.
  • Test tự động.
  • CI ổn định.
  • Ranh giới module rõ.

Nếu API chỉ tồn tại trong đầu một vài người, agent không có gì để xác thực. Nếu API có spec và test, bạn có thể giao cho agent một endpoint và để nó chạy đến khi pass.

Đây là lý do nền tảng API trở thành hạ tầng quan trọng cho workflow AI. Apidog hỗ trợ phát triển API theo hướng design-first, giúp agent đọc spec và tự kiểm tra implementation bằng test case có sẵn. Bạn có thể tải xuống Apidog để thiết lập workflow contract-first như trên.

Câu hỏi thường gặp

/goal có hoạt động trong Codex web không?

Có. /goal được hỗ trợ trong Codex CLI, Codex desktop, ứng dụng Codex và Claude Code CLI. Hermes cũng hỗ trợ cùng kiểu lệnh.

/goal khác gì prompt thông thường?

Prompt thông thường chạy một lần rồi dừng. /goal chạy trong vòng lặp khép kín, với validator kiểm tra điều kiện dừng sau mỗi bước. Agent tự quyết định khi nào hoàn thành dựa trên tiêu chí bạn đặt.

Agent có thể phá ràng buộc không?

Có thể, nếu ràng buộc mơ hồ. Hãy viết ràng buộc có thể kiểm tra.

Tốt:

without modifying any file outside /auth
Enter fullscreen mode Exit fullscreen mode

Kém:

without breaking anything
Enter fullscreen mode Exit fullscreen mode

/goal có tốn token hơn không?

Có. Validator rẻ hơn mô hình chính, nhưng agent vẫn chạy nhiều bước hơn một prompt đơn. Hãy đặt ngân sách và dùng /pause khi cần.

Làm sao kiểm tra output của agent với API thật?

Dùng công cụ như Apidog để khóa contract API và chạy test case thực tế. Validator có thể dựa vào kết quả test để xác định goal đã hoàn thành chưa.

Nếu bạn đang xây dịch vụ chạy bằng Claude với ngân sách hạn chế, xem thêm hướng dẫn API Claude miễn phí.

Top comments (0)