Công cụ AI Coding

Claude Code Routines: Hướng Dẫn Tự Động Hóa Đám Mây (2026)

Aug 19, 202615 phút đọc

Một Claude Code routine là một prompt đã lưu sẵn, kèm repository và connector, chạy tự động trên cloud theo lịch, theo API call, hoặc theo sự kiện GitHub - không cần mở laptop. Routines hiện đang ở research preview, nên hành vi và giới hạn có thể còn thay đổi. Bài này gồm: ba loại trigger, cách dựng một routine, mô hình bảo mật đứng sau việc không có approval prompt, cap hằng ngày chính xác, ba recipe copy-dùng-luôn, và một góc nhìn thật về việc dùng skill AgentKit làm instructions.

- Routines đang ở research preview; cap hằng ngày, version gate và chi tiết API dưới đây đã đối chiếu tài liệu chính thức và bài blog ra mắt tại thời điểm 2026-08-20 - kiểm tra docs live trước khi phụ thuộc.

Claude Code Routines Là Gì?

Routine là một cấu hình Claude Code được lưu sẵn: một prompt, một hoặc nhiều repository, và một bộ connector, đóng gói một lần rồi chạy tự động trên hạ tầng cloud của Anthropic (theo code.claude.com/docs/en/routines.md, fetch 2026-08-20). Vì chạy trên cloud thay vì trong terminal của bạn, routine vẫn tiếp tục chạy sau khi bạn đóng laptop.

Routines có trên gói Pro, Max, Team và Enterprise, và cần bật Claude Code on the web trên tài khoản. Tạo và quản lý tại claude.ai/code/routines, hoặc từ CLI bằng /schedule.

Một dòng để khỏi nhầm trước khi đọc tiếp: Routines không phải cùng tính năng với Ultrareview (/code-review ultra). Cả hai đều chạy trên cloud, nhưng Ultrareview là một lượt code review sâu, multi-agent, kích hoạt trên một PR cụ thể - không phải bộ lập lịch. Bài này chỉ nói về Routines.

Ba Loại Trigger Của Routine

Một routine bắt đầu chạy khi một trong các trigger của nó khớp điều kiện, và bạn có thể gắn nhiều hơn một trigger cho cùng một routine.

TriggerKích hoạt khi nàoDùng cho
ScheduleChạy theo chu kỳ lặp lại (hàng giờ, hàng ngày, ngày trong tuần, hàng tuần) hoặc chạy một lần tại một mốc thời gian cụ thể. Chu kỳ tối thiểu là 1 giờ; muốn cron tùy chỉnh phải dùng /schedule update trong CLI.Bump dependency mỗi đêm, kiểm tra docs-drift hàng tuần, nhắc dọn dẹp một lần.
APIMột HTTP POST tới endpoint /fire riêng của routine, xác thực bằng bearer token.Gắn routine vào công cụ alerting, pipeline deploy, hoặc bất kỳ hệ thống nào gọi được HTTP request có xác thực.
GitHubMột sự kiện repository như pull_request.* hoặc release.*, có thể lọc thêm bằng filter (author, title, body, branch, label, draft, merged).Review PR theo checklist riêng, backport có gắn label, cập nhật docs khi có release.

Một routine có thể kết hợp cả ba loại - ví dụ một routine review PR vừa chạy mỗi đêm, vừa có thể kích hoạt thủ công từ script deploy.

Routine vs /loop vs Desktop Scheduled Tasks - Chọn Cái Nào?

Claude Code thực ra có ba cách khác nhau để chạy việc mà không cần bạn ngồi gõ phím, và ba cái này rất hay bị nhầm lẫn. Đây là điểm khác biệt:

