Courses
Mọi tác vụ Claude Code lặp lại đều có cùng một chi phí. Hãy nghĩ đến review PR mỗi đêm, kiểm toán phụ thuộc hằng tuần, hoặc kiểm tra tài liệu trước khi phát hành. Mỗi việc đều cần bạn ngồi trước terminal với một phiên đang mở để theo dõi. Đóng laptop lại, công việc sẽ chờ bạn.
Quy trình (Routines) loại bỏ chi phí đó.
Một quy trình chạy Claude Code trên đám mây trong hạ tầng do Anthropic quản lý, nên nó vẫn tiếp tục hoạt động khi bạn đóng laptop. Bạn viết tác vụ một lần, trỏ vào các kho mã, và nó kích hoạt theo lịch hoặc sự kiện mà không cần phiên làm việc mở.
Hướng dẫn này sẽ chỉ bạn xây dựng quy trình đầu tiên. Bạn sẽ tạo một quy trình theo lịch, theo dõi nó chạy, rồi mở rộng phạm vi và năng lực của nó.
Nếu muốn đào sâu hơn, khóa học thực hành Claude Code in Action của chúng tôi bao quát mọi thứ từ quản lý ngữ cảnh và chế độ plan đến lệnh tùy chỉnh, máy chủ MCP, hooks và SDK.
Claude Code Routines là gì?
Một quy trình là cấu hình Claude Code đã lưu: một prompt, một hoặc nhiều kho mã, và tập các connector. Bạn đóng gói một lần, và nó tự động chạy trên hạ tầng đám mây do Anthropic quản lý.
Ba phần này mỗi phần đảm nhiệm một vai trò cụ thể:
- Prompt. Phần quan trọng nhất vì quy trình chạy mà không có bạn phê duyệt ở mỗi bước. Prompt phải bao quát toàn bộ tác vụ và tiêu chí hoàn thành.
- Kho mã (Repositories). Claude sẽ clone các kho này ở đầu mỗi lượt chạy và làm việc bên trong chúng.
- Connector. Các tích hợp claude.ai trên tài khoản của bạn, như Slack hoặc Linear, từ đó quy trình có thể đọc và có thể ghi trong khi chạy. Ví dụ, quy trình phân loại hỗ trợ có thể đọc một kênh Slack và tạo issue trong Linear.
Connector cho quy trình được thêm trên nền tảng claude.ai, MCP server cũng vậy. Các cấu hình cục bộ của bạn sẽ không được mang theo.

