- Claude Code SDK cung cấp khả năng truy cập lập trình vào tác nhân AI của Claude Code, mở ra cánh cửa cho các ứng dụng mới từ công cụ Unix đơn giản đến tự động hóa CI nâng cao.
- Claude GitHub Action, được xây dựng dựa trên SDK, tự động hóa các tác vụ phát triển như review mã, tạo tính năng, sửa lỗi và cập nhật pull requests trực tiếp trong quy trình GitHub.
- Cả SDK và GitHub Action đều nhấn mạnh tính linh hoạt thông qua các tính năng như kiểm soát quyền truy cập chi tiết, đầu ra JSON có cấu trúc và khả năng tương tác phiên, với kiến trúc mã nguồn mở khuyến khích mở rộng.
Building headless automation with Claude Code | Code w/ Claude
Claude Code SDKcung cấp quyền truy cập lập trình vào tác nhân AI của Claude Code, cho phép tích hợp vào các kịch bảnUnix tool,CI/CDvà phát triểnứng dụng AItùy chỉnh.- Sử dụng
--allow-tools <tool_name>để cấp quyền cụ thể cho Claude Code, ví dụ:writeđể ghi tệp,bashđể thực thi lệnh, hoặc cácMCP toolstùy chỉnh. - Sử dụng
--output-format JSONhoặcstream JSONđể nhận phản hồi có cấu trúc từ Claude Code, cần thiết cho việc phân tích và xây dựng ứng dụng tự động. - Lưu trữ
session IDtừ đầu ra có cấu trúc để duy trì trạng thái ngữ cảnh, cho phép xây dựng các tính năng tương tác người dùng nhiều lượt. Claude GitHub Actiontự động hóa các tác vụ phát triển trongGitHub issuesvàpull requests(như tạo tính năng, sửa lỗi, review mã, tạo/cập nhật PR), chạy trênGitHub runnershiện có mà không cần cơ sở hạ tầng bổ sung.- Triển khai
--permission-prompt-toolđể ủy quyền quản lý quyền cho mộtMCP server, cho phép người dùng phê duyệt hoặc từ chối công cụ trong thời gian thực. - Khám phá mã nguồn mở của
Claude GitHub Action(Base Action và PR Action) để hiểu kiến trúc nhiều lớp và lấy cảm hứng xây dựng các hành động tùy chỉnh. - Cài đặt Claude GitHub Action dễ dàng bằng cách gõ
/install GitHub actiontrong Claude Code terminal của repository mong muốn.
Claude Code SDK— Bộ công cụ phát triển phần mềm Claude CodeClaude GitHub Action— Hành động GitHub của ClaudeAI Agent— Tác nhân AIHeadless Node— Node không giao diệnPull Request (PR)— Yêu cầu hợp nhất (PR)Structured Output— Đầu ra có cấu trúcSession ID— ID phiênAllowed Tools— Các công cụ được phépOpen Source— Mã nguồn mởGitHub Runner— Trình chạy GitHub
Giới thiệu chung và Chương trình
Chào buổi chiều mọi người. Tên tôi là Sid by the Saria. Tôi là kỹ sư trong nhóm Claude Code. Và hôm nay, chúng ta sẽ nói một chút về Claude Code SDK và Claude GitHub Action vừa được công bố hôm nay. Tuyệt vời.
Một chút về chương trình nghị sự: Chúng ta sẽ bắt đầu nhanh với SDK, chỉ để đưa ra một số ví dụ về cách bắt đầu và cách sử dụng SDK. Sau đó, chúng ta sẽ đi sâu vào một buổi trình diễn trực tiếp về GitHub Action, điều này sẽ rất thú vị. GitHub Action được xây dựng dựa trên SDK, vì vậy nó có ý nghĩa như một nguồn cảm hứng cho những điều bạn có thể làm bằng cách sử dụng Claude Code SDK. Sau đó, chúng ta sẽ đi sâu vào một số tính năng nâng cao hơn của SDK. Và cuối cùng, chúng ta sẽ hướng dẫn tất cả mọi người thiết lập Claude GitHub Action trên repo của mình. Các bạn có thể bắt đầu sử dụng và xây dựng dựa trên đó.
Tuyệt vời. Thực ra, trước khi bắt đầu, tôi có thể hỏi một chút được không? Có bao nhiêu người ở đây đã sử dụng Claude Code? OK. Rất nhiều người. Và trong số những người đã sử dụng Claude Code, có bao nhiêu người đã sử dụng Claude Dash P hoặc biết nó là gì? OK. Ít hơn nhiều. Điều đó rất tốt để biết. Nếu các bạn chưa có Claude Code trên máy tính xách tay, đó là cách để có được nó. Tôi khuyến khích bạn cài đặt nó trên máy tính xách tay và làm theo. Sẽ có những phần của buổi nói chuyện này sẽ rất có lợi khi làm theo. Và nếu bạn không muốn, bạn không cần phải làm. Tất cả là do bạn.
Claude Code SDK: Truy cập Sức mạnh Agent
Vậy Claude Code SDK là gì? Đó là một cách để truy cập sức mạnh của Tác nhân AI Claude Code một cách lập trình trong Headless Node. Điều này mạnh mẽ bởi vì nó là một loại nguyên thủy mới và một loại khối xây dựng mới cho phép bạn xây dựng các ứng dụng mà trước đây không thể thực hiện được. Những điều bạn có thể làm với SDK là những điều siêu đơn giản để bắt đầu.
Ví dụ, bạn có thể sử dụng nó như một Unix tool. Triết lý Unix tool là điều thực sự làm cho Claude Code mạnh mẽ bởi vì bạn có thể cắm nó vào bất cứ nơi nào bạn có thể chạy Bash hoặc một terminal. Vì vậy, bạn có thể sử dụng nó trong các pipeline Unix của mình. Bạn có thể truyền dữ liệu vào đó, truyền dữ liệu ra khỏi đó, tạo các chuỗi phức tạp từ đó và những thứ tương tự.
Sau đó, bạn có thể xây dựng tự động hóa CI dựa trên nó. Vì vậy, bạn có thể để Claude xem xét mã của mình. Một số người thực sự còn nhờ Claude viết linters mới cho họ nữa. Sau đó, bạn có thể đi vào mã của mình nếu có những điều cụ thể mà bạn đã định nghĩa một cách lập trình. Bạn có thể nhờ Claude Code làm điều đó. Và sau đó, chúng ta cũng đi vào các ứng dụng cao cấp hơn. Vì vậy, nếu bạn muốn xây dựng chatbot của riêng mình được hỗ trợ bởi Claude Code, điều đó hoàn toàn có thể. Nếu bạn muốn Claude Code viết mã cho bạn trong một môi trường mới hoặc một môi trường từ xa riêng biệt, bạn cũng có thể xây dựng những loại ứng dụng đó.
Và cuối cùng, có một vài tính năng. Chúng ta sẽ nói thêm về các tính năng trong các slide sắp tới. Các SDK hoặc bindings cho Python và TypeScript cho Claude Code SDK sẽ sớm ra mắt. Vì vậy, điều đó sẽ giúp các bạn dễ dàng sử dụng và xây dựng dựa trên đó hơn nhiều.
Ví dụ cơ bản với Claude Code SDK
Hãy đi vào một số ví dụ cơ bản. Gọi Claude Code SDK đơn giản như việc thực hiện Claude-P và theo sau đó là chuỗi câu lệnh mà bạn muốn hỏi Claude.
Trong ví dụ này, tôi đang yêu cầu Claude viết một bộ tạo chuỗi Fibonacci cho tôi. Và nếu bạn để ý, tôi cũng cung cấp một --allow-tools write, đây là một cách để tôi chủ động cấp cho nó quyền truy cập vào công cụ write để nó có thể ghi tệp vào hệ thống tệp của tôi.
Và đây cũng là điều tôi thích làm: truyền logs cho Claude. Vì vậy, bạn có thể thực hiện cat .app.log và sau đó truyền nó vào Claude-P. Tôi không thích xem logs thủ công. Vì vậy, đây là điều tôi làm khá thường xuyên. Và như bạn có thể thấy, nó làm khá tốt việc tóm tắt các lỗi log là gì.
Tương tự, nếu bạn giống tôi, tôi chỉ không thể tự mình hiểu được đầu ra của ifconfig. Tôi vẫn không biết nó có nghĩa là gì, nhưng Claude thì có. Và Claude làm điều đó cho tôi ở đây.
Và cuối cùng, đây là điều làm cho SDK hoạt động: Chúng ta có một định dạng đầu ra. Nếu bạn thực hiện --output-format JSON, Claude Code thực sự sẽ xuất mọi thứ, hoặc phản hồi của nó, ở định dạng JSON thay vì văn bản thuần túy. Và bạn có thể phân tích JSON này và xây dựng dựa trên nó. Vì vậy, chúng ta sẽ nói thêm về chi tiết về điều này và những gì khác bạn có thể làm với JSON này. Nhưng tôi muốn đưa ra ví dụ đó.
Claude GitHub Action: Một ví dụ nâng cao
Bây giờ chúng ta hãy đi vào một ví dụ phức tạp hơn đáng kể, đó là Claude GitHub Action. Claude GitHub Action được xây dựng dựa trên SDK. Và nó có thể được sử dụng để code review, nó có thể được sử dụng để tạo tính năng mới, nó có thể được sử dụng để triage bug và vân vân. Và cái này cũng là mã nguồn mở. Vì vậy, tôi sẽ đưa một liên kết ở cuối buổi nói chuyện để các bạn có thể xem mã nguồn để lấy cảm hứng về cách sử dụng nó. Nhưng bây giờ, hãy đi vào một buổi trình diễn trực tiếp trên máy tính xách tay của tôi.
Trình diễn trực tiếp Claude GitHub Action
Tôi đã sao chép một ứng dụng câu đố mã nguồn mở nhỏ phổ biến cho mục đích của buổi trình diễn này. Và chúng ta sẽ khởi chạy nó chỉ để xem nó hoạt động như thế nào. Và sau đó, chúng ta sẽ nói chuyện rất nhiều để xây dựng một thứ gì đó dựa trên nó.
Vì vậy, tôi vừa thực hiện NPM start, điều này đã mở ứng dụng câu đố mới của tôi. Nó thực sự khá tiện lợi. Nó cho phép bạn chọn một loạt các danh mục, số lượng câu hỏi bạn muốn. Mức độ khó, chắc chắn là dễ đối với tôi. Tôi dở về đố vui. Loại câu hỏi. Và sau đó có một bộ đếm ngược. Vì vậy, chúng ta sẽ không thực sự trả lời những câu này trừ khi có ai đó cảm thấy rất mạnh mẽ muốn hô to câu trả lời. Nhưng tôi sẽ chỉ lướt qua những câu này để cho các bạn thấy ứng dụng câu đố này hoạt động như thế nào. Đó. Không có gì ngạc nhiên. Bạn nhận được một điểm F. Nhưng không sao.
Vì vậy, đây là ứng dụng câu đố demo nhỏ mã nguồn mở. Và nếu bạn nhìn vào các GitHub issues cho repository này, chúng ta thấy một vài vấn đề rất thú vị. Có một issue nói rằng chúng ta nên thêm các power-up để loại bỏ 50-50 các lựa chọn và bỏ qua câu hỏi miễn phí. Vì tôi dở về đố vui, tôi thực sự thích tính năng đó. Và tôi muốn xây dựng nó. Và trước bài thuyết trình này, tôi đã cài đặt Claude, Claude GitHub Action trên repository của mình. Vì vậy, nó đã có sẵn. Nhưng chúng ta cũng sẽ xem cách thiết lập nó sau.
OK. Vậy đây là issue. Nó có khá ít chi tiết về cách triển khai tính năng này. Nó chỉ đơn thuần là một danh sách mong muốn, thực sự, như một tính năng mong muốn. Nó nói thêm tùy chọn power-up trong cấu hình loại bỏ 50-50 cho câu hỏi bỏ qua. Nó nên trao điểm cho người dùng ngay cả khi người dùng bỏ qua. Và người dùng có thể cấu hình điều này từ trang cấu hình. Vì vậy, có rất nhiều không gian sáng tạo cho Claude để làm bất cứ điều gì nó muốn trong trường hợp này. Và tôi rất hào hứng xem nó thực sự sẽ xây dựng cái gì.
Vì vậy, tôi sẽ nói, "@Claude, vui lòng triển khai tính năng này và nhận xét về nó." Vì vậy, nó thường mất bốn hoặc năm giây để phản hồi. Và trong khi nó đang làm điều đó, chúng ta cũng sẽ lấy GitHub issue khác này. Cái này đang nói về một bộ đếm thời gian cho mỗi câu hỏi. Vì vậy, chúng ta đã thấy có một bộ đếm thời gian toàn cầu trên ứng dụng câu đố, nhưng không có bộ đếm thời gian cho mỗi câu hỏi. Vì vậy, đó là điều mà cái này đang nói đến. Vì vậy, hãy nói, "@Claude, vui lòng xây dựng cái này." Và bây giờ chúng ta có hai thứ đang được xây dựng.
Tuyệt vời. Bây giờ khi tôi quay lại tab này, bạn thấy rằng Claude đã phản hồi với một nhận xét về GitHub issue này, nói rằng nó đang hoạt động. Nó cũng có một liên kết đến job run, đó là GitHub Action run. Nếu tôi nhấp vào đó, và nếu tôi thực sự nhấp vào logs, tôi sẽ thấy rằng nó đang làm rất nhiều thứ. Bạn có thể thấy tất cả JSON này đang được xuất ra. Cái này đến từ SDK. Vì vậy, bạn không muốn xem JSON quá nhiều, bởi vì không vui lắm khi phân tích nó thủ công. Nhưng ở đây, chúng ta có thể thấy rằng nó cũng đã tạo một to-do list cho chúng ta. Vì vậy, Claude bây giờ sẽ thực sự đi qua to-do list này và cố gắng triển khai tính năng power-up. Và tương tự, đối với bộ đếm thời gian câu hỏi, nó sẽ làm điều tương tự.
Một điều nữa mà chúng ta nên làm ở đây là đã có một vài pull requests đã được mở cho repository này. Và hãy để Claude xem xét nó hoặc thay đổi một số pull requests này, chỉ để cho vui. Có cái này, đó là "Thay đổi màu nền thành Xanh lam." Được rồi, tôi thực sự nghĩ rằng tôi thích màu xanh lá cây hơn. Vì vậy, tôi sẽ nói, "Được rồi, @Claude, vui lòng thay đổi cái này thành màu xanh lá cây." Cái này khá dễ. Và tôi khá chắc chắn Claude sẽ làm điều này. Nhưng tôi chỉ muốn cho các bạn thấy rằng nó cũng có thể thêm các commit cho một pull request đã mở.
OK, vì vậy cái này sẽ mất vài phút để chạy, và trong khi cái này chạy, hãy quay lại bài thuyết trình và sau đó chúng ta sẽ kiểm tra xem nó hoạt động như thế nào vào cuối.
Các tính năng nâng cao của Claude Code SDK
OK, tuyệt vời. Bây giờ hãy đi sâu một chút vào các tính năng của SDK. Khi bạn gọi Claude-P theo mặc định, nó không có quyền chỉnh sửa hoặc truy cập phá hủy, điều này rất tốt cho sự an toàn, nhưng không tốt cho việc thực sự hoàn thành công việc, đó là lý do tại sao có tùy chọn --allowed-tools, cho phép bạn cấu hình trước Claude với bất kỳ permissions nào mà bạn nghĩ nó có thể cần trong tương lai cho tác vụ của bạn.
Vì vậy, trong trường hợp này, ví dụ đầu tiên bạn thấy rằng tôi đã cấp cho nó permissions Bash để NPM run build, NPM test và công cụ write, đây là một tập hợp permissions tốt, bởi vì điều này cho phép Claude tự xác minh những gì nó đang viết và xây dựng project của bạn, kiểm tra và sau đó tiếp tục viết. Tương tự, đối với MCP, nếu bạn có MCP servers được cấu hình, bạn cũng có thể allow list các MCP tools đó. Vì vậy, đó là một quy trình rất giống nhau.
Sau đó, structured output. Chúng ta đã thấy một ví dụ về structured output, cả từ logs GitHub Actions và cả ảnh chụp màn hình nhỏ tôi đã cho bạn xem trước đó. Nhưng có hai chế độ ở đây. Có stream JSON và JSON. Nó làm chính xác những gì tên gọi của nó. Nếu bạn chọn stream JSON, nó sẽ thực sự stream messages cho bạn khi chúng có sẵn. Còn JSON sẽ chỉ cung cấp cho bạn một khối JSON khổng lồ ở cuối. Và việc phân tích JSON này và xây dựng dựa trên nó thực sự là cách bạn có thể sử dụng Claude Code SDK và tạo các tính năng cho người dùng của mình.
Và sau đó bạn cũng có thể cấu hình system prompt. Vì vậy, bạn có thể thực hiện --system-prompt "talk like a pirate", và bạn có thể khiến Claude Code nói như một cướp biển trong phần còn lại của ngày, điều này thực sự khá vui. Nếu bạn chưa làm, tôi khuyến khích bạn thử nó.
Chúng ta cũng có một vài tính năng tương tác người dùng được tích hợp vào SDK. Và điều đó có nghĩa là tính năng đầu tiên là resuming session state. Vì vậy, khi bạn gọi Claude-P ở chế độ structured output hoặc JSON, nó sẽ trả về một session ID. Và session ID này hữu ích vì bạn có thể tham chiếu session ID để quay lại cùng một context state mà Claude đã có khi nó hoàn thành quá trình đó. Vì vậy, bằng cách bảo toàn các session ID này và theo dõi chúng, bạn có thể kích hoạt hoặc xây dựng các tính năng tương tác người dùng, người dùng nói gì đó, bạn chuyển nó cho Claude. Claude trả về một phản hồi, và bây giờ bạn muốn người dùng đưa ra phản hồi về phản hồi đó. Và đó là cách điều này cho phép bạn xây dựng các loại tương tác đó trong các ứng dụng của mình.
Và cuối cùng, cái này thực sự khá thú vị, và nó cũng khá gần đây. Đó là --permission-prompt-tool. Chúng ta đã nói một chút về cách cấp permissions cho Claude bằng cờ allowed tools. Và điều đó yêu cầu bạn cấu hình trước chúng. Nhưng điều gì sẽ xảy ra nếu bạn không muốn làm điều đó? Bởi vì bạn không biết công cụ nào Claude sẽ muốn sử dụng trong tương lai. Trong trường hợp đó, bạn có thể sử dụng --permission-prompt-tool và chuyển việc quản lý permission sang một MCP server. Vì vậy, bạn có thể hỏi người dùng trong thời gian thực xem họ có muốn chấp nhận một công cụ hay từ chối một công cụ hay không. Và bạn có thể để một MCP server xử lý điều đó cho bạn, thay vì cố gắng dự đoán công cụ nào là OK và công cụ nào không. Vì vậy, cái này khá gần đây, và chúng tôi rất muốn nhận được phản hồi về điều này nếu các bạn thử nó.
Tiếp tục trình diễn và kết quả
OK, hãy quay lại demo của chúng ta và xem Claude đã làm gì. Vì vậy, đây là issue power-up. Chúng ta có thể thấy rằng Claude thực sự đã đi qua danh sách việc cần làm của nó. Tôi sẽ mở một PR. Có một liên kết ở đây để tạo PR, và tôi sẽ nhấp vào đó và xem nó mang lại cho chúng ta điều gì. Tôi thực sự sẽ tạo pull request nữa, để chúng ta dễ dàng xem xét hơn.
Kiểm tra tính năng tăng cường và GitHub Actions
Tôi không thực sự biết cơ sở mã này hoạt động như thế nào, nhưng chúng ta sẽ xem xét kỹ để đảm bảo nó đang hoạt động đúng. Bạn thấy một số cài đặt liên quan đến tính năng tăng cường sức mạnh (power-up). Có vẻ ổn. Có một số cấu hình trong thành phần chính. Tôi nghĩ điều chúng ta nên làm, và điều này sẽ thú vị, là bạn nên tải nhánh này về cục bộ và xem Claude đã làm gì, vì chúng ta không thể thực sự tìm ra nó đã làm gì trong khoảng thời gian ngắn ngủi này.
Vì vậy, tôi sẽ quay lại thiết bị đầu cuối của mình, thực hiện fetch, check out nhánh mà Claude vừa tạo, và khởi động lại quy trình làm việc của chúng ta. Tuyệt vời! Có vẻ như chúng ta có một mục power-up ở cuối trang cấu hình của mình, và nó là một ô kiểm nhỏ. Tôi thích điểm nhấn này. Chúng ta sẽ bật cả hai tính năng này và chọn "kiến thức tổng quát". Hãy bắt đầu chơi trò chơi này và xem Claude đã làm gì.
Ồ, tuyệt vời. Bạn thấy nó có một nút "50-50" nhỏ ở phía dưới bên trái và một nút "bỏ qua câu hỏi" ở bên phải. Tôi sẽ chỉ sử dụng "50-50" vì tôi không biết câu trả lời cho câu hỏi này. Có ai biết đây là gì không? D? Được rồi, có lý. Cadbury, đúng vậy. Tôi sẽ bỏ qua câu này, sau đó chúng ta sẽ lướt nhanh qua các câu hỏi khác để tiết kiệm thời gian. Vì vậy, chúng ta đã được F, nhưng chúng ta có một câu trả lời đúng, tốt hơn là không có câu trả lời đúng nào. Và đúng vậy, tôi đoán là... à, tôi đã lừa chúng ta. Đó là một câu hỏi hay. Nhưng có vẻ như nó đã hoạt động. Tôi nghĩ chắc chắn chúng ta có thể làm nhiều hơn ở đây. Chúng ta có thể hiển thị những câu hỏi nào chúng ta đã sử dụng tính năng tăng cường sức mạnh. Và chắc chắn chúng ta có thể làm nhiều hơn. Nhưng ở mức cơ bản nhất, tôi nghĩ Claude đã có thể hoàn thành tác vụ mà chúng ta giao cho nó, điều này rất thú vị. Đây chính là sức mạnh của GitHub Actions, vì bạn không thực sự phải tự chạy nó trên cơ sở hạ tầng của mình. Bạn chỉ cần bình luận trên một luồng và nói: "Làm ơn xây dựng cái này cho tôi." Nó sẽ sử dụng các trình chạy GitHub Actions của bạn và hoàn thành công việc.
Khả năng của Claude GitHub Actions
Chúng ta cũng hãy xem xét PR mà chúng ta đã yêu cầu nó thay đổi từ màu xanh sang màu xanh lá cây. Tất cả đều là mã thập lục phân, vì vậy hãy xem nó đã làm gì trong các cam kết. Chúng ta thấy có hai cam kết. Và Claude đã thêm cam kết cuối cùng này để chuyển từ màu xanh sang màu xanh lá cây. Và nó đã thực hiện ở cả ba nơi mà màu sắc được định nghĩa, điều này thật tuyệt vời.
Tôi sẽ không đi sâu vào phần cuối cùng, bộ đếm thời gian câu hỏi, vì chúng ta có thể hết thời gian. Nhưng điều này hy vọng sẽ mang lại cho bạn thông tin chi tiết về những gì Claude GitHub action có thể làm cho bạn. Bây giờ, hãy quay lại bài thuyết trình.
Tóm lại, Claude GitHub action, như được triển khai hiện nay, có thể đọc mã của bạn. Nó có thể tạo PR cho bạn từ vấn đề trên GitHub, như chúng ta vừa thấy. Nó có thể tạo cam kết cho bạn. Vì vậy, nếu bạn đã có một PR và bạn bình luận trên đó, nó có thể thêm một cam kết vào một nhánh hiện có hoặc một PR hiện có. Nó có thể trả lời câu hỏi. Nó không nhất thiết phải làm gì đó. Nó chỉ có thể trả lời câu hỏi cho bạn. Nếu bạn không hiểu điều gì đó, bạn có thể hỏi: "Này, Claude, cái này hoạt động thế nào?" và bạn có thể nhận được câu trả lời. Và tất nhiên, nó có thể duyệt mã của bạn.
Phần tốt nhất của tất cả những điều này là bạn không phải lo lắng về cơ sở hạ tầng. Nó chạy trên các trình chạy GitHub hiện có, mà hầu hết mọi người đều đã cấu hình nếu bạn đang sử dụng GitHub Actions. Vì vậy, điều thực sự tuyệt vời về điều này là bạn không phải lo lắng về bất kỳ cơ sở hạ tầng nào.
Kiến trúc GitHub Actions của Claude
Vậy, các action này được xây dựng như thế nào? Tôi có thể đã đề cập rằng các action này được xây dựng trên Bộ công cụ phát triển phần mềm (SDK). Vì vậy, SDK tạo thành nền tảng cho cách các action này được xây dựng. Và sau đó, chúng ta có hai action khác ở trên. Chúng ta có action cơ sở của Claude. Đây là một lớp mỏng chỉ triển khai phần giao tiếp với Claude Code và trả về phản hồi từ Claude. Và sau đó, chúng ta có một action khác trên đầu lớp này, được gọi là action PR. Action này chịu trách nhiệm cho tất cả những tính năng nâng cao mà bạn thấy trên PR. Vì vậy, nó chịu trách nhiệm tạo bình luận cho các danh sách việc cần làm, hiển thị nó đúng cách, thêm các liên kết PR, và những thứ tương tự. Vì vậy, nó được xây dựng theo ba lớp. Cả action cơ sở và action PR đều là mã nguồn mở. Vì vậy, tôi khuyến khích các bạn hãy xem xét, lấy cảm hứng từ cách nó hoạt động, và có thể điều đó sẽ khơi gợi thêm nhiều ý tưởng hơn.
Cài đặt và Tài nguyên
Cuối cùng, các bạn có thể cài đặt Claude GitHub actions ngay hôm nay. Cách dễ nhất để làm điều này là mở Claude Code trong thiết bị đầu cuối trong kho lưu trữ mà bạn muốn cài đặt. Và một khi bạn mở Claude Code, chỉ cần gõ /install GitHub action. Điều đó sẽ hiển thị cho bạn một quy trình đẹp mắt, hướng dẫn bạn cấu hình GitHub action cũng như hợp nhất nó. Vì vậy, kết quả cuối cùng của việc này sẽ là một PR, là một tệp YAML cho GitHub action của bạn. Và một khi bạn hợp nhất nó, và bạn cấu hình khóa API của mình và những thứ tương tự, bạn đã sẵn sàng sử dụng. Và bạn có thể tiến hành gắn thẻ Claude và sử dụng Claude, giống như chúng ta vừa làm.
Một lưu ý nhỏ: nếu bạn là người dùng Bedrock hoặc Vertex, các hướng dẫn sẽ hơi khác một chút, và phức tạp hơn một chút vì mang tính thủ công hơn. Vì vậy, vui lòng xem tài liệu. Tài liệu khá toàn diện trong việc giúp bạn thiết lập GitHub action cho cả Bedrock và Vertex.
Tuyệt vời. Cuối cùng, tài nguyên. Đây là các tài nguyên cho những điều chúng ta đã nói hôm nay. Nếu bạn muốn chụp ảnh, cứ tự nhiên. Có ba kho lưu trữ mã nguồn mở cho cả action cơ sở và action Claude Code ở đây. Và chúng tôi rất muốn nhận được phản hồi của các bạn. Vì vậy, nếu các bạn có bất kỳ phản hồi nào về SDK, về GitHub action, hoặc về Claude Code, vui lòng truy cập kho lưu trữ GitHub công khai của Claude của chúng tôi và tạo một vấn đề ở đó. Và ai đó sẽ xem xét và phản hồi cho bạn. Tuyệt vời. Đó là tất cả những gì tôi có cho ngày hôm nay. Cảm ơn vì đã tham gia cùng tôi. Và tôi hy vọng các bạn có một ngày tốt lành.
TL;DR
- Claude Code SDK cung cấp khả năng truy cập lập trình vào tác nhân AI của Claude Code, mở ra cánh cửa cho các ứng dụng mới từ công cụ Unix đơn giản đến tự động hóa CI nâng cao.
- Claude GitHub Action, được xây dựng dựa trên SDK, tự động hóa các tác vụ phát triển như review mã, tạo tính năng, sửa lỗi và cập nhật pull requests trực tiếp trong quy trình GitHub.
- Cả SDK và GitHub Action đều nhấn mạnh tính linh hoạt thông qua các tính năng như kiểm soát quyền truy cập chi tiết, đầu ra JSON có cấu trúc và khả năng tương tác phiên, với kiến trúc mã nguồn mở khuyến khích mở rộng.
Điểm chính
Claude Code SDKcung cấp quyền truy cập lập trình vào tác nhân AI của Claude Code, cho phép tích hợp vào các kịch bảnUnix tool,CI/CDvà phát triểnứng dụng AItùy chỉnh.- Sử dụng
--allow-tools <tool_name>để cấp quyền cụ thể cho Claude Code, ví dụ:writeđể ghi tệp,bashđể thực thi lệnh, hoặc cácMCP toolstùy chỉnh. - Sử dụng
--output-format JSONhoặcstream JSONđể nhận phản hồi có cấu trúc từ Claude Code, cần thiết cho việc phân tích và xây dựng ứng dụng tự động. - Lưu trữ
session IDtừ đầu ra có cấu trúc để duy trì trạng thái ngữ cảnh, cho phép xây dựng các tính năng tương tác người dùng nhiều lượt. Claude GitHub Actiontự động hóa các tác vụ phát triển trongGitHub issuesvàpull requests(như tạo tính năng, sửa lỗi, review mã, tạo/cập nhật PR), chạy trênGitHub runnershiện có mà không cần cơ sở hạ tầng bổ sung.- Triển khai
--permission-prompt-toolđể ủy quyền quản lý quyền cho mộtMCP server, cho phép người dùng phê duyệt hoặc từ chối công cụ trong thời gian thực. - Khám phá mã nguồn mở của
Claude GitHub Action(Base Action và PR Action) để hiểu kiến trúc nhiều lớp và lấy cảm hứng xây dựng các hành động tùy chỉnh. - Cài đặt Claude GitHub Action dễ dàng bằng cách gõ
/install GitHub actiontrong Claude Code terminal của repository mong muốn.
Từ vựng
Claude Code SDK— Bộ công cụ phát triển phần mềm Claude CodeClaude GitHub Action— Hành động GitHub của ClaudeAI Agent— Tác nhân AIHeadless Node— Node không giao diệnPull Request (PR)— Yêu cầu hợp nhất (PR)Structured Output— Đầu ra có cấu trúcSession ID— ID phiênAllowed Tools— Các công cụ được phépOpen Source— Mã nguồn mởGitHub Runner— Trình chạy GitHub
Nội dung chi tiết
Giới thiệu chung và Chương trình
Chào buổi chiều mọi người. Tên tôi là Sid by the Saria. Tôi là kỹ sư trong nhóm Claude Code. Và hôm nay, chúng ta sẽ nói một chút về Claude Code SDK và Claude GitHub Action vừa được công bố hôm nay. Tuyệt vời.
Một chút về chương trình nghị sự: Chúng ta sẽ bắt đầu nhanh với SDK, chỉ để đưa ra một số ví dụ về cách bắt đầu và cách sử dụng SDK. Sau đó, chúng ta sẽ đi sâu vào một buổi trình diễn trực tiếp về GitHub Action, điều này sẽ rất thú vị. GitHub Action được xây dựng dựa trên SDK, vì vậy nó có ý nghĩa như một nguồn cảm hứng cho những điều bạn có thể làm bằng cách sử dụng Claude Code SDK. Sau đó, chúng ta sẽ đi sâu vào một số tính năng nâng cao hơn của SDK. Và cuối cùng, chúng ta sẽ hướng dẫn tất cả mọi người thiết lập Claude GitHub Action trên repo của mình. Các bạn có thể bắt đầu sử dụng và xây dựng dựa trên đó.
Tuyệt vời. Thực ra, trước khi bắt đầu, tôi có thể hỏi một chút được không? Có bao nhiêu người ở đây đã sử dụng Claude Code? OK. Rất nhiều người. Và trong số những người đã sử dụng Claude Code, có bao nhiêu người đã sử dụng Claude Dash P hoặc biết nó là gì? OK. Ít hơn nhiều. Điều đó rất tốt để biết. Nếu các bạn chưa có Claude Code trên máy tính xách tay, đó là cách để có được nó. Tôi khuyến khích bạn cài đặt nó trên máy tính xách tay và làm theo. Sẽ có những phần của buổi nói chuyện này sẽ rất có lợi khi làm theo. Và nếu bạn không muốn, bạn không cần phải làm. Tất cả là do bạn.
Claude Code SDK: Truy cập Sức mạnh Agent
Vậy Claude Code SDK là gì? Đó là một cách để truy cập sức mạnh của Tác nhân AI Claude Code một cách lập trình trong Headless Node. Điều này mạnh mẽ bởi vì nó là một loại nguyên thủy mới và một loại khối xây dựng mới cho phép bạn xây dựng các ứng dụng mà trước đây không thể thực hiện được. Những điều bạn có thể làm với SDK là những điều siêu đơn giản để bắt đầu.
Ví dụ, bạn có thể sử dụng nó như một Unix tool. Triết lý Unix tool là điều thực sự làm cho Claude Code mạnh mẽ bởi vì bạn có thể cắm nó vào bất cứ nơi nào bạn có thể chạy Bash hoặc một terminal. Vì vậy, bạn có thể sử dụng nó trong các pipeline Unix của mình. Bạn có thể truyền dữ liệu vào đó, truyền dữ liệu ra khỏi đó, tạo các chuỗi phức tạp từ đó và những thứ tương tự.
Sau đó, bạn có thể xây dựng tự động hóa CI dựa trên nó. Vì vậy, bạn có thể để Claude xem xét mã của mình. Một số người thực sự còn nhờ Claude viết linters mới cho họ nữa. Sau đó, bạn có thể đi vào mã của mình nếu có những điều cụ thể mà bạn đã định nghĩa một cách lập trình. Bạn có thể nhờ Claude Code làm điều đó. Và sau đó, chúng ta cũng đi vào các ứng dụng cao cấp hơn. Vì vậy, nếu bạn muốn xây dựng chatbot của riêng mình được hỗ trợ bởi Claude Code, điều đó hoàn toàn có thể. Nếu bạn muốn Claude Code viết mã cho bạn trong một môi trường mới hoặc một môi trường từ xa riêng biệt, bạn cũng có thể xây dựng những loại ứng dụng đó.
Và cuối cùng, có một vài tính năng. Chúng ta sẽ nói thêm về các tính năng trong các slide sắp tới. Các SDK hoặc bindings cho Python và TypeScript cho Claude Code SDK sẽ sớm ra mắt. Vì vậy, điều đó sẽ giúp các bạn dễ dàng sử dụng và xây dựng dựa trên đó hơn nhiều.
Ví dụ cơ bản với Claude Code SDK
Hãy đi vào một số ví dụ cơ bản. Gọi Claude Code SDK đơn giản như việc thực hiện Claude-P và theo sau đó là chuỗi câu lệnh mà bạn muốn hỏi Claude.
Trong ví dụ này, tôi đang yêu cầu Claude viết một bộ tạo chuỗi Fibonacci cho tôi. Và nếu bạn để ý, tôi cũng cung cấp một --allow-tools write, đây là một cách để tôi chủ động cấp cho nó quyền truy cập vào công cụ write để nó có thể ghi tệp vào hệ thống tệp của tôi.
Và đây cũng là điều tôi thích làm: truyền logs cho Claude. Vì vậy, bạn có thể thực hiện cat .app.log và sau đó truyền nó vào Claude-P. Tôi không thích xem logs thủ công. Vì vậy, đây là điều tôi làm khá thường xuyên. Và như bạn có thể thấy, nó làm khá tốt việc tóm tắt các lỗi log là gì.
Tương tự, nếu bạn giống tôi, tôi chỉ không thể tự mình hiểu được đầu ra của ifconfig. Tôi vẫn không biết nó có nghĩa là gì, nhưng Claude thì có. Và Claude làm điều đó cho tôi ở đây.
Và cuối cùng, đây là điều làm cho SDK hoạt động: Chúng ta có một định dạng đầu ra. Nếu bạn thực hiện --output-format JSON, Claude Code thực sự sẽ xuất mọi thứ, hoặc phản hồi của nó, ở định dạng JSON thay vì văn bản thuần túy. Và bạn có thể phân tích JSON này và xây dựng dựa trên nó. Vì vậy, chúng ta sẽ nói thêm về chi tiết về điều này và những gì khác bạn có thể làm với JSON này. Nhưng tôi muốn đưa ra ví dụ đó.
Claude GitHub Action: Một ví dụ nâng cao
Bây giờ chúng ta hãy đi vào một ví dụ phức tạp hơn đáng kể, đó là Claude GitHub Action. Claude GitHub Action được xây dựng dựa trên SDK. Và nó có thể được sử dụng để code review, nó có thể được sử dụng để tạo tính năng mới, nó có thể được sử dụng để triage bug và vân vân. Và cái này cũng là mã nguồn mở. Vì vậy, tôi sẽ đưa một liên kết ở cuối buổi nói chuyện để các bạn có thể xem mã nguồn để lấy cảm hứng về cách sử dụng nó. Nhưng bây giờ, hãy đi vào một buổi trình diễn trực tiếp trên máy tính xách tay của tôi.
Trình diễn trực tiếp Claude GitHub Action
Tôi đã sao chép một ứng dụng câu đố mã nguồn mở nhỏ phổ biến cho mục đích của buổi trình diễn này. Và chúng ta sẽ khởi chạy nó chỉ để xem nó hoạt động như thế nào. Và sau đó, chúng ta sẽ nói chuyện rất nhiều để xây dựng một thứ gì đó dựa trên nó.
Vì vậy, tôi vừa thực hiện NPM start, điều này đã mở ứng dụng câu đố mới của tôi. Nó thực sự khá tiện lợi. Nó cho phép bạn chọn một loạt các danh mục, số lượng câu hỏi bạn muốn. Mức độ khó, chắc chắn là dễ đối với tôi. Tôi dở về đố vui. Loại câu hỏi. Và sau đó có một bộ đếm ngược. Vì vậy, chúng ta sẽ không thực sự trả lời những câu này trừ khi có ai đó cảm thấy rất mạnh mẽ muốn hô to câu trả lời. Nhưng tôi sẽ chỉ lướt qua những câu này để cho các bạn thấy ứng dụng câu đố này hoạt động như thế nào. Đó. Không có gì ngạc nhiên. Bạn nhận được một điểm F. Nhưng không sao.
Vì vậy, đây là ứng dụng câu đố demo nhỏ mã nguồn mở. Và nếu bạn nhìn vào các GitHub issues cho repository này, chúng ta thấy một vài vấn đề rất thú vị. Có một issue nói rằng chúng ta nên thêm các power-up để loại bỏ 50-50 các lựa chọn và bỏ qua câu hỏi miễn phí. Vì tôi dở về đố vui, tôi thực sự thích tính năng đó. Và tôi muốn xây dựng nó. Và trước bài thuyết trình này, tôi đã cài đặt Claude, Claude GitHub Action trên repository của mình. Vì vậy, nó đã có sẵn. Nhưng chúng ta cũng sẽ xem cách thiết lập nó sau.
OK. Vậy đây là issue. Nó có khá ít chi tiết về cách triển khai tính năng này. Nó chỉ đơn thuần là một danh sách mong muốn, thực sự, như một tính năng mong muốn. Nó nói thêm tùy chọn power-up trong cấu hình loại bỏ 50-50 cho câu hỏi bỏ qua. Nó nên trao điểm cho người dùng ngay cả khi người dùng bỏ qua. Và người dùng có thể cấu hình điều này từ trang cấu hình. Vì vậy, có rất nhiều không gian sáng tạo cho Claude để làm bất cứ điều gì nó muốn trong trường hợp này. Và tôi rất hào hứng xem nó thực sự sẽ xây dựng cái gì.
Vì vậy, tôi sẽ nói, "@Claude, vui lòng triển khai tính năng này và nhận xét về nó." Vì vậy, nó thường mất bốn hoặc năm giây để phản hồi. Và trong khi nó đang làm điều đó, chúng ta cũng sẽ lấy GitHub issue khác này. Cái này đang nói về một bộ đếm thời gian cho mỗi câu hỏi. Vì vậy, chúng ta đã thấy có một bộ đếm thời gian toàn cầu trên ứng dụng câu đố, nhưng không có bộ đếm thời gian cho mỗi câu hỏi. Vì vậy, đó là điều mà cái này đang nói đến. Vì vậy, hãy nói, "@Claude, vui lòng xây dựng cái này." Và bây giờ chúng ta có hai thứ đang được xây dựng.
Tuyệt vời. Bây giờ khi tôi quay lại tab này, bạn thấy rằng Claude đã phản hồi với một nhận xét về GitHub issue này, nói rằng nó đang hoạt động. Nó cũng có một liên kết đến job run, đó là GitHub Action run. Nếu tôi nhấp vào đó, và nếu tôi thực sự nhấp vào logs, tôi sẽ thấy rằng nó đang làm rất nhiều thứ. Bạn có thể thấy tất cả JSON này đang được xuất ra. Cái này đến từ SDK. Vì vậy, bạn không muốn xem JSON quá nhiều, bởi vì không vui lắm khi phân tích nó thủ công. Nhưng ở đây, chúng ta có thể thấy rằng nó cũng đã tạo một to-do list cho chúng ta. Vì vậy, Claude bây giờ sẽ thực sự đi qua to-do list này và cố gắng triển khai tính năng power-up. Và tương tự, đối với bộ đếm thời gian câu hỏi, nó sẽ làm điều tương tự.
Một điều nữa mà chúng ta nên làm ở đây là đã có một vài pull requests đã được mở cho repository này. Và hãy để Claude xem xét nó hoặc thay đổi một số pull requests này, chỉ để cho vui. Có cái này, đó là "Thay đổi màu nền thành Xanh lam." Được rồi, tôi thực sự nghĩ rằng tôi thích màu xanh lá cây hơn. Vì vậy, tôi sẽ nói, "Được rồi, @Claude, vui lòng thay đổi cái này thành màu xanh lá cây." Cái này khá dễ. Và tôi khá chắc chắn Claude sẽ làm điều này. Nhưng tôi chỉ muốn cho các bạn thấy rằng nó cũng có thể thêm các commit cho một pull request đã mở.
OK, vì vậy cái này sẽ mất vài phút để chạy, và trong khi cái này chạy, hãy quay lại bài thuyết trình và sau đó chúng ta sẽ kiểm tra xem nó hoạt động như thế nào vào cuối.
Các tính năng nâng cao của Claude Code SDK
OK, tuyệt vời. Bây giờ hãy đi sâu một chút vào các tính năng của SDK. Khi bạn gọi Claude-P theo mặc định, nó không có quyền chỉnh sửa hoặc truy cập phá hủy, điều này rất tốt cho sự an toàn, nhưng không tốt cho việc thực sự hoàn thành công việc, đó là lý do tại sao có tùy chọn --allowed-tools, cho phép bạn cấu hình trước Claude với bất kỳ permissions nào mà bạn nghĩ nó có thể cần trong tương lai cho tác vụ của bạn.
Vì vậy, trong trường hợp này, ví dụ đầu tiên bạn thấy rằng tôi đã cấp cho nó permissions Bash để NPM run build, NPM test và công cụ write, đây là một tập hợp permissions tốt, bởi vì điều này cho phép Claude tự xác minh những gì nó đang viết và xây dựng project của bạn, kiểm tra và sau đó tiếp tục viết. Tương tự, đối với MCP, nếu bạn có MCP servers được cấu hình, bạn cũng có thể allow list các MCP tools đó. Vì vậy, đó là một quy trình rất giống nhau.
Sau đó, structured output. Chúng ta đã thấy một ví dụ về structured output, cả từ logs GitHub Actions và cả ảnh chụp màn hình nhỏ tôi đã cho bạn xem trước đó. Nhưng có hai chế độ ở đây. Có stream JSON và JSON. Nó làm chính xác những gì tên gọi của nó. Nếu bạn chọn stream JSON, nó sẽ thực sự stream messages cho bạn khi chúng có sẵn. Còn JSON sẽ chỉ cung cấp cho bạn một khối JSON khổng lồ ở cuối. Và việc phân tích JSON này và xây dựng dựa trên nó thực sự là cách bạn có thể sử dụng Claude Code SDK và tạo các tính năng cho người dùng của mình.
Và sau đó bạn cũng có thể cấu hình system prompt. Vì vậy, bạn có thể thực hiện --system-prompt "talk like a pirate", và bạn có thể khiến Claude Code nói như một cướp biển trong phần còn lại của ngày, điều này thực sự khá vui. Nếu bạn chưa làm, tôi khuyến khích bạn thử nó.
Chúng ta cũng có một vài tính năng tương tác người dùng được tích hợp vào SDK. Và điều đó có nghĩa là tính năng đầu tiên là resuming session state. Vì vậy, khi bạn gọi Claude-P ở chế độ structured output hoặc JSON, nó sẽ trả về một session ID. Và session ID này hữu ích vì bạn có thể tham chiếu session ID để quay lại cùng một context state mà Claude đã có khi nó hoàn thành quá trình đó. Vì vậy, bằng cách bảo toàn các session ID này và theo dõi chúng, bạn có thể kích hoạt hoặc xây dựng các tính năng tương tác người dùng, người dùng nói gì đó, bạn chuyển nó cho Claude. Claude trả về một phản hồi, và bây giờ bạn muốn người dùng đưa ra phản hồi về phản hồi đó. Và đó là cách điều này cho phép bạn xây dựng các loại tương tác đó trong các ứng dụng của mình.
Và cuối cùng, cái này thực sự khá thú vị, và nó cũng khá gần đây. Đó là --permission-prompt-tool. Chúng ta đã nói một chút về cách cấp permissions cho Claude bằng cờ allowed tools. Và điều đó yêu cầu bạn cấu hình trước chúng. Nhưng điều gì sẽ xảy ra nếu bạn không muốn làm điều đó? Bởi vì bạn không biết công cụ nào Claude sẽ muốn sử dụng trong tương lai. Trong trường hợp đó, bạn có thể sử dụng --permission-prompt-tool và chuyển việc quản lý permission sang một MCP server. Vì vậy, bạn có thể hỏi người dùng trong thời gian thực xem họ có muốn chấp nhận một công cụ hay từ chối một công cụ hay không. Và bạn có thể để một MCP server xử lý điều đó cho bạn, thay vì cố gắng dự đoán công cụ nào là OK và công cụ nào không. Vì vậy, cái này khá gần đây, và chúng tôi rất muốn nhận được phản hồi về điều này nếu các bạn thử nó.
Tiếp tục trình diễn và kết quả
OK, hãy quay lại demo của chúng ta và xem Claude đã làm gì. Vì vậy, đây là issue power-up. Chúng ta có thể thấy rằng Claude thực sự đã đi qua danh sách việc cần làm của nó. Tôi sẽ mở một PR. Có một liên kết ở đây để tạo PR, và tôi sẽ nhấp vào đó và xem nó mang lại cho chúng ta điều gì. Tôi thực sự sẽ tạo pull request nữa, để chúng ta dễ dàng xem xét hơn.
Kiểm tra tính năng tăng cường và GitHub Actions
Tôi không thực sự biết cơ sở mã này hoạt động như thế nào, nhưng chúng ta sẽ xem xét kỹ để đảm bảo nó đang hoạt động đúng. Bạn thấy một số cài đặt liên quan đến tính năng tăng cường sức mạnh (power-up). Có vẻ ổn. Có một số cấu hình trong thành phần chính. Tôi nghĩ điều chúng ta nên làm, và điều này sẽ thú vị, là bạn nên tải nhánh này về cục bộ và xem Claude đã làm gì, vì chúng ta không thể thực sự tìm ra nó đã làm gì trong khoảng thời gian ngắn ngủi này.
Vì vậy, tôi sẽ quay lại thiết bị đầu cuối của mình, thực hiện fetch, check out nhánh mà Claude vừa tạo, và khởi động lại quy trình làm việc của chúng ta. Tuyệt vời! Có vẻ như chúng ta có một mục power-up ở cuối trang cấu hình của mình, và nó là một ô kiểm nhỏ. Tôi thích điểm nhấn này. Chúng ta sẽ bật cả hai tính năng này và chọn "kiến thức tổng quát". Hãy bắt đầu chơi trò chơi này và xem Claude đã làm gì.
Ồ, tuyệt vời. Bạn thấy nó có một nút "50-50" nhỏ ở phía dưới bên trái và một nút "bỏ qua câu hỏi" ở bên phải. Tôi sẽ chỉ sử dụng "50-50" vì tôi không biết câu trả lời cho câu hỏi này. Có ai biết đây là gì không? D? Được rồi, có lý. Cadbury, đúng vậy. Tôi sẽ bỏ qua câu này, sau đó chúng ta sẽ lướt nhanh qua các câu hỏi khác để tiết kiệm thời gian. Vì vậy, chúng ta đã được F, nhưng chúng ta có một câu trả lời đúng, tốt hơn là không có câu trả lời đúng nào. Và đúng vậy, tôi đoán là... à, tôi đã lừa chúng ta. Đó là một câu hỏi hay. Nhưng có vẻ như nó đã hoạt động. Tôi nghĩ chắc chắn chúng ta có thể làm nhiều hơn ở đây. Chúng ta có thể hiển thị những câu hỏi nào chúng ta đã sử dụng tính năng tăng cường sức mạnh. Và chắc chắn chúng ta có thể làm nhiều hơn. Nhưng ở mức cơ bản nhất, tôi nghĩ Claude đã có thể hoàn thành tác vụ mà chúng ta giao cho nó, điều này rất thú vị. Đây chính là sức mạnh của GitHub Actions, vì bạn không thực sự phải tự chạy nó trên cơ sở hạ tầng của mình. Bạn chỉ cần bình luận trên một luồng và nói: "Làm ơn xây dựng cái này cho tôi." Nó sẽ sử dụng các trình chạy GitHub Actions của bạn và hoàn thành công việc.
Khả năng của Claude GitHub Actions
Chúng ta cũng hãy xem xét PR mà chúng ta đã yêu cầu nó thay đổi từ màu xanh sang màu xanh lá cây. Tất cả đều là mã thập lục phân, vì vậy hãy xem nó đã làm gì trong các cam kết. Chúng ta thấy có hai cam kết. Và Claude đã thêm cam kết cuối cùng này để chuyển từ màu xanh sang màu xanh lá cây. Và nó đã thực hiện ở cả ba nơi mà màu sắc được định nghĩa, điều này thật tuyệt vời.
Tôi sẽ không đi sâu vào phần cuối cùng, bộ đếm thời gian câu hỏi, vì chúng ta có thể hết thời gian. Nhưng điều này hy vọng sẽ mang lại cho bạn thông tin chi tiết về những gì Claude GitHub action có thể làm cho bạn. Bây giờ, hãy quay lại bài thuyết trình.
Tóm lại, Claude GitHub action, như được triển khai hiện nay, có thể đọc mã của bạn. Nó có thể tạo PR cho bạn từ vấn đề trên GitHub, như chúng ta vừa thấy. Nó có thể tạo cam kết cho bạn. Vì vậy, nếu bạn đã có một PR và bạn bình luận trên đó, nó có thể thêm một cam kết vào một nhánh hiện có hoặc một PR hiện có. Nó có thể trả lời câu hỏi. Nó không nhất thiết phải làm gì đó. Nó chỉ có thể trả lời câu hỏi cho bạn. Nếu bạn không hiểu điều gì đó, bạn có thể hỏi: "Này, Claude, cái này hoạt động thế nào?" và bạn có thể nhận được câu trả lời. Và tất nhiên, nó có thể duyệt mã của bạn.
Phần tốt nhất của tất cả những điều này là bạn không phải lo lắng về cơ sở hạ tầng. Nó chạy trên các trình chạy GitHub hiện có, mà hầu hết mọi người đều đã cấu hình nếu bạn đang sử dụng GitHub Actions. Vì vậy, điều thực sự tuyệt vời về điều này là bạn không phải lo lắng về bất kỳ cơ sở hạ tầng nào.
Kiến trúc GitHub Actions của Claude
Vậy, các action này được xây dựng như thế nào? Tôi có thể đã đề cập rằng các action này được xây dựng trên Bộ công cụ phát triển phần mềm (SDK). Vì vậy, SDK tạo thành nền tảng cho cách các action này được xây dựng. Và sau đó, chúng ta có hai action khác ở trên. Chúng ta có action cơ sở của Claude. Đây là một lớp mỏng chỉ triển khai phần giao tiếp với Claude Code và trả về phản hồi từ Claude. Và sau đó, chúng ta có một action khác trên đầu lớp này, được gọi là action PR. Action này chịu trách nhiệm cho tất cả những tính năng nâng cao mà bạn thấy trên PR. Vì vậy, nó chịu trách nhiệm tạo bình luận cho các danh sách việc cần làm, hiển thị nó đúng cách, thêm các liên kết PR, và những thứ tương tự. Vì vậy, nó được xây dựng theo ba lớp. Cả action cơ sở và action PR đều là mã nguồn mở. Vì vậy, tôi khuyến khích các bạn hãy xem xét, lấy cảm hứng từ cách nó hoạt động, và có thể điều đó sẽ khơi gợi thêm nhiều ý tưởng hơn.
Cài đặt và Tài nguyên
Cuối cùng, các bạn có thể cài đặt Claude GitHub actions ngay hôm nay. Cách dễ nhất để làm điều này là mở Claude Code trong thiết bị đầu cuối trong kho lưu trữ mà bạn muốn cài đặt. Và một khi bạn mở Claude Code, chỉ cần gõ /install GitHub action. Điều đó sẽ hiển thị cho bạn một quy trình đẹp mắt, hướng dẫn bạn cấu hình GitHub action cũng như hợp nhất nó. Vì vậy, kết quả cuối cùng của việc này sẽ là một PR, là một tệp YAML cho GitHub action của bạn. Và một khi bạn hợp nhất nó, và bạn cấu hình khóa API của mình và những thứ tương tự, bạn đã sẵn sàng sử dụng. Và bạn có thể tiến hành gắn thẻ Claude và sử dụng Claude, giống như chúng ta vừa làm.
Một lưu ý nhỏ: nếu bạn là người dùng Bedrock hoặc Vertex, các hướng dẫn sẽ hơi khác một chút, và phức tạp hơn một chút vì mang tính thủ công hơn. Vì vậy, vui lòng xem tài liệu. Tài liệu khá toàn diện trong việc giúp bạn thiết lập GitHub action cho cả Bedrock và Vertex.
Tuyệt vời. Cuối cùng, tài nguyên. Đây là các tài nguyên cho những điều chúng ta đã nói hôm nay. Nếu bạn muốn chụp ảnh, cứ tự nhiên. Có ba kho lưu trữ mã nguồn mở cho cả action cơ sở và action Claude Code ở đây. Và chúng tôi rất muốn nhận được phản hồi của các bạn. Vì vậy, nếu các bạn có bất kỳ phản hồi nào về SDK, về GitHub action, hoặc về Claude Code, vui lòng truy cập kho lưu trữ GitHub công khai của Claude của chúng tôi và tạo một vấn đề ở đó. Và ai đó sẽ xem xét và phản hồi cho bạn. Tuyệt vời. Đó là tất cả những gì tôi có cho ngày hôm nay. Cảm ơn vì đã tham gia cùng tôi. Và tôi hy vọng các bạn có một ngày tốt lành.