SurfaceChạy ở đâuCần máy bạn bật?Sống sót qua restart?Hợp cho
/loopTrong session CLI hiện tạiKhông - chết khi đóng sessionLặp ngắn trong session, kiểu chạy lại test tới khi pass
Desktop scheduled taskCục bộ, qua Desktop appCó (Desktop app phải đang chạy)Có, nhưng gắn với đúng máy đóViệc cần truy cập file cục bộ - xem Desktop scheduled tasks
RoutineCloud của Anthropic (hoặc self-hosted environment của bạn)KhôngCó, theo cả tài khoảnViệc lặp lại mà không nên phụ thuộc laptop có bật hay không

Routine đánh đổi quyền truy cập file cục bộ để lấy độ tin cậy luôn-bật: nó clone repository mới hoàn toàn mỗi lần chạy, thay vì đụng vào file đã có sẵn trên máy bạn.

Cách Tạo Một Routine

Bạn tạo được routine từ ba nơi, và cả ba đều ghi vào cùng một tài khoản cloud - routine tạo ở chỗ này sẽ xuất hiện ngay ở hai chỗ còn lại.

  • Web: claude.ai/code/routines rồi bấm New routine.
  • Desktop app: mục Routines ở sidebar, New routine, rồi chọn Cloud (chọn Local sẽ tạo ra Desktop scheduled task, không phải routine).
  • CLI: /schedule (alias /routines), dạng hội thoại - ví dụ /schedule daily PR review at 9am. Cần đăng nhập bằng tài khoản claude.ai (API key không dùng được cho việc này), và GitHub trigger tạo từ CLI cần Claude Code v2.1.225 trở lên.

Dù dùng nơi nào, form đều đi qua các bước giống nhau:

  1. Đặt tên và viết prompt. Đây là phần quan trọng nhất: routine chạy tự động, không có approval prompt, nên prompt phải tự đủ ý và nói rõ phải làm gì, "xong" nghĩa là gì.
  2. Chọn repository. Mỗi repo được clone mới hoàn toàn từ default branch ở đầu mỗi lần chạy. Claude push thay đổi vào branch bắt đầu bằng claude/, luôn được chấp nhận.
  3. Chọn cloud environment. Environment quyết định network access, environment variable, và setup script để cài dependency (được cache sau lần chạy đầu).
  4. Chọn một hoặc nhiều trigger. Schedule, API, GitHub, hoặc kết hợp.
  5. Rà lại connector. Mọi MCP connector đang kết nối với tài khoản claude.ai của bạn đều được thêm mặc định - gỡ bớt cái nào routine không cần.
  6. Bấm Create. Routine chạy vào lần trigger khớp tiếp theo, hoặc chạy ngay nếu bạn bấm Run now.

Riêng với GitHub trigger, Claude GitHub App phải được cài trên repository đích trước - web UI sẽ nhắc cài nếu chưa có. Từ CLI, tự cài app từ trang GitHub App trước, rồi nhờ Claude gắn trigger vào một routine đã có sẵn.

Mỗi lần chạy mở ra như một session Claude Code bình thường trong danh sách session của bạn, nơi bạn xem lại thay đổi và mở pull request.

Mô Hình Bảo Mật - Vì Sao Routine Chạy Không Cần Approval Prompt

Routine chạy như một session Claude Code cloud đầy đủ và tự động: không có permission-mode picker, không có approval prompt trong lúc chạy. Đó chính là mục đích - automation không người canh thì không thể dừng lại hỏi bạn. Điều này cũng có nghĩa mô hình an toàn phải nằm ở chỗ khác, không phải kiểu "Claude sẽ hỏi trước khi làm gì rủi ro". Ba cơ chế cụ thể dưới đây đáng nắm trước khi bạn tin tưởng giao việc cho một routine.

Khi trigger kích hoạt, session nhận prompt đã lưu của routine như một task được giao sẵn, không phải như input sống đến giữa cuộc hội thoại. Trigger chỉ chứng minh prompt đã được lưu từ trước bởi một session được ủy quyền trên tài khoản của bạn - không thay thế cho việc bạn phê duyệt bất cứ điều gì prompt yêu cầu Claude làm. Nội dung session fetch được trong lúc chạy vẫn xử lý bình thường như mọi khi. Đáng chú ý: trước bản CC v2.1.213, cùng một prompt này từng đến dưới dạng một thông báo nền không đáng tin mà Claude có thể từ chối hành động theo - Anthropic đã siết lại có chủ đích, tự nó là một tín hiệu cho thấy ranh giới tin cậy này đã được soi kỹ.