Một quy trình có thể kích hoạt theo ba cách: theo lịch, qua cuộc gọi API, hoặc qua sự kiện GitHub. Một quy trình duy nhất có thể kết hợp cả ba.
Quy trình so với /loop
Có sự khác biệt giữa /loop và /schedule vì chúng giải quyết các vấn đề khác nhau.
Một tác vụ /loop tồn tại trong phiên hiện tại của bạn. Nó chỉ kích hoạt khi Claude Code đang chạy và rảnh trên máy của bạn, và đóng terminal sẽ dừng nó. Điều đó khiến nó phù hợp để polling một bản dựng bạn đang theo dõi ngay lúc này.
Để biết thêm về /loop và các lệnh quan trọng khác, tôi khuyên bạn đọc hướng dẫn Claude Code Terminal của chúng tôi.
Một quy trình chạy trên đám mây và tồn tại độc lập với bất kỳ phiên nào:
|
|
Quy trình trên đám mây |
|
|
Chạy ở |
Đám mây Anthropic |
Máy của bạn |
|
Cần máy hoạt động |
Không |
Có |
|
Cần phiên làm việc |
Không |
Có |
|
Khoảng lặp tối thiểu |
1 giờ |
1 phút |
Còn có một lựa chọn cục bộ thứ ba. Tác vụ theo lịch trên máy tính để bàn chạy trên chính máy của bạn, phù hợp cho công việc cần tệp và công cụ cục bộ. Chúng chỉ chạy khi máy đang bật, nhưng không yêu cầu mở ứng dụng Claude.
Quy trình chúng ta sẽ xây dựng
Mô hình tư duy đã sẵn sàng. Giờ bạn cần thứ gì đó để một quy trình xử lý. Cho hướng dẫn này, chúng tôi đã xây dựng pr-review-demo, một dự án Python nhỏ với một pull request đang mở.
Nó có gói cartlib xử lý giỏ hàng: lưu giá dưới dạng số nguyên xu, áp dụng chiết khấu thành viên và mua số lượng lớn, và cộng thuế bán hàng theo bang để ra tổng phí. Gói trên nhánh main là đúng.
Pull request đang mở thêm mã giảm giá vận chuyển miễn phí, và chứa một lỗi thật do chúng tôi cố ý cài vào. Đây là lỗi sai đơn vị chéo tệp, không thể thấy trong một tệp đơn lẻ mà chỉ lộ ra khi lần theo giá trị qua hai tệp. Nhờ đó quy trình có việc thực tế để làm cho phần còn lại của hướng dẫn.
Hãy fork repo để làm theo trên bản sao của bạn. Đây là repo dùng tạm, và các mẫu áp dụng được cho bất kỳ kho nào bạn trỏ quy trình vào.
Điều kiện tiên quyết để làm theo
Bạn cần tài khoản claude.ai ở gói Pro, Max, Team, hoặc Enterprise với Claude Code trên web được bật. Quy trình nằm tại claude.ai/code/routines.
Lệnh /schedule xác thực bằng đăng nhập thuê bao claude.ai của bạn, không phải khóa Anthropic API hay xác thực Bedrock, Vertex, hoặc Foundry. Nó cũng cần CLI phiên bản mới, nên hãy chạy claude update nếu bản của bạn đã cũ.
Cũng có hai điều kiện tiên quyết riêng cho GitHub. Thứ nhất, /web-setup cấp quyền clone, điều mà quy trình theo lịch cần. Thứ hai, Ứng dụng GitHub của Claude, được cài đặt riêng, cho phép kích hoạt GitHub sẽ nói sau.
Xây dựng Claude Code Routines với /schedule
Khi đã có repo để trỏ vào, hãy xây dựng quy trình từ CLI. Chạy /schedule trong bất kỳ phiên nào. Bạn có thể truyền mô tả trực tiếp:
/schedule daily PR review at 9 am
Sau đó Claude sẽ dẫn bạn qua các trường giống như trên biểu mẫu web: tên, prompt, kho mã, môi trường, connector, và lịch. Nó xác nhận lịch theo múi giờ cục bộ của bạn và chuyển đổi giúp bạn, nên 9 giờ sáng sẽ thành biểu thức cron đúng mà bạn không cần tự viết.

Nếu tài khoản của bạn chưa kết nối GitHub, Claude sẽ nhắc chạy /web-setup. Hãy chạy nó, rồi chạy lại /schedule để tiếp tục từ nơi bạn dừng.
Viết prompt để chạy mà không cần bạn
Prompt quyết định quy trình này thành công hay thất bại.
Một phiên bình thường là cuộc hội thoại, nên bạn có thể chỉnh Claude khi nó thực hiện. Một quy trình thì không ai chỉnh. Nó khởi động lạnh, chạy đến hết, và không thể hỏi làm rõ. Prompt phải nêu tên tác vụ, kho mã, và thế nào là chạy xong.
Hãy so sánh hai prompt sau. Prompt đầu để ngỏ quá nhiều:
Review the open PR.
Nó không nêu kho mã hay tiêu chí review, không có nơi để để lại bình luận, và không có định nghĩa hoàn thành. Một lượt chạy lạnh không thể tự lấp các khoảng trống đó. Prompt thứ hai giải đáp tất cả:
Review the open pull request in pr-review-demo. The cartlib package works entirely in integer cents. Read the checkout flow and the values it pulls from config.py, and check that every amount stays in cents end to end. If any value is mixed in using the wrong unit, leave an inline comment on that line explaining the error and its effect on the customer's total. Then, post a summary comment stating whether the PR is safe to merge.
Prompt đó nêu tên repo và phát biểu bất biến mà mã phải đảm bảo: mọi giá trị đều là xu. Nó chỉ ra hai tệp quan trọng và định nghĩa xong việc là bình luận inline cộng phán quyết merge. Như vậy, lượt chạy có mục tiêu để tự đạt được. Hãy dán nó vào khi /schedule hỏi tác nhân nên làm gì.
Mặc định tất cả connector của bạn đều được bao gồm, nên một quy trình mới đã có thể truy cập mọi thứ tài khoản bạn kết nối. Điều đó tạm ổn, và phần sau sẽ tinh gọn lại.
Khi bạn hoàn tất, Claude lưu quy trình và xác nhận nó đã hoạt động, kèm kho mã, lịch, mô hình, và thời điểm chạy tiếp theo.

