把这篇文档链接发给你的 AI Agent,它会按步骤帮你把接入跑通。
开启旁听模式后,你的 Agent 可以以 你的身份 实时获取会议内容 —— 字幕和会中聊天同步可见,你在会里听到什么,它就听到什么。
会议里不会出现任何机器人,其他参会者感知不到 Agent 的存在。
| 可以做 | 实时获取字幕、会中聊天、参会人进出情况 |
|---|---|
| 不支持 | 实时推送(需轮询拉取);在会上发声 |
| 适合场景 | 会议纪要、议程追踪、实时问答助手、背后支援型 Agent |
二、准备工作
- 加入灰度体验群,获取灰度资格
只有灰度范围内账号才能开启"允许智能体入会"。请点击邀请链接或扫码加入「飞书智能体入会 · 早鸟体验群」以获取灰度资格(群 ID:oc_904f435a6ef99f2923c10e25053279df)。

-
创建飞书应用 进入飞书开放平台,创建企业自建应用,获取
App ID/App Secret。 -
申请权限并完成用户授权:
需要的权限:vc:meeting.meetingevent:read(用户身份权限)。
申请时 数据权限范围 选「按条件筛选」→ 会议的归属者 → 包含 → 选择 「与应用可用范围一致」,权限变更后重新发布。
[Agent 操作]
> **第一阶段**(立即返回授权链接,发给用户): > ```bash > lark-cli auth login --scope "vc:meeting.meetingevent:read" --no-wait --json > ``` > 从输出拿到 `verification_url` 和 `device_code`,把 `verification_url` 用代码块原样发给用户,等用户点击完成授权。 > **第二阶段**(用户完成授权后执行): > ```bash > lark-cli auth login --device-code <device_code_from_step1> > ```
- 版本要求:
- 飞书客户端升级到 7.68+(飞书 → 头像 → 关于飞书 → 检查更新)
- lark-cli 升级到 v1.0.55+:
npm install -g @larksuite/cli@latest
- 会议开启「允许智能体入会」:
- 每场会议由 owner 在 安全设置 里打开该开关。
- 若找不到该选项,先打开「AI 总结」,再返回查看。
- 该开关仅对灰度范围内账号可见。

三、接入流程
用户本人在飞书会议中
↓
Agent 调用 GetUserActiveMeeting → 拿到 meeting_id
↓
Agent 调用 ListMeetingEvents 拉取会中事件(字幕、聊天等)
↓
Agent 通过飞书 IM 将分析结果发给用户
lark-cli 示例:
# 查询用户当前所在会议
lark-cli vc +meeting-list-active --as user
# 拉取会中事件(首次全量,后续用 page_token 增量)
lark-cli vc +meeting-events --as user --meeting-id <meeting_id> --page-all
关键约束: - UAT 场景无实时推送,需要轮询拉取。 - 用户必须本人在会中,且会议已开「允许智能体入会」。
四、API 参考
GetUserActiveMeeting — 获取用户活跃会议
GET /open-apis/vc/v1/bots/user_active_meeting
返回用户当前所在的会议列表,每项含 meeting_id、meeting_no、meeting_title。有多个会议时让用户选一个。详情参考 获取用户活跃会议。
ListMeetingEvents — 获取会议事件
GET /open-apis/vc/v1/bots/events
获取会议中的事件列表,包括参会人加入或离开、发言、聊天、共享等事件。详情参考获取会议事件。
五、事件数据结构
通过 ListMeetingEvents 返回的事件,按 activity_event_type 区分类型。
字幕 transcript_received_items
{
"speaker": { "id": "xxx", "user_type": 1, "user_name": "张三" },
"text": "今天来讨论一下这个方案",
"language": "zh-CN",
"start_time_ms": "1716699012000",
"end_time_ms": "1716699014000",
"sentence_id": "100001"
}
user_type 可能为声纹检测类型(100/101/102),需兼容处理。
聊天消息 chat_received_items
{
"operator": { "id": "xxx", "user_name": "张三" },
"message_id": "om_xxx",
"message_type": 1,
"content": "大家好",
"send_time": "1716699030000"
}
message_type:1=文本,2=系统,3=表情,4=加密。
参会人进入 participant_joined_items
{
"participant": { "id": "xxx", "user_type": 1, "user_role": 1, "user_name": "张三" },
"join_time": "1716699010000"
}
参会人离开 participant_left_items
{
"participant": { "id": "xxx", "user_name": "张三" },
"leave_reason": 1,
"leave_time": "1716700000000"
}
leave_reason:1=主动离会,2=会议结束,3=被踢出。
六、排查清单
| 问题 | 原因 | 解决方案 |
|---|---|---|
| 拉事件报无权限 | 用户不在会,或会议未开「允许智能体入会」 | 确认用户在会中且开关已开 |
| meeting_id 用错 | 用了 9 位会议号 | 用 GetUserActiveMeeting 查到的长 ID |
| 拿不到实时字幕 | 旁听模式无推送 | 正常,需轮询调 ListMeetingEvents |