2. Text từ fire trigger bị cách ly, không được tin ngay

Trường text tùy chọn của endpoint /fire - nội dung alert, log lỗi, hay bất cứ gì bạn gửi lúc kích hoạt - đến dưới dạng bọc trong khối <routine-fire-payload> và gắn nhãn dữ liệu không đáng tin. Claude sẽ không làm theo chỉ dẫn bên trong đó trừ khi chính prompt của routine chủ động opt-in (ví dụ: "điều tra alert được mô tả trong khối routine-fire-payload"). Vậy nên một API token bị lộ cho phép ai đó kích hoạt routine của bạn, nhưng không thể chèn lệnh sống trừ khi prompt của bạn vốn đã tin mù quáng vào fire payload.

3. Blast radius = những gì bạn đã chọn

Routine chỉ chạm được tới repository bạn đã thêm, network mà chính sách environment cho phép, và connector bạn chưa gỡ. Siết chặt cả ba thứ đó theo đúng nhu cầu thật của task.

Trạng thái chạy màu xanh chỉ có nghĩa session khởi động và kết thúc mà không gặp lỗi hạ tầng - không có nghĩa task đã thành công. Luôn mở transcript của lần chạy để xác nhận Claude thực sự đã làm gì.

Giới Hạn Sử Dụng & Cap Hằng Ngày

Routine trừ vào usage gói thuê bao của bạn giống như một session tương tác bình thường, cộng thêm một cap riêng cho số lần chạy mỗi ngày:

GóiSố lần chạy routine / ngày
Pro5 / ngày
Max15 / ngày
Team25 / ngày
Enterprise25 / ngày

Nguồn: bài blog ra mắt của Anthropic, claude.com/blog/introducing-routines-in-claude-code (đăng 2026-04-14, kiểm tra lại 2026-08-20). Coi đây là số liệu đúng tại thời điểm 08/2026, không phải cố định - chính docs cũng ghi rõ giới hạn có thể đổi trong giai đoạn research preview.

Hai điều bảng trên chưa nói: các lần chạy one-off (một lần) không tính vào cap hằng ngày, và sự kiện GitHub webhook chịu một cap riêng theo giờ, tính theo cả routine lẫn tài khoản, trong giai đoạn research preview - khác với cap chạy theo ngày. Nếu chạm một trong hai cap, tổ chức đã bật usage credits có thể tiếp tục chạy theo dạng overage tính phí; nếu chưa bật, các lần chạy thêm bị từ chối cho tới khi reset.

Recipe Routine Thực Tế Bạn Có Thể Copy

Ba recipe dưới đây theo đúng khuôn mẫu ở mục "Example use cases" trong docs của Anthropic, viết lại thành prompt bạn có thể dán dùng ngay.

1. PR bump dependency mỗi đêm (Schedule, hàng tuần)

Trigger: schedule, hàng tuần. Connector: không cần gì ngoài chính repository.

Prompt mẫu: "Kiểm tra package.json và lockfile xem có dependency lỗi thời không. Với bất kỳ bump ở mức patch mà changelog không có breaking change, cập nhật nó và mở PR tóm tắt những gì đổi cùng lý do vì sao mỗi bump an toàn. Bỏ qua bump major hoặc minor - liệt kê chúng trong mô tả PR thay vì bump luôn."

2. Trợ lý triage alert on-call (API trigger)

Trigger: API. Công cụ monitoring của bạn POST tới endpoint /fire của routine với nội dung alert nằm trong text:

