Google Meet hỗ trợ người tham gia cho OpenClaw — Plugin được thiết kế rõ ràng có chủ đích:Documentation Index
Fetch the complete documentation index at: https://docs.openclaw.ai/llms.txt
Use this file to discover all available pages before exploring further.
- Nó chỉ tham gia một URL
https://meet.google.com/...rõ ràng. - Nó có thể tạo một không gian Meet mới thông qua Google Meet API, rồi tham gia URL được trả về.
- Giọng nói thời gian thực là chế độ mặc định.
- Giọng nói thời gian thực có thể gọi ngược vào toàn bộ tác tử OpenClaw khi cần suy luận sâu hơn hoặc công cụ.
- Tác tử chọn hành vi tham gia bằng
mode: dùngrealtimeđể nghe/nói lại trực tiếp, hoặctranscribeđể tham gia/điều khiển trình duyệt mà không có cầu nối giọng nói thời gian thực. - Xác thực bắt đầu bằng Google OAuth cá nhân hoặc một hồ sơ Chrome đã đăng nhập.
- Không có thông báo đồng ý tự động.
- Backend âm thanh Chrome mặc định là
BlackHole 2ch. - Chrome có thể chạy cục bộ hoặc trên một máy chủ node đã ghép nối.
- Twilio chấp nhận một số quay vào cùng PIN hoặc chuỗi DTMF tùy chọn.
- Lệnh CLI là
googlemeet;meetđược dành cho các quy trình hội nghị từ xa rộng hơn của tác tử.
Bắt đầu nhanh
Cài đặt các phụ thuộc âm thanh cục bộ và cấu hình một nhà cung cấp giọng nói thời gian thực ở backend. OpenAI là mặc định; Google Gemini Live cũng hoạt động vớirealtime.provider: "google":
blackhole-2ch cài đặt thiết bị âm thanh ảo BlackHole 2ch. Trình cài đặt của
Homebrew yêu cầu khởi động lại trước khi macOS hiển thị thiết bị:
--mode transcribe; chế độ đó bỏ qua các điều kiện tiên quyết về âm thanh
thời gian thực vì nó không nghe qua hoặc nói qua cầu nối:
voice-call và
thông tin xác thực Twilio đã sẵn sàng hay chưa. Xem mọi kiểm tra ok: false là
một điểm chặn cho transport và chế độ đang được kiểm tra trước khi yêu cầu tác
tử tham gia. Dùng openclaw googlemeet setup --json cho script hoặc đầu ra máy
đọc được. Dùng --transport chrome, --transport chrome-node, hoặc --transport twilio
để kiểm tra trước một transport cụ thể trước khi tác tử thử dùng nó.
Tham gia cuộc họp:
google_meet:
googlemeet create có hai đường dẫn:
- Tạo bằng API: được dùng khi thông tin xác thực Google Meet OAuth đã được cấu hình. Đây là đường dẫn xác định nhất và không phụ thuộc vào trạng thái giao diện trình duyệt.
- Dự phòng bằng trình duyệt: được dùng khi không có thông tin xác thực OAuth.
OpenClaw dùng node Chrome đã ghim, mở
https://meet.google.com/new, chờ Google chuyển hướng đến một URL mã cuộc họp thật, rồi trả về URL đó. Đường dẫn này yêu cầu hồ sơ Chrome OpenClaw trên node đã đăng nhập vào Google. Tự động hóa trình duyệt xử lý lời nhắc micrô lần chạy đầu của riêng Meet; lời nhắc đó không được xem là lỗi đăng nhập Google. Các luồng tham gia và tạo cũng cố gắng tái sử dụng một tab Meet hiện có trước khi mở tab mới. Việc khớp bỏ qua các chuỗi truy vấn URL vô hại nhưauthuser, nên lần thử lại của tác tử nên tập trung vào cuộc họp đã mở thay vì tạo tab Chrome thứ hai.
source (api hoặc browser) để tác tử có
thể giải thích đường dẫn nào đã được dùng. create tham gia cuộc họp mới theo
mặc định và trả về joined: true cùng phiên tham gia. Để chỉ phát hành URL, dùng
create --no-join trên CLI hoặc truyền "join": false vào công cụ.
Hoặc nói với tác tử: “Tạo một Google Meet, tham gia bằng giọng nói thời gian
thực, và gửi cho tôi liên kết.” Tác tử nên gọi google_meet với
action: "create" rồi chia sẻ meetingUri được trả về.
"mode": "transcribe".
Việc đó không khởi động cầu nối mô hình thời gian thực song công, không yêu cầu
BlackHole hoặc SoX, và sẽ không nói lại vào cuộc họp. Lượt tham gia Chrome ở chế
độ này cũng tránh cấp quyền micrô/máy ảnh của OpenClaw và tránh đường dẫn Use
microphone của Meet. Nếu Meet hiển thị màn hình xen kẽ chọn âm thanh, tự động
hóa sẽ thử đường dẫn không dùng micrô và nếu không được thì báo một hành động thủ
công thay vì mở micrô cục bộ.
Trong các phiên thời gian thực, trạng thái google_meet bao gồm tình trạng
trình duyệt và cầu nối âm thanh như inCall, manualActionRequired,
providerConnected, realtimeReady, audioInputActive, audioOutputActive,
dấu thời gian đầu vào/đầu ra gần nhất, bộ đếm byte, và trạng thái cầu nối đã
đóng. Nếu một lời nhắc trang Meet an toàn xuất hiện, tự động hóa trình duyệt sẽ
xử lý khi có thể. Lời nhắc đăng nhập, cho phép từ chủ trì, và quyền trình
duyệt/OS được báo cáo là hành động thủ công kèm lý do và thông điệp để tác tử
chuyển tiếp.
Lượt tham gia Chrome cục bộ đi qua hồ sơ trình duyệt OpenClaw đã đăng nhập. Chế
độ thời gian thực yêu cầu BlackHole 2ch cho đường dẫn micrô/loa mà OpenClaw
dùng. Để có âm thanh song công sạch, dùng các thiết bị ảo riêng biệt hoặc một đồ
thị kiểu Loopback; một thiết bị BlackHole duy nhất là đủ cho kiểm thử khói đầu
tiên nhưng có thể tạo tiếng vọng.
Gateway cục bộ + Parallels Chrome
Bạn không cần một OpenClaw Gateway đầy đủ hoặc khóa API mô hình bên trong VM macOS chỉ để VM sở hữu Chrome. Chạy Gateway và tác tử cục bộ, rồi chạy một máy chủ node trong VM. Bật Plugin đi kèm trên VM một lần để node quảng bá lệnh Chrome: Thứ chạy ở từng nơi:- Máy chủ Gateway: OpenClaw Gateway, workspace của tác tử, khóa model/API, nhà cung cấp thời gian thực, và cấu hình Plugin Google Meet.
- Parallels macOS VM: OpenClaw CLI/máy chủ node, Google Chrome, SoX, BlackHole 2ch, và hồ sơ Chrome đã đăng nhập vào Google.
- Không cần trong VM: dịch vụ Gateway, cấu hình tác tử, khóa OpenAI/GPT, hoặc thiết lập nhà cung cấp mô hình.
BlackHole 2ch:
<gateway-host> là IP LAN và bạn không dùng TLS, node sẽ từ chối WebSocket
plaintext trừ khi bạn chủ động bật cho mạng riêng đáng tin cậy đó:
OPENCLAW_ALLOW_INSECURE_PRIVATE_WS=1 là môi trường của tiến trình, không phải
một thiết lập openclaw.json. openclaw node install lưu nó trong môi trường
LaunchAgent khi nó hiện diện trên lệnh cài đặt.
Phê duyệt node từ máy chủ Gateway:
googlemeet.chrome lẫn năng lực
trình duyệt/browser.proxy:
google_meet với transport: "chrome-node".
Đối với kiểm thử khói một lệnh để tạo hoặc tái sử dụng phiên, nói một cụm từ đã
biết, và in tình trạng phiên:
manualActionRequired: true với manualActionReason và
manualActionMessage. Tác tử nên ngừng thử tham gia lại, báo cáo đúng thông điệp
đó cộng với browserUrl/browserTitle hiện tại, và chỉ thử lại sau khi hành động
thủ công trong trình duyệt hoàn tất.
Nếu bỏ qua chromeNode.node, OpenClaw chỉ tự động chọn khi đúng một node đã kết
nối quảng bá cả googlemeet.chrome lẫn điều khiển trình duyệt. Nếu nhiều node có
năng lực được kết nối, đặt chromeNode.node thành id node, tên hiển thị, hoặc IP
từ xa.
Các kiểm tra lỗi thường gặp:
Configured Google Meet node ... is not usable: offline: node đã ghim được Gateway biết đến nhưng không khả dụng. Tác tử nên xem node đó là trạng thái chẩn đoán, không phải máy chủ Chrome có thể dùng, và báo cáo điểm chặn thiết lập thay vì dự phòng sang transport khác trừ khi người dùng yêu cầu như vậy.No connected Google Meet-capable node: khởi độngopenclaw node runtrong VM, phê duyệt ghép nối, và bảo đảmopenclaw plugins enable google-meetcùngopenclaw plugins enable browserđã được chạy trong VM. Đồng thời xác nhận máy chủ Gateway cho phép cả hai lệnh node bằnggateway.nodes.allowCommands: ["googlemeet.chrome", "browser.proxy"].BlackHole 2ch audio device not found: càiblackhole-2chtrên máy chủ đang được kiểm tra và khởi động lại trước khi dùng âm thanh Chrome cục bộ.BlackHole 2ch audio device not found on the node: càiblackhole-2chtrong VM và khởi động lại VM.- Chrome mở nhưng không thể tham gia: đăng nhập vào hồ sơ trình duyệt bên trong
VM, hoặc giữ
chrome.guestNameđược đặt cho tham gia với tư cách khách. Tự động tham gia với tư cách khách dùng tự động hóa trình duyệt OpenClaw thông qua proxy trình duyệt node; hãy bảo đảm cấu hình trình duyệt node trỏ đến hồ sơ bạn muốn, ví dụbrowser.defaultProfile: "user"hoặc một hồ sơ phiên hiện có có tên. - Tab Meet trùng lặp: giữ
chrome.reuseExistingTab: trueđược bật. OpenClaw kích hoạt một tab hiện có cho cùng URL Meet trước khi mở tab mới, và việc tạo cuộc họp bằng trình duyệt tái sử dụng một tabhttps://meet.google.com/newđang diễn ra hoặc tab lời nhắc tài khoản Google trước khi mở tab khác. - Không có âm thanh: trong Meet, định tuyến micrô/loa qua đường dẫn thiết bị âm thanh ảo mà OpenClaw dùng; dùng các thiết bị ảo riêng biệt hoặc định tuyến kiểu Loopback để có âm thanh song công sạch.
Ghi chú cài đặt
Mặc định realtime của Chrome sử dụng hai công cụ bên ngoài:sox: tiện ích âm thanh dòng lệnh. Plugin sử dụng các lệnh thiết bị CoreAudio rõ ràng cho cầu nối âm thanh PCM16 24 kHz mặc định.blackhole-2ch: trình điều khiển âm thanh ảo của macOS. Nó tạo thiết bị âm thanhBlackHole 2chmà Chrome/Meet có thể định tuyến qua.
LGPL-2.0-only AND GPL-2.0-only; BlackHole là GPL-3.0. Nếu bạn xây dựng một
trình cài đặt hoặc thiết bị đóng gói BlackHole cùng với OpenClaw, hãy xem xét các
điều khoản cấp phép upstream của BlackHole hoặc lấy giấy phép riêng từ Existential Audio.
Phương thức truyền
Chrome
Phương thức truyền Chrome mở URL Meet thông qua điều khiển trình duyệt OpenClaw và tham gia bằng hồ sơ trình duyệt OpenClaw đã đăng nhập. Trên macOS, Plugin kiểm traBlackHole 2ch trước khi khởi chạy. Nếu được cấu hình, nó cũng chạy một lệnh
kiểm tra sức khỏe cầu nối âm thanh và lệnh khởi động trước khi mở Chrome. Dùng chrome khi
Chrome/âm thanh chạy trên máy chủ Gateway; dùng chrome-node khi Chrome/âm thanh chạy
trên một node đã ghép nối, chẳng hạn như VM macOS Parallels. Với Chrome cục bộ, chọn
hồ sơ bằng browser.defaultProfile; chrome.browserProfile được truyền đến
máy chủ chrome-node.
BlackHole 2ch, thao tác tham gia sẽ thất bại với lỗi thiết lập
thay vì âm thầm tham gia mà không có đường dẫn âm thanh.
Twilio
Phương thức truyền Twilio là một kế hoạch quay số nghiêm ngặt được ủy quyền cho Plugin Voice Call. Nó không phân tích trang Meet để tìm số điện thoại. Dùng cách này khi không thể tham gia bằng Chrome hoặc khi bạn muốn một phương án dự phòng quay số điện thoại. Google Meet phải cung cấp số điện thoại quay vào và mã PIN cho cuộc họp; OpenClaw không tự phát hiện các thông tin đó từ trang Meet. Bật Plugin Voice Call trên máy chủ Gateway, không phải trên node Chrome:openclaw.json:
voice-call; các thay đổi cấu hình Plugin
không xuất hiện trong một tiến trình Gateway đang chạy cho đến khi tiến trình đó tải lại.
Sau đó xác minh:
googlemeet setup bao gồm các kiểm tra
twilio-voice-call-plugin và twilio-voice-call-credentials thành công.
--dtmf-sequence khi cuộc họp cần một chuỗi tùy chỉnh:
OAuth và kiểm tra trước
OAuth là tùy chọn khi tạo liên kết Meet vìgooglemeet create có thể dự phòng
sang tự động hóa trình duyệt. Cấu hình OAuth khi bạn muốn tạo bằng API chính thức,
phân giải không gian, hoặc kiểm tra trước Meet Media API.
Quyền truy cập Google Meet API sử dụng OAuth người dùng: tạo một ứng dụng khách OAuth Google Cloud,
yêu cầu các phạm vi cần thiết, ủy quyền một tài khoản Google, sau đó lưu
refresh token thu được trong cấu hình Plugin Google Meet hoặc cung cấp các
biến môi trường OPENCLAW_GOOGLE_MEET_*.
OAuth không thay thế đường dẫn tham gia bằng Chrome. Các phương thức truyền Chrome và Chrome-node
vẫn tham gia thông qua một hồ sơ Chrome đã đăng nhập, BlackHole/SoX và một
node đã kết nối khi bạn dùng tham gia bằng trình duyệt. OAuth chỉ dành cho đường dẫn Google
Meet API chính thức: tạo không gian cuộc họp, phân giải không gian và chạy các kiểm tra trước
Meet Media API.
Tạo thông tin đăng nhập Google
Trong Google Cloud Console:- Tạo hoặc chọn một dự án Google Cloud.
- Bật Google Meet REST API cho dự án đó.
-
Cấu hình màn hình đồng ý OAuth.
- Internal là đơn giản nhất cho một tổ chức Google Workspace.
- External phù hợp với thiết lập cá nhân/thử nghiệm; khi ứng dụng đang ở Testing, hãy thêm từng tài khoản Google sẽ ủy quyền ứng dụng làm người dùng thử nghiệm.
-
Thêm các phạm vi mà OpenClaw yêu cầu:
https://www.googleapis.com/auth/meetings.space.createdhttps://www.googleapis.com/auth/meetings.space.readonlyhttps://www.googleapis.com/auth/meetings.conference.media.readonly
-
Tạo OAuth client ID.
- Loại ứng dụng: Web application.
-
URI chuyển hướng được ủy quyền:
- Sao chép client ID và client secret.
meetings.space.created là bắt buộc với Google Meet spaces.create.
meetings.space.readonly cho phép OpenClaw phân giải URL/mã Meet thành không gian.
meetings.conference.media.readonly dành cho kiểm tra trước Meet Media API và công việc
media; Google có thể yêu cầu đăng ký Developer Preview để thật sự dùng Media API.
Nếu bạn chỉ cần tham gia Chrome dựa trên trình duyệt, hãy bỏ qua OAuth hoàn toàn.
Tạo refresh token
Cấu hìnhoauth.clientId và tùy chọn oauth.clientSecret, hoặc truyền chúng dưới dạng
biến môi trường, rồi chạy:
oauth có refresh token. Nó sử dụng PKCE,
callback localhost tại http://localhost:8085/oauth2callback, và một quy trình
sao chép/dán thủ công với --manual.
Ví dụ:
oauth trong cấu hình Plugin Google Meet:
openclaw googlemeet auth login --json để refresh
token có phạm vi meetings.space.created.
Xác minh OAuth bằng doctor
Chạy OAuth doctor khi bạn muốn kiểm tra sức khỏe nhanh, không tiết lộ bí mật:ok, configured,
tokenSource, expiresAt, và thông báo kiểm tra; nó không in access
token, refresh token hoặc client secret.
Các kết quả thường gặp:
| Kiểm tra | Ý nghĩa |
|---|---|
oauth-config | Có oauth.clientId cộng với oauth.refreshToken, hoặc access token đã lưu trong bộ nhớ đệm. |
oauth-token | Access token đã lưu trong bộ nhớ đệm vẫn còn hợp lệ, hoặc refresh token đã tạo access token mới. |
meet-spaces-get | Kiểm tra --meeting tùy chọn đã phân giải một không gian Meet hiện có. |
meet-spaces-create | Kiểm tra --create-space tùy chọn đã tạo một không gian Meet mới. |
spaces.create, hãy chạy
kiểm tra tạo có tác dụng phụ:
--create-space tạo một URL Meet dùng một lần. Dùng nó khi bạn cần xác nhận
rằng dự án Google Cloud đã bật Meet API và tài khoản đã ủy quyền
có phạm vi meetings.space.created.
Để chứng minh quyền đọc cho một không gian cuộc họp hiện có:
doctor --oauth --meeting và resolve-space chứng minh quyền đọc đối với một không gian
hiện có mà tài khoản Google đã ủy quyền có thể truy cập. 403 từ các kiểm tra này
thường có nghĩa là Google Meet REST API bị tắt, refresh token đã đồng ý
thiếu phạm vi bắt buộc, hoặc tài khoản Google không thể truy cập không gian Meet đó.
Lỗi refresh-token có nghĩa là hãy chạy lại openclaw googlemeet auth login --json và lưu khối oauth mới.
Không cần thông tin đăng nhập OAuth cho dự phòng trình duyệt. Trong chế độ đó, xác thực Google
đến từ hồ sơ Chrome đã đăng nhập trên node đã chọn, không phải từ
cấu hình OpenClaw.
Các biến môi trường này được chấp nhận làm dự phòng:
OPENCLAW_GOOGLE_MEET_CLIENT_IDhoặcGOOGLE_MEET_CLIENT_IDOPENCLAW_GOOGLE_MEET_CLIENT_SECREThoặcGOOGLE_MEET_CLIENT_SECRETOPENCLAW_GOOGLE_MEET_REFRESH_TOKENhoặcGOOGLE_MEET_REFRESH_TOKENOPENCLAW_GOOGLE_MEET_ACCESS_TOKENhoặcGOOGLE_MEET_ACCESS_TOKENOPENCLAW_GOOGLE_MEET_ACCESS_TOKEN_EXPIRES_AThoặcGOOGLE_MEET_ACCESS_TOKEN_EXPIRES_ATOPENCLAW_GOOGLE_MEET_DEFAULT_MEETINGhoặcGOOGLE_MEET_DEFAULT_MEETINGOPENCLAW_GOOGLE_MEET_PREVIEW_ACKhoặcGOOGLE_MEET_PREVIEW_ACK
spaces/{id} thông qua spaces.get:
--meeting, artifacts và attendance dùng bản ghi hội nghị mới nhất
theo mặc định. Truyền --all-conference-records khi bạn muốn mọi bản ghi được lưu giữ
cho cuộc họp đó.
Tra cứu lịch có thể phân giải URL cuộc họp từ Google Calendar trước khi đọc
tạo phẩm Meet:
--today tìm kiếm trong lịch primary của hôm nay một sự kiện Calendar có liên kết Google Meet. Dùng --event <query> để tìm văn bản sự kiện khớp, và --calendar <id> cho lịch không phải lịch chính. Tra cứu Calendar yêu cầu đăng nhập OAuth mới có bao gồm phạm vi chỉ đọc sự kiện Calendar.
calendar-events xem trước các sự kiện Meet khớp và đánh dấu sự kiện mà latest, artifacts, attendance, hoặc export sẽ chọn.
Nếu bạn đã biết id bản ghi hội nghị, hãy truy cập trực tiếp:
artifacts trả về siêu dữ liệu bản ghi hội nghị cùng với siêu dữ liệu tài nguyên người tham gia, bản ghi, bản chép lời, mục bản chép lời có cấu trúc và ghi chú thông minh khi Google cung cấp cho cuộc họp. Dùng --no-transcript-entries để bỏ qua tra cứu mục cho các cuộc họp lớn. attendance mở rộng người tham gia thành các hàng phiên tham gia với thời điểm được thấy lần đầu/lần cuối, tổng thời lượng phiên, cờ đến muộn/rời sớm, và các tài nguyên người tham gia trùng lặp được hợp nhất theo người dùng đã đăng nhập hoặc tên hiển thị. Truyền --no-merge-duplicates để giữ riêng các tài nguyên người tham gia thô, --late-after-minutes để tinh chỉnh phát hiện đến muộn, và --early-before-minutes để tinh chỉnh phát hiện rời sớm.
export ghi một thư mục chứa summary.md, attendance.csv, transcript.md, artifacts.json, attendance.json, và manifest.json.
manifest.json ghi lại đầu vào đã chọn, tùy chọn xuất, bản ghi hội nghị, tệp đầu ra, số lượng, nguồn token, sự kiện Calendar khi được dùng, và mọi cảnh báo truy xuất một phần. Truyền --zip để cũng ghi một kho lưu trữ di động bên cạnh thư mục. Truyền --include-doc-bodies để xuất văn bản Google Docs của bản chép lời và ghi chú thông minh được liên kết thông qua Google Drive files.export; việc này yêu cầu đăng nhập OAuth mới có bao gồm phạm vi chỉ đọc Drive Meet. Nếu không có --include-doc-bodies, bản xuất chỉ bao gồm siêu dữ liệu Meet và các mục bản chép lời có cấu trúc. Nếu Google trả về lỗi hiện vật một phần, chẳng hạn lỗi liệt kê ghi chú thông minh, mục bản chép lời, hoặc nội dung tài liệu Drive, phần tóm tắt và manifest sẽ giữ cảnh báo thay vì làm hỏng toàn bộ bản xuất.
Dùng --dry-run để lấy cùng dữ liệu hiện vật/tham dự và in JSON manifest mà không tạo thư mục hoặc ZIP. Điều này hữu ích trước khi ghi một bản xuất lớn hoặc khi một agent chỉ cần số lượng, bản ghi đã chọn và cảnh báo.
Agent cũng có thể tạo cùng gói thông qua công cụ google_meet:
"dryRun": true để chỉ trả về manifest xuất và bỏ qua ghi tệp.
Chạy kiểm thử smoke trực tiếp có bảo vệ với một cuộc họp thật còn được lưu giữ:
OPENCLAW_LIVE_TEST=1bật kiểm thử trực tiếp có bảo vệ.OPENCLAW_GOOGLE_MEET_LIVE_MEETINGtrỏ tới một URL, mã, hoặcspaces/{id}Meet còn được lưu giữ.OPENCLAW_GOOGLE_MEET_CLIENT_IDhoặcGOOGLE_MEET_CLIENT_IDcung cấp id ứng dụng khách OAuth.OPENCLAW_GOOGLE_MEET_REFRESH_TOKENhoặcGOOGLE_MEET_REFRESH_TOKENcung cấp refresh token.- Tùy chọn:
OPENCLAW_GOOGLE_MEET_CLIENT_SECRET,OPENCLAW_GOOGLE_MEET_ACCESS_TOKEN, vàOPENCLAW_GOOGLE_MEET_ACCESS_TOKEN_EXPIRES_ATdùng cùng các tên dự phòng không có tiền tốOPENCLAW_.
https://www.googleapis.com/auth/meetings.space.readonly và
https://www.googleapis.com/auth/meetings.conference.media.readonly. Tra cứu Calendar cần https://www.googleapis.com/auth/calendar.events.readonly. Xuất nội dung tài liệu Drive cần
https://www.googleapis.com/auth/drive.meet.readonly.
Tạo một không gian Meet mới:
meeting uri mới, nguồn và phiên tham gia. Với thông tin xác thực OAuth, lệnh dùng Google Meet API chính thức. Không có thông tin xác thực OAuth, lệnh dùng hồ sơ trình duyệt đã đăng nhập của Node Chrome đã ghim làm dự phòng. Agent có thể dùng công cụ google_meet với action: "create" để tạo và tham gia trong một bước. Để chỉ tạo URL, truyền "join": false.
Ví dụ đầu ra JSON từ dự phòng trình duyệt:
google_meet trả về chi tiết có cấu trúc thay vì chuỗi thuần:
manualActionRequired: true, agent nên báo cáo manualActionMessage cùng với ngữ cảnh Node/tab trình duyệt và ngừng mở tab Meet mới cho đến khi người vận hành hoàn tất bước trong trình duyệt.
Ví dụ đầu ra JSON từ tạo bằng API:
manualActionRequired: true hoặc lỗi dự phòng trình duyệt và yêu cầu người vận hành hoàn tất đăng nhập Google trước khi thử lại.
Chỉ đặt preview.enrollmentAcknowledged: true sau khi xác nhận dự án Cloud, chủ thể OAuth và người tham gia cuộc họp của bạn đã được ghi danh vào Google Workspace Developer Preview Program cho Meet media APIs.
Cấu hình
Đường dẫn Chrome thời gian thực phổ biến chỉ cần bật Plugin, BlackHole, SoX và khóa nhà cung cấp giọng nói thời gian thực backend. OpenAI là mặc định; đặtrealtime.provider: "google" để dùng Google Gemini Live:
plugins.entries.google-meet.config:
defaultTransport: "chrome"defaultMode: "realtime"chromeNode.node: id/tên/IP Node tùy chọn chochrome-nodechrome.audioBackend: "blackhole-2ch"chrome.guestName: "OpenClaw Agent": tên dùng trên màn hình khách Meet đã đăng xuấtchrome.autoJoin: true: điền tên khách và bấm Join Now theo nỗ lực tối đa thông qua tự động hóa trình duyệt OpenClaw trênchrome-nodechrome.reuseExistingTab: true: kích hoạt tab Meet hiện có thay vì mở trùng lặpchrome.waitForInCallMs: 20000: chờ tab Meet báo đang trong cuộc gọi trước khi phần giới thiệu thời gian thực được kích hoạtchrome.audioFormat: "pcm16-24khz": định dạng âm thanh cặp lệnh. Chỉ dùng"g711-ulaw-8khz"cho các cặp lệnh cũ/tùy chỉnh vẫn phát âm thanh điện thoại.chrome.audioInputCommand: lệnh SoX đọc từ CoreAudioBlackHole 2chvà ghi âm thanh ởchrome.audioFormatchrome.audioOutputCommand: lệnh SoX đọc âm thanh ởchrome.audioFormatvà ghi vào CoreAudioBlackHole 2chrealtime.provider: "openai"realtime.toolPolicy: "safe-read-only"realtime.instructions: phản hồi nói ngắn gọn, vớiopenclaw_agent_consultcho câu trả lời sâu hơnrealtime.introMessage: kiểm tra sẵn sàng được nói ngắn khi cầu nối thời gian thực kết nối; đặt thành""để tham gia im lặngrealtime.agentId: id agent OpenClaw tùy chọn choopenclaw_agent_consult; mặc định làmain
voiceCall.enabled mặc định là true; với vận chuyển Twilio, nó ủy quyền cuộc gọi PSTN thực tế và DTMF cho Plugin Voice Call. Nếu voice-call chưa được bật, Google Meet vẫn có thể xác thực và ghi lại kế hoạch gọi, nhưng không thể thực hiện cuộc gọi Twilio.
Công cụ
Agent có thể dùng công cụgoogle_meet:
transport: "chrome" khi Chrome chạy trên máy chủ Gateway. Dùng
transport: "chrome-node" khi Chrome chạy trên một Node đã ghép đôi, chẳng hạn VM Parallels. Trong cả hai trường hợp, mô hình thời gian thực và openclaw_agent_consult chạy trên máy chủ Gateway, nên thông tin xác thực mô hình vẫn ở đó.
Dùng action: "status" để liệt kê các phiên đang hoạt động hoặc kiểm tra một ID phiên. Dùng action: "speak" với sessionId và message để khiến agent thời gian thực nói ngay lập tức. Dùng action: "test_speech" để tạo hoặc dùng lại phiên, kích hoạt một cụm từ đã biết và trả về tình trạng inCall khi máy chủ Chrome có thể báo cáo. test_speech luôn buộc mode: "realtime" và thất bại nếu được yêu cầu chạy ở mode: "transcribe" vì các phiên chỉ quan sát cố ý không thể phát lời nói. Kết quả speechOutputVerified dựa trên việc số byte đầu ra âm thanh thời gian thực tăng trong cuộc gọi kiểm thử này, nên một phiên được dùng lại với âm thanh cũ hơn không được tính là kiểm tra lời nói thành công mới. Dùng action: "leave" để đánh dấu một phiên đã kết thúc.
status bao gồm tình trạng Chrome khi có sẵn:
inCall: Chrome có vẻ đang ở trong cuộc gọi MeetmicMuted: trạng thái microphone Meet theo nỗ lực tối đamanualActionRequired/manualActionReason/manualActionMessage: hồ sơ trình duyệt cần đăng nhập thủ công, được chủ trì Meet cho vào, cấp quyền, hoặc sửa điều khiển trình duyệt trước khi lời nói có thể hoạt độngproviderConnected/realtimeReady: trạng thái cầu nối giọng nói thời gian thựclastInputAt/lastOutputAt: âm thanh cuối cùng được thấy từ hoặc gửi tới cầu nối
Tư vấn tác nhân thời gian thực
Chế độ thời gian thực của Chrome được tối ưu hóa cho vòng lặp giọng nói trực tiếp. Nhà cung cấp giọng nói thời gian thực nghe âm thanh cuộc họp và phát qua cầu nối âm thanh đã cấu hình. Khi mô hình thời gian thực cần suy luận sâu hơn, thông tin hiện tại hoặc các công cụ OpenClaw thông thường, nó có thể gọiopenclaw_agent_consult.
Công cụ tư vấn chạy tác nhân OpenClaw thông thường ở hậu trường với ngữ cảnh
bản chép lời cuộc họp gần đây và trả về một câu trả lời nói ngắn gọn cho phiên
giọng nói thời gian thực. Sau đó, mô hình giọng nói có thể nói câu trả lời đó trở lại cuộc họp.
Nó dùng cùng công cụ tư vấn thời gian thực dùng chung như Voice Call.
Theo mặc định, các lần tư vấn chạy với tác nhân main. Đặt realtime.agentId khi một
luồng Meet nên tư vấn một không gian làm việc tác nhân OpenClaw chuyên dụng, giá trị mặc định của mô hình,
chính sách công cụ, bộ nhớ và lịch sử phiên.
realtime.toolPolicy điều khiển lượt chạy tư vấn:
safe-read-only: cung cấp công cụ tư vấn và giới hạn tác nhân thông thường ởread,web_search,web_fetch,x_search,memory_searchvàmemory_get.owner: cung cấp công cụ tư vấn và cho phép tác nhân thông thường dùng chính sách công cụ tác nhân bình thường.none: không cung cấp công cụ tư vấn cho mô hình giọng nói thời gian thực.
Danh sách kiểm tra kiểm thử trực tiếp
Dùng chuỗi này trước khi bàn giao cuộc họp cho một tác nhân không có người giám sát:googlemeet setuptoàn bộ đều xanh.googlemeet setupbao gồmchrome-node-connectedkhi Chrome-node là phương thức truyền mặc định hoặc một node được ghim.nodes statushiển thị node đã chọn đang kết nối.- Node đã chọn quảng bá cả
googlemeet.chromevàbrowser.proxy. - Thẻ Meet tham gia cuộc gọi và
test-speechtrả về tình trạng Chrome vớiinCall: true.
googlemeet setupbao gồm các kiểm tra xanhtwilio-voice-call-pluginvàtwilio-voice-call-credentials.voicecallcó sẵn trong CLI sau khi tải lại Gateway.- Phiên trả về có
transport: "twilio"và mộttwilio.voiceCallId. googlemeet leave <sessionId>ngắt cuộc gọi thoại được ủy quyền.
Khắc phục sự cố
Tác nhân không thấy công cụ Google Meet
Xác nhận Plugin đã được bật trong cấu hình Gateway và tải lại Gateway:plugins.entries.google-meet, hãy khởi động lại hoặc tải lại Gateway.
Tác nhân đang chạy chỉ thấy các công cụ Plugin đã được tiến trình Gateway hiện tại
đăng ký.
Không có node có khả năng Google Meet đang kết nối
Trên máy chủ node, chạy:googlemeet.chrome cùng với browser.proxy.
Cấu hình Gateway phải cho phép các lệnh node đó:
googlemeet setup thất bại ở chrome-node-connected hoặc nhật ký Gateway báo
gateway token mismatch, hãy cài đặt lại hoặc khởi động lại node với token Gateway
hiện tại. Đối với Gateway LAN, điều này thường có nghĩa là:
Trình duyệt mở nhưng tác nhân không thể tham gia
Chạygooglemeet test-speech và kiểm tra tình trạng Chrome được trả về. Nếu nó
báo manualActionRequired: true, hãy hiển thị manualActionMessage cho người vận hành
và dừng thử lại cho đến khi hành động trong trình duyệt hoàn tất.
Các hành động thủ công phổ biến:
- Đăng nhập vào hồ sơ Chrome.
- Chấp nhận khách từ tài khoản chủ trì Meet.
- Cấp quyền micro/camera cho Chrome khi lời nhắc quyền gốc của Chrome xuất hiện.
- Đóng hoặc sửa hộp thoại quyền Meet bị kẹt.
Tạo cuộc họp thất bại
googlemeet create trước tiên dùng endpoint Google Meet API spaces.create
khi thông tin xác thực OAuth đã được cấu hình. Không có thông tin xác thực OAuth, nó sẽ dùng phương án dự phòng
trình duyệt Chrome node đã ghim. Xác nhận:
- Đối với tạo bằng API:
oauth.clientIdvàoauth.refreshTokenđã được cấu hình, hoặc có các biến môi trườngOPENCLAW_GOOGLE_MEET_*tương ứng. - Đối với tạo bằng API: refresh token đã được tạo sau khi hỗ trợ tạo
được thêm vào. Token cũ hơn có thể thiếu phạm vi
meetings.space.created; chạy lạiopenclaw googlemeet auth login --jsonvà cập nhật cấu hình Plugin. - Đối với phương án dự phòng trình duyệt:
defaultTransport: "chrome-node"vàchromeNode.nodetrỏ đến một node đang kết nối cóbrowser.proxyvàgooglemeet.chrome. - Đối với phương án dự phòng trình duyệt: hồ sơ Chrome OpenClaw trên node đó đã đăng nhập
vào Google và có thể mở
https://meet.google.com/new. - Đối với phương án dự phòng trình duyệt: các lần thử lại dùng lại một thẻ
https://meet.google.com/newhiện có hoặc thẻ lời nhắc tài khoản Google trước khi mở thẻ mới. Nếu tác nhân hết thời gian chờ, hãy thử lại lệnh gọi công cụ thay vì tự mở một thẻ Meet khác. - Đối với phương án dự phòng trình duyệt: nếu công cụ trả về
manualActionRequired: true, hãy dùngbrowser.nodeId,browser.targetId,browserUrlvàmanualActionMessageđược trả về để hướng dẫn người vận hành. Không thử lại theo vòng lặp cho đến khi hành động đó hoàn tất. - Đối với phương án dự phòng trình duyệt: nếu Meet hiển thị “Do you want people to hear you in the
meeting?”, hãy để thẻ mở. OpenClaw nên nhấp Use microphone hoặc, đối với
phương án dự phòng chỉ tạo, Continue without microphone thông qua tự động hóa trình duyệt
và tiếp tục chờ URL Meet được tạo. Nếu không thể, lỗi nên nhắc đến
meet-audio-choice-required, không phảigoogle-login-required.
Tác nhân tham gia nhưng không nói
Kiểm tra đường dẫn thời gian thực:mode: "realtime" để nghe/phản hồi bằng lời. mode: "transcribe" cố ý
không khởi động cầu nối giọng nói thời gian thực hai chiều. googlemeet test-speech
luôn kiểm tra đường dẫn thời gian thực và báo cáo liệu các byte đầu ra cầu nối có được
quan sát thấy cho lần gọi đó hay không. Nếu speechOutputVerified là false và
speechOutputTimedOut là true, nhà cung cấp thời gian thực có thể đã chấp nhận
câu nói nhưng OpenClaw không thấy byte đầu ra mới đến cầu nối âm thanh Chrome.
Cũng xác minh:
- Khóa nhà cung cấp thời gian thực có sẵn trên máy chủ Gateway, chẳng hạn như
OPENAI_API_KEYhoặcGEMINI_API_KEY. BlackHole 2chhiển thị trên máy chủ Chrome.soxtồn tại trên máy chủ Chrome.- Micro và loa Meet được định tuyến qua đường dẫn âm thanh ảo mà OpenClaw dùng.
googlemeet doctor [session-id] in phiên, node, trạng thái trong cuộc gọi,
lý do cần hành động thủ công, kết nối nhà cung cấp thời gian thực, realtimeReady, hoạt động
đầu vào/đầu ra âm thanh, dấu thời gian âm thanh gần nhất, bộ đếm byte và URL trình duyệt.
Dùng googlemeet status [session-id] khi bạn cần JSON thô. Dùng
googlemeet doctor --oauth khi bạn cần xác minh refresh Google Meet OAuth
mà không để lộ token; thêm --meeting hoặc --create-space khi bạn cũng cần
bằng chứng Google Meet API.
Nếu tác nhân hết thời gian chờ và bạn có thể thấy một thẻ Meet đã mở, hãy kiểm tra thẻ đó
mà không mở thẻ khác:
recover_current_tab. Nó tập trung và kiểm tra một
thẻ Meet hiện có cho phương thức truyền đã chọn. Với chrome, nó dùng điều khiển
trình duyệt cục bộ thông qua Gateway; với chrome-node, nó dùng Chrome node đã cấu hình.
Nó không mở thẻ mới hoặc tạo phiên mới; nó báo cáo trở ngại
hiện tại, chẳng hạn như đăng nhập, chấp nhận tham gia, quyền hoặc trạng thái chọn âm thanh.
Lệnh CLI nói chuyện với Gateway đã cấu hình, vì vậy Gateway phải đang chạy;
chrome-node cũng yêu cầu Chrome node đang kết nối.
Kiểm tra thiết lập Twilio thất bại
twilio-voice-call-plugin thất bại khi voice-call không được cho phép hoặc chưa được bật.
Thêm nó vào plugins.allow, bật plugins.entries.voice-call và tải lại
Gateway.
twilio-voice-call-credentials thất bại khi backend Twilio thiếu account
SID, auth token hoặc số gọi đi. Đặt các biến này trên máy chủ Gateway:
voicecall smoke mặc định chỉ kiểm tra mức sẵn sàng. Để chạy thử với một số cụ thể:
--yes khi bạn cố ý muốn đặt một cuộc gọi thông báo đi trực tiếp:
Cuộc gọi Twilio bắt đầu nhưng không bao giờ vào cuộc họp
Xác nhận sự kiện Meet cung cấp chi tiết quay số điện thoại. Truyền đúng số quay vào và PIN hoặc một chuỗi DTMF tùy chỉnh:w ở đầu hoặc dấu phẩy trong --dtmf-sequence nếu nhà cung cấp cần tạm dừng
trước khi nhập PIN.
Ghi chú
API phương tiện chính thức của Google Meet thiên về nhận, nên việc nói vào cuộc gọi Meet vẫn cần một đường dẫn người tham gia. Plugin này giữ ranh giới đó rõ ràng: Chrome xử lý việc tham gia bằng trình duyệt và định tuyến âm thanh cục bộ; Twilio xử lý việc tham gia bằng quay số điện thoại. Chế độ thời gian thực của Chrome cầnBlackHole 2ch cộng với một trong hai:
chrome.audioInputCommandcộng vớichrome.audioOutputCommand: OpenClaw sở hữu cầu nối mô hình thời gian thực và truyền âm thanh ởchrome.audioFormatgiữa các lệnh đó và nhà cung cấp giọng nói thời gian thực đã chọn. Đường dẫn Chrome mặc định là PCM16 24 kHz; G.711 mu-law 8 kHz vẫn khả dụng cho các cặp lệnh cũ.chrome.audioBridgeCommand: một lệnh cầu nối bên ngoài sở hữu toàn bộ đường dẫn âm thanh cục bộ và phải thoát sau khi khởi động hoặc xác thực daemon của nó.
googlemeet speak kích hoạt cầu nối âm thanh thời gian thực đang hoạt động cho một phiên Chrome. googlemeet leave dừng cầu nối đó. Với các phiên Twilio được ủy quyền thông qua Plugin cuộc gọi thoại, leave cũng ngắt cuộc gọi thoại bên dưới.