Quy trình cũng xuất hiện trong danh sách tại claude.ai/code/routines. Mở trang chi tiết của nó để xem mọi thứ ở một nơi. Bao gồm trạng thái, kho mã, lịch, connector, toàn bộ prompt, và nút Chạy ngay.

Nhấp Chạy ngay để chạy ngay, thay vì chờ đến 9 giờ sáng.
Đọc kết quả chạy
Lượt chạy bắt đầu từ một bản clone mới của kho mã của bạn, lấy từ nhánh mặc định. Mọi thứ bạn đã commit đều có ở đó. Những gì bạn chỉ cài đặt trên máy của riêng bạn thì không, vì vậy quy trình nhìn thấy repo như cách đồng đội bạn sẽ thấy.
Khi hoàn tất, danh sách chạy hiển thị trạng thái xanh. Màu xanh nghĩa là phiên đã chạy và thoát mà không có lỗi hạ tầng. Nhưng nó không đồng nghĩa tác vụ trong prompt của bạn đã thành công. Ba dạng thất bại ẩn sau dấu tích xanh và chỉ lộ trong bản ghi hội thoại:
- Một yêu cầu mạng bị môi trường chặn.
- Một công cụ connector mà quy trình mong đợi nhưng không thể truy cập.
- Thất bại ở mức tác vụ, khi lượt chạy kết thúc êm nhưng làm sai việc.

Vì vậy hãy mở lượt chạy để xác nhận. Nhấp vào bất kỳ lượt chạy nào để đọc như một phiên đầy đủ, nơi bạn có thể xem Claude đã làm gì, xem diff, mở pull request, hoặc tiếp tục trao đổi.
Trên repo demo, bản ghi cho thấy phát hiện. Claude đọc checkout.py và thấy coupon được gán 5 thay vì 500. Nó giải thích rằng điều này áp dụng $5 thành 5 xu, tính thừa cho khách $4,95 mỗi đơn, và đưa ra một dòng sửa. Sau đó nó đăng review lên PR thông qua connector GitHub.