curl -X POST https://api.anthropic.com/v1/claude_code/routines/trig_ID/fire \
  -H "Authorization: Bearer TOKEN" \
  -H "anthropic-beta: experimental-cc-routine-2026-04-01" \
  -H "anthropic-version: 2023-06-01" \
  -H "Content-Type: application/json" \
  -d '{"text": "Sentry alert SEN-4521 fired in prod. Stack trace attached."}'

Prompt mẫu (phải nhắc thẳng tới payload, không thì routine bỏ qua text vừa gửi): "Điều tra alert được mô tả trong khối routine-fire-payload. Lấy stack trace, đối chiếu với các commit merge trong 48 giờ gần nhất, rồi mở draft PR đề xuất fix kèm link quay lại alert."

3. Review PR theo checklist riêng (GitHub trigger, bỏ qua draft)

Trigger: sự kiện GitHub, pull_request.opened, filter Is draft = false để PR nháp không kích hoạt review.

Prompt mẫu: "Áp dụng checklist review của team: không có unhandled promise rejection, không thêm console.log mới, phải có test cho mọi hàm export mới. Để lại comment inline cho mọi chỗ fail checklist, rồi post một comment tóm tắt để reviewer con người tập trung vào phần thiết kế thay vì việc máy móc."

Bắt đầu với recipe nào khớp với việc bạn đang làm tay theo định kỳ - đó là cách nhanh nhất để biết routine có thực sự tiết kiệm thời gian trước khi bạn dựng thứ phức tạp hơn.

Góc Nhìn Thật - Dùng Skill AgentKit Làm Instructions Cho Routine

Đây là một mẹo thực sự hữu ích một khi bạn đã quen với recipe đầu tiên: chính docs của Anthropic xác nhận một routine session "có thể dùng skill đã commit vào repository đã clone" - đúng loại file SKILL.md mà Claude Code vẫn đọc ở local. Chạy ak kit init engineer --target claude-code sẽ commit một bộ file SKILL.md vào repo của bạn. Một khi các file đó nằm trong repository mà routine clone, prompt của routine có thể trỏ thẳng vào một skill thay vì bạn phải tự viết logic review hay triage từ đầu.

Ví dụ: thay vì tự viết cả checklist trong recipe #3 ở trên, prompt có thể ghi "Làm theo .claude/skills/security-review/SKILL.md đối với PR này" và để file skill gánh phần checklist thật.

Rào chắn về tính trung thực, nói thẳng: điều này chỉ được xác nhận cho file skill. Còn việc các slash command riêng của AgentKit (/ak:cook và các lệnh khác) có hoạt động y hệt bên trong một session được routine kích hoạt tự động hay không thì chưa có nguồn chính thức nào xác nhận tại thời điểm viết - một routine session không phải session CLI tương tác, và cách xử lý slash command trong ngữ cảnh đó chưa được ghi trong tài liệu nào. Cho tới khi được xác nhận, hãy trỏ thẳng vào file skill trong prompt thay vì dùng slash command của kit. Bản thân AgentKit là add-on trả phí (Engineer Kit $99, thường có giảm giá); Routines thì miễn phí và có sẵn trong gói Claude Code của bạn. Xem review AgentKit để biết trong kit có gì trước khi quyết định nó có đáng giá cho use case này không.

Khi Nào Nên Dùng Routine, Khi Nào Nên Dùng Session Thủ Công

Chọn routine khi task đã rõ ràng, lặp lại được, và bạn mô tả được "xong" là gì trong một đoạn ngắn - bump dependency, triage mỗi đêm, checklist review. Chọn session thủ công, tương tác trực tiếp khi việc cần qua lại nhiều lần, cần phán đoán mà bạn chưa đặc tả hết được từ đầu, hoặc đang trong giai đoạn thăm dò mà bạn còn chưa biết "xong" là gì. Nếu bạn thấy mình phải sửa prompt của routine mỗi lần chạy để chỉnh output, đó thường là dấu hiệu task chưa "đủ hình dạng" để làm routine - nó cần người ngồi trong loop lâu hơn một chút.

