Nói chuyện với Control Center từ một PR GitHub
Hướng dẫn này chỉ cách làm việc với Control Center mà không cần rời khỏi GitHub: yêu cầu một lượt đánh giá bằng AI ngay từ trang PR, đặt câu hỏi cho bot trong một bình luận, và tiếp tục cuộc hội thoại trong các luồng đánh giá của bot.
Bot chính là GitHub App của riêng máy chủ bạn — cũng là app đã đảm nhiệm việc đăng nhập cho mọi người và chạy công việc nền. Không có gì mới được đăng ký, và không có gì phải truy cập được từ internet: máy chủ phát hiện những gì đã được nói trên GitHub qua thăm dò định kỳ, nên một chiếc laptop nằm sau NAT hành xử y hệt một bản triển khai công khai.
Điều kiện tiên quyết
Phần tiêu đề “Điều kiện tiên quyết”- Máy chủ đã đăng ký và cài đặt GitHub App của mình, với Pull requests: read and write (để bình luận, tạo luồng và thả cảm xúc) và Issues: read (để tìm kiếm bình luận). Cả hai quyền này đều đã có trong danh sách quyền của hướng dẫn đó
- Kho mã đã được liên kết với một không gian làm việc trong Control Center
- Không cần URL webhook, không cần tunnel, không cần callback — không có gì phải cấu hình ở phía mạng
Tìm tên bot của bạn
Phần tiêu đề “Tìm tên bot của bạn”Tên đăng nhập của bot là <appslug>[bot], trong đó appslug là tên bạn đã đặt
cho app khi đăng ký nó.
- Vào Cài đặt → Máy chủ → Đăng nhập một lần và cuộn tới thẻ Ứng dụng nhà cung cấp
- Mở khối GitHub và nhấp Kiểm thử
- Sao chép Tên đăng nhập bot khi giá trị được điền vào. Nếu ô đó vẫn hiển
thị gợi ý trống, thì tên đăng nhập luôn là
<appslug>[bot]— hãy gõ giá trị đó, hoặc dạng ngắn@appslug
GitHub không cung cấp tài khoản app trong tính năng tự động hoàn thành @ của
mình, nên tên đăng nhập phải được gõ thủ công — đó là lý do thẻ cài đặt giúp bạn
sao chép nó chỉ bằng một cú nhấp. Hậu tố [bot] là tùy chọn: cả @myapp lẫn
@myapp[bot] đều gọi tới bot.
Yêu cầu đánh giá từ GitHub
Phần tiêu đề “Yêu cầu đánh giá từ GitHub”Có hai cách, cả hai đều khởi động đúng quy trình pr_review được gieo tạo mà
nút Hỏi AI khởi động:
- Thêm nhãn
ai-reviewvào PR. Đây là thứ gần nhất mà GitHub có thể cung cấp cho việc gán bot làm người đánh giá — tài khoản app không thể giữ vị trí người được yêu cầu đánh giá gốc của GitHub. Không có bình luận nào để thả cảm xúc, nên không có gì được đăng lên GitHub; lượt đánh giá bắt đầu trong Control Center - Bình luận
@myapp review(hoặc chỉ@myapp) trong cuộc hội thoại của PR. Bot thả cảm xúc 👀, rồi trả lời khi lượt đánh giá đã bắt đầu (hoặc rằng một lượt đang chạy rồi)
Các agent đánh giá làm việc trong không gian đánh giá của PR; hãy đọc và công bố các phát hiện như trong Dùng đánh giá hỗ trợ AI. Việc công bố trở lại GitHub vẫn là quyết định bạn đưa ra trong Control Center — khởi động một lượt đánh giá từ GitHub không tự nó công bố gì lên GitHub.
Nhãn chỉ kích hoạt một lần cho mỗi PR: thêm nhãn chính là yêu cầu, và nó không được nạp lại khi bạn gỡ rồi thêm lại. Muốn chạy lại một lượt đánh giá — chẳng hạn sau một lần push — hãy nhắc đến bot.
Đặt một câu hỏi
Phần tiêu đề “Đặt một câu hỏi”Bình luận trong cuộc hội thoại của PR:
@myapp why does the flaky test in runner_test.dart fail on CI but not locally?Những gì diễn ra, theo thứ tự:
- Bot thả cảm xúc 👀 để bạn biết bình luận đã được thấy
- Câu hỏi được đăng vào không gian đánh giá của PR dưới danh nghĩa bạn — cùng cách quy kết như khi bạn tự gõ nó trong Control Center
- Một agent trả lời trong space, và câu trả lời được đăng trở lại trên PR dưới dạng bình luận có nhắc đến bạn bằng @
Một câu hỏi trên PR chưa có lượt đánh giá nào sẽ đánh thức agent CEO của không gian làm việc; khi đã có một lượt đánh giá chạy, agent nói sau cùng sẽ trả lời, nên những câu hỏi tiếp theo rơi đúng vào người nắm ngữ cảnh.
Trả lời tiếp trong một luồng đánh giá
Phần tiêu đề “Trả lời tiếp trong một luồng đánh giá”Hãy trả lời bên trong một luồng đánh giá nội tuyến mà bot tham gia — một bình luận trên diff do bot để lại, hoặc một câu trả lời bot đã đăng trong luồng đó. Không cần nhắc đến ai; chính luồng là cách gọi tới bot:
> @myapp the retry loop looks O(n²) to me
what would the complexity be with the bounded queue instead?Nhiều lượt cũng hoạt động như vậy: mỗi câu trả lời là một câu hỏi nữa trong cùng cuộc hội thoại, lấy không gian đánh giá làm ngữ cảnh, và câu trả lời quay về ngay trong luồng.
Một câu hỏi tiếp trên dòng thời gian hội thoại của PR là một bình luận cấp cao nhất mới, nên nó vẫn cần một lượt nhắc đến bằng @.
Bot nói chuyện với ai
Phần tiêu đề “Bot nói chuyện với ai”Một bình luận GitHub đến chỉ mang theo không hơn gì một tên đăng nhập, nên bot phân giải tác giả trước khi làm bất cứ điều gì:
- Tài khoản GitHub của bạn phải được liên kết với danh tính của bạn trong Control Center — hãy đăng nhập bằng GitHub, hoặc dán một token, từ Cài đặt → Không gian làm việc → Hồ sơ & danh tính → Lưu trữ mã
- Bạn phải là thành viên có vai trò ghi (
member,adminhoặcowner) trong không gian làm việc đã liên kết kho mã đó
Mọi người khác đều nhận một câu trả lời lịch sự giải thích điều còn thiếu — một
tên đăng nhập không rõ (chưa liên kết, hoặc đã liên kết nhưng không phải thành
viên ở đây) và một vai trò chỉ đọc là hai trường hợp đó — và lời của họ không bao
giờ bước vào không gian làm việc. Nhãn ai-review không bị chặn theo cách này:
nó không có tác giả, nên nó khởi động lượt đánh giá trong không gian làm việc vốn
đã liên kết kho mã.
Điều cần mong đợi
Phần tiêu đề “Điều cần mong đợi”| Hạng mục | Hành vi |
|---|---|
| Phản hồi xác nhận | 👀 trên một bình luận trong khoảng một phút — đó là khoảng quét. Nhãn ai-review không có bình luận nào để thả cảm xúc |
| Câu trả lời | Được đăng dưới danh nghĩa bot (ứng dụng), trong làn mà câu hỏi được đặt ra |
| Quy kết trong space | Câu hỏi là của bạn; agent chạy thay mặt bạn, theo núm tự chủ của space |
| Đánh giá | Các phát hiện đáp xuống không gian đánh giá; việc công bố lên GitHub là thủ công |
Độ trễ chừng một phút là cái giá phải trả để không cần bất kỳ quyền truy cập mạng vào nào. Không có gì trong lượt quét là gấp gáp, và không có gì bị mất khi máy chủ ngoại tuyến — một bình luận đến trong lúc ngừng hoạt động sẽ được bắt ở lượt quét kế tiếp.
Xử lý sự cố
Phần tiêu đề “Xử lý sự cố”Không có gì xảy ra với một bình luận có nhắc đến bot.
- App đã được cài đặt trên tài khoản sở hữu kho mã chưa, và kho mã đã được liên kết với một không gian làm việc chưa? Một kho mã chưa liên kết sẽ bị bỏ qua trước khi bất cứ thứ gì được ghi lại, nên liên kết nó sau đó vẫn được xử lý
- Tài khoản GitHub của bạn đã được liên kết chưa, và bạn có phải thành viên với vai trò ghi không? Hãy xem câu trả lời từ chối của bot trên PR — nó cho biết bạn vướng điều kiện nào
- Vẫn không có gì? Nhật ký máy chủ nêu tên lượt quét và PR khi có gì đó thất bại;
hãy tìm
pr_conversation:(bộ thăm dò) vàgithub_pr_conversation:(cầu)
Nhãn không khởi động một lượt đánh giá.
Nó chỉ kích hoạt một lần cho mỗi PR. Nếu một lượt đánh giá đã chạy, hoặc nhãn
được thêm trước khi máy chủ từng thấy PR (lượt quét đầu tiên ghi lại phần tồn
đọng một cách âm thầm thay vì xả ồ ạt), thì hãy nhắc đến bot — @myapp review
luôn khởi động một lượt, trừ khi đã có một lượt đang chạy.
Câu trả lời của bot không bao giờ đến GitHub.
Bản thân câu trả lời không bao giờ bị mất — nó nằm trong không gian đánh giá của PR trong Control Center. Một lần đăng thất bại (GitHub sập, quyền thay đổi) sẽ được ghi nhật ký và câu trả lời không được thử lại; hãy hỏi lại trong luồng nếu điều đó quan trọng.
Hướng dẫn liên quan
Phần tiêu đề “Hướng dẫn liên quan”- Tạo GitHub App: bản đăng ký mà bot ra đời từ đó
- Dùng đánh giá hỗ trợ AI: đọc các phát hiện mà một lượt đánh giá do nhắc đến tạo ra
- Thiết lập tích hợp GitHub: liên kết tài khoản GitHub của riêng bạn, thứ mà bot dùng để phân giải bạn
- Dùng space: căn phòng mà tất cả những điều trên đáp xuống