Quản lý Claude Code routines từ CLI
Khi đã có quy trình, bạn quản lý nó bằng cùng một lệnh. Chạy /schedule list để xem tất cả, /schedule update để thay đổi một quy trình, và /schedule run để kích hoạt ngay.
Các preset lịch là hàng giờ, hằng ngày, ngày làm việc, và hằng tuần. Với khoảng tùy chỉnh, như mỗi 2 giờ hoặc ngày đầu tháng, trước tiên chọn preset gần nhất. Sau đó chạy /schedule update để đặt biểu thức cron trực tiếp. Khoảng tối thiểu là 1 giờ, nhanh hơn sẽ bị từ chối.
Quy trình cũng tính vào hạn mức lượt chạy hằng ngày của tài khoản bạn, và trong giai đoạn thử nghiệm nghiên cứu, các sự kiện GitHub có giới hạn theo giờ. Sự kiện vượt ngưỡng sẽ bị bỏ qua, không xếp hàng đợi. Các con số hiện tại thay đổi theo gói và hiển thị tại claude.ai/code/routines.
CLI chỉ tạo được các quy trình theo lịch. Để thêm kích hoạt GitHub hoặc API, hãy chỉnh sửa quy trình trong ứng dụng web.
Kích hoạt Claude Code Routines từ GitHub và HTTP
Lịch sẽ kích hoạt quy trình của bạn theo đồng hồ. Hai kích hoạt khác cho phép GitHub hoặc hệ thống của bạn chạy cùng một quy trình. Một quy trình review PR có thể chạy mỗi đêm, phản ứng với mọi PR mới, và khởi động từ script triển khai, tất cả đồng thời.
Bạn thêm cả hai bằng cách chỉnh sửa quy trình tại claude.ai/code/routines.
Phản ứng với pull request bằng kích hoạt GitHub
Kích hoạt GitHub yêu cầu cài Đặt Ứng dụng GitHub của Claude trên kho mã bạn muốn đăng ký. Nếu thiếu Ứng dụng, phần thiết lập kích hoạt sẽ nhắc bạn cài. Lưu ý rằng /web-setup trước đó chỉ cấp quyền clone. Nó không cài Ứng dụng hay cung cấp webhook, nên chạy lệnh đó không bao gồm bước này.
Khi Ứng dụng đã được cài, hãy thêm kích hoạt và chọn sự kiện. Các sự kiện chia làm hai nhóm, pull request và phát hành (releases), và bạn chọn một hành động cụ thể bên trong. Giao diện hiển thị sẵn các tùy chọn phổ biến như PR opened, PR merged, và Release published, cộng lựa chọn Custom cho phần còn lại.
Sau đó thu hẹp bằng bộ lọc. Với pull request, bạn có thể lọc theo tác giả, tiêu đề, nội dung, nhánh base, nhánh head, nhãn, trạng thái bản nháp, và trạng thái đã merge. Tất cả điều kiện phải khớp để quy trình kích hoạt.
Toán tử matches regex kiểm tra toàn bộ trường, không phải chuỗi con. Để khớp mọi tiêu đề chứa hotfix, hãy viết .*hotfix.*. Một hotfix đơn thuần chỉ khớp tiêu đề chính xác như vậy, và không gì khác.

Kích hoạt GitHub đặt để chạy khi có pull request mới, lọc theo nhánh main và một tác giả cụ thể.
Với repo demo, đặt sự kiện là mở pull request và để trống bộ lọc. Giờ đây mọi PR mới đều kích hoạt review bạn đã viết trước đó, không cần ai ở terminal. Nó lần theo đơn vị của coupon qua các tệp, để lại bình luận inline về lỗi, và đăng phán quyết merge.
Mỗi sự kiện khớp sẽ bắt đầu một phiên riêng, nên hai PR liên tiếp tạo ra hai lượt chạy độc lập.
Kích hoạt một quy trình qua HTTP
Kích hoạt API cho phép công cụ của bạn kích hoạt một quy trình. Chọn API dưới bộ chọn kích hoạt và nhấp Generate token. Token chỉ hiển thị một lần và không thể truy xuất lại, nên hãy lưu nó ngay vào kho bí mật của công cụ cảnh báo của bạn.
Sau đó POST đến endpoint fire của quy trình với token và phần thân text:
curl -X POST https://api.anthropic.com/v1/claude_code/routines/$ROUTINE_ID/fire \
-H "Authorization: Bearer $ROUTINE_TOKEN" \
-H "anthropic-version: 2023-06-01" \
-H "anthropic-beta: experimental-cc-routine-2026-04-01" \
-H "Content-Type: application/json" \
-d '{"text": "Sentry alert SEN-4521 fired in prod. Stack trace attached."}'
Giá trị text được truyền như chuỗi thuần và không được parse, vì vậy hãy viết văn bản thường thay vì JSON. Dữ liệu có cấu trúc sẽ đến dưới dạng văn bản thô và quy trình đọc nguyên văn.
Header anthropic-beta là bắt buộc, và API đang ở dạng thử nghiệm, nên hãy kiểm tra tài liệu API trước khi tích hợp vào CI. Từ đó, công cụ giám sát có thể gọi endpoint này khi có cảnh báo và để quy trình tự mở PR sửa lỗi nháp.
Giới hạn phạm vi truy cập của Claude Code Routines
Một quy trình chạy tự động, nên trước khi trỏ vào một repo thật, hãy giới hạn những gì nó có thể truy cập. Tài liệu mô tả bốn cơ chế kiểm soát:
- Quy trình hành động với tư cách ai, thông qua danh tính GitHub của bạn và các connector.
- Những nhánh nào nó có thể push.
- Những connector nào nó có thể dùng.
- Những máy chủ (host) nào môi trường cho phép truy cập qua mạng.
Giới hạn từng mục theo đúng nhu cầu của quy trình.
Danh tính của quy trình
Danh tính là ưu tiên đầu vì đó là điều đồng đội sẽ nhận thấy trên repo chung. Mọi việc một quy trình làm qua danh tính GitHub hoặc connector của bạn đều hiển thị như do bạn thực hiện.
Commit và pull request mang tài khoản GitHub của bạn, tin nhắn Slack và ticket Linear dùng các tài khoản đã liên kết. Đồng đội sẽ thấy tên bạn trên các commit và PR đó, nên hãy đặt tên nhánh và tiêu đề theo cách báo hiệu rằng một quy trình đã tạo ra chúng.
Các nhánh quy trình có thể push
Nhánh là tiếp theo. Một lượt chạy là một phiên đám mây đầy đủ không có lời nhắc cấp quyền, nên nó sẽ không dừng lại để hỏi trước khi sửa tệp hay mở pull request.
Lan can an toàn là nhánh nó có thể ghi. Theo mặc định, Claude chỉ push lên các nhánh bắt đầu bằng claude/, giúp nó tránh xa các nhánh được bảo vệ hoặc sống lâu như main.
Một thiết lập theo từng repo, Cho phép push không hạn chế, sẽ gỡ hạn chế đó. Chỉ bật có chủ đích, cho repo thực sự cần.
Các connector quy trình có thể dùng
Connector là rủi ro nhất trong bốn mục. Mặc định, tất cả connector trên claude.ai của bạn đều được bao gồm, và Claude có thể dùng mọi công cụ từ một connector đã bao gồm, kể cả ghi dữ liệu, mà không hỏi trong khi chạy.
Vì vậy hãy tinh gọn danh sách theo nhu cầu thực sự. Một quy trình review PR cần GitHub và rất ít thứ khác. Các connector email hoặc lịch lạc lõng là quyền truy cập mà quy trình không cần, và prompt injection ẩn trong một PR có thể lợi dụng quyền đó gây hại.