Câu Hỏi Thường Gặp (FAQ)

Claude Code Routines là gì?

Routine là một cấu hình Claude Code được lưu sẵn - gồm prompt, một hoặc nhiều repository, và các connector - chạy tự động trên hạ tầng cloud của Anthropic khi lịch, API call hoặc sự kiện GitHub kích hoạt. Nó vẫn chạy dù laptop bạn đã tắt.

Có cần gói trả phí để dùng Routines không?

Có. Routines chỉ có trên gói Pro, Max, Team và Enterprise, và tài khoản phải bật Claude Code on the web. Không có tier miễn phí cho routines.

Mỗi ngày chạy được bao nhiêu routine?

Cap hằng ngày phụ thuộc gói: 5 lần/ngày với Pro, 15 lần/ngày với Max, 25 lần/ngày với Team hoặc Enterprise, theo bài blog ra mắt của Anthropic (số liệu tại thời điểm 08/2026 - xem số thực tế tại claude.ai/code/routines). Các lần chạy one-off (một lần) không tính vào cap này.

Routines đã chính thức phát hành hay còn preview?

Vẫn đang ở research preview tính tới 08/2026. Chính tài liệu Anthropic ghi rõ hành vi, giới hạn và bề mặt API có thể thay đổi, nên kiểm tra lại docs live trước khi phụ thuộc vào con số chính xác.

Routine có dùng được MCP connector của tôi không?

Có. Mọi connector MCP đang kết nối đều được thêm mặc định khi tạo routine, và Claude có thể dùng mọi tool từ đó - kể cả ghi dữ liệu - mà không hỏi quyền trong lúc chạy. Nên gỡ bớt connector nào routine không thực sự cần.

Nếu token của API trigger bị lộ thì sao?

Ai cầm token cũng có thể kích hoạt routine, nhưng nội dung text họ gửi sẽ được bọc trong khối <routine-fire-payload> và gắn nhãn dữ liệu không đáng tin. Prompt gốc của routine phải chủ động "opt in" thì Claude mới hành động theo nội dung đó - nên chỉ lộ token thôi chưa đủ để chèn lệnh sống, trừ khi prompt của bạn vốn đã tin tưởng mù quáng vào fire payload.

Một routine có kết hợp được nhiều loại trigger không?

Có. Một routine có thể gắn cùng lúc schedule, API trigger và GitHub trigger - ví dụ một routine review chạy mỗi đêm, cũng kích hoạt từ script deploy, và phản ứng với mọi PR mới.

Kết Luận

Chọn trigger khớp với task - schedule cho việc theo chu kỳ, API cho hệ thống ngoài, GitHub cho sự kiện repo - và siết environment cùng connector lại trước khi thả routine chạy tự do. Bắt đầu với một recipe trong danh sách trên, đọc transcript của vài lần chạy đầu thay vì tin vào trạng thái xanh, rồi mới thêm độ phức tạp khi đã tin được output. Muốn prompt phối hợp nhiều agent cùng lúc thay vì chạy đơn lẻ, xem orchestrate nhiều subagents.

Muốn có sẵn checklist review thay vì tự viết từ đầu? File skill (SKILL.md) của AgentKit đúng là kiểu instructions-đã-commit-vào-repo mà prompt của routine có thể trỏ vào - đã xác nhận cho skill, chưa xác nhận cho slash command của kit bên trong session được routine kích hoạt.

Xem Engineer Kit của AgentKit có gì bên trong →

J

Jasmine

Tác giả · Jasmine Daily

Người viết nên Jasmine Daily - ghi lại những suy nghĩ, trải nghiệm và những khoảnh khắc đời thường. Thật lòng, không vội vàng, không hoàn hảo.

Jasmine Daily

Vẫn còn nhiều điều đang chờ được đọc.

Nếu bài viết này chạm đến bạn, hãy ghé xem thêm vài trang khác trong cuốn nhật ký này.

Đọc tiếp

Bài viết liên quan