Truy cập mạng
Truy cập mạng là biện pháp cuối. Môi trường Default dùng truy cập mạng tin cậy, cho phép đến một danh sách trắng tích hợp sẵn gồm các registry gói, API nhà cung cấp đám mây, registry container, và các miền phát triển phổ biến, và chặn phần còn lại.
Yêu cầu bị chặn sẽ trả 403 và x-deny-reason: host_not_allowed. Chỉ nới lỏng khi quy trình cần truy cập dịch vụ của bạn. Nếu không, lỗi sẽ âm thầm, xuất hiện trong bản ghi hội thoại hơn là một lỗi rõ ràng.
Gợi ý quy trình Claude Code để xây tiếp
Bạn có thể xây, kích hoạt và giới hạn phạm vi cho một quy trình. Những ví dụ từ tài liệu chính thức dưới đây ghép từng công việc với kích hoạt phù hợp:
- Review mã theo tiêu chí riêng. Kích hoạt GitHub khi mở PR. Áp dụng checklist review của đội bạn, để lại bình luận inline về bảo mật, hiệu năng và phong cách, và thêm tóm tắt. Đây là bản demo, tổng quát hóa theo tiêu chuẩn thực của bạn.
- Dọn dẹp tồn đọng. Kích hoạt theo lịch, mỗi tối trong tuần. Đọc các issue mở từ lần chạy trước, gán nhãn, phân công phụ trách dựa trên vùng mã mà mỗi issue đề cập, và đăng tóm tắt lên Slack.
- Kiểm chứng triển khai. Kích hoạt API từ pipeline CD sau mỗi lần triển khai production. Chạy kiểm tra khói với bản dựng mới, quét log lỗi tìm hồi quy, và đăng quyết định nên/không nên tiếp tục lên kênh phát hành.
- Chênh lệch tài liệu. Kích hoạt theo lịch, hằng tuần. Quét các PR đã merge từ lần chạy trước, gắn cờ tài liệu tham chiếu API đã thay đổi, và mở PR cập nhật vào kho tài liệu.
Quy trình phù hợp với công việc không cần giám sát, lặp lại, và gắn với kết quả rõ ràng. Nếu bạn có thể viết tiêu chí thành công vào prompt, như bạn đã làm với review PR, thì tác vụ đó là ứng viên tốt. Công việc cần phán đoán thời gian thực của con người thì không phù hợp.
Kết luận
Quy trình thay đổi cách bạn dành thời gian cho công việc lặp lại. Thay vì chạy từng tác vụ trong terminal, bạn viết một lần và review những gì đã chạy xong. Quy trình review PR bạn xây dựng sẽ kích hoạt khi bạn đóng laptop, và bạn đọc kết quả khi sẵn sàng.
Để đi xa hơn với Claude Code, các hướng dẫn sau rất phù hợp để đọc kèm:
- Thực hành tốt nhất với Claude Code để tận dụng tối đa mỗi phiên làm việc.
- Viết tệp CLAUDE.md để cung cấp ngữ cảnh chung cho quy trình và phiên làm việc của bạn.
- Phát triển theo đặc tả cho những tác vụ đáng để đặc tả trước khi tự động hóa.
- Chế độ Auto và kênh để chạy Claude Code với ít giám sát hơn.
Câu hỏi thường gặp về Claude Code Routines
Claude Code routine là gì?
Một quy trình là cấu hình Claude Code đã lưu: một prompt, một hoặc nhiều kho mã, và một tập connector. Bạn đóng gói một lần, và nó tự động chạy trên hạ tầng đám mây do Anthropic quản lý, được kích hoạt theo lịch, bởi cuộc gọi API, hoặc bởi sự kiện GitHub.
Quy trình khác /loop như thế nào?
Một tác vụ /loop bị giới hạn trong phiên. Nó chỉ chạy khi Claude Code đang mở và rảnh trên máy của bạn, và đóng terminal sẽ dừng nó. Một quy trình chạy trên đám mây và tồn tại độc lập với bất kỳ phiên nào, vì vậy nó vẫn hoạt động khi bạn đóng laptop. Khoảng lặp tối thiểu là 1 giờ đối với quy trình và 1 phút đối với /loop.
Làm thế nào để tạo một quy trình?
Chạy lệnh /schedule trong bất kỳ phiên Claude Code nào, ví dụ, /schedule daily PR review at 9 am. Claude sẽ dẫn bạn qua các trường giống biểu mẫu web (tên, prompt, kho mã, môi trường, connector, và lịch), rồi lưu quy trình vào tài khoản của bạn, nơi nó xuất hiện tại claude.ai/code/routines.
Quy trình có thể chạy khi tôi đóng laptop không?
Có. Quy trình chạy trên hạ tầng đám mây do Anthropic quản lý thay vì máy của bạn, nên một lượt chạy theo lịch hoặc kích hoạt sẽ hoàn tất ngay cả khi bạn đóng laptop. Bạn có thể theo dõi lượt chạy trên web hoặc kiểm tra bản ghi hội thoại sau đó.
Tôi kiểm soát những gì quy trình có thể truy cập như thế nào?
Giới hạn quy trình qua bốn cơ chế: danh tính nó hành động theo, các nhánh nó có thể push, các connector nó có thể dùng, và các host mạng nó có thể truy cập. Theo mặc định, Claude chỉ push lên các nhánh có tiền tố claude/, và tất cả connector của bạn đều được bao gồm, vì vậy hãy tinh gọn danh sách connector và chỉ nới truy cập mạng khi quy trình thực sự cần.
Tôi là người sáng tạo nội dung về khoa học dữ liệu với hơn 2 năm kinh nghiệm và là một trong những tài khoản có lượng theo dõi lớn nhất trên Medium. Tôi thích viết các bài chuyên sâu về AI và ML với chút giọng điệu mỉa mai, vì bạn cũng phải làm gì đó để chúng bớt nhàm chán. Tôi đã xuất bản hơn 130 bài viết và một khóa học trên DataCamp, và đang ấp ủ thêm một khóa nữa. Nội dung của tôi đã tiếp cận hơn 5 triệu lượt xem, trong đó có 20 nghìn người trở thành người theo dõi trên cả Medium và LinkedIn.
