Back to articles

Agents Join the Meeting: Three Play Patterns, Plus Atour's Shadow Interviewer Recipe

Feishu CLI Community··Source

The most concrete thing shown at the Feishu CLI Developer Day in Shenzhen was agents joining live meetings. The full meeting pipeline is now open: an agent can listen in real time, read the live comment stream (弹幕), and post interactive content back. Screen-sharing and meeting-process monitoring are on the roadmap. This post breaks down the three validated play patterns, the flagship cases behind them, and the lark-cli vc / minutes commands you can build with today.

The three play patterns (by how the agent thinks & talks)

  • Deep thinking + text interaction — the agent answers live-comment questions, tallies the most-asked questions, and follows up meeting todos. Fully open now. This is the one you can ship this week.
  • Shallow thinking + voice interaction — the agent plays a fixed role doing standardized exchanges: sales training, user research, roll call in meetings. Good for processes that barely change.
  • Deep thinking + voice interaction — the agent takes live voice commands and does complex operations. Still internal-only; there's noticeable response latency.

Note on availability: standalone agent-join and voice interaction are in grayscale (灰度) — prioritized for customers with a real scenario and dev capability who want to co-create. The text-interaction loop is fully open.

Flagship case 1 — Atour's "Shadow Interviewer"

Atour built a shadow interviewer on this capability. It auto-pulls the job JD and the candidate's resume, suggests follow-up questions in real time during the interview, and auto-generates the interview evaluation afterward — filed away without the interviewer typing a thing.

Reproduce the loop:

# 1. Resolve the meeting into a minute_token

lark vc +recording --meeting-id <meeting_id>

# 2. Pull the live transcript + chapters as the interview runs

lark minutes +detail --minute-tokens <token> --transcript --chapter --as user

# 3. Post a suggested follow-up question into the meeting chat

lark vc +meeting-message-send --meeting-id <meeting_id> --content "建议追问:候选人主导的深度?"

# 4. After the meeting, generate the evaluation as a doc

lark docs +create --content '<title>面评-候选人X</title>...'

The interviewer-assistant prompt:

"你是资深面试官的影子助手。这是岗位 JD、候选人简历,以及面试实时逐字稿的最近一段。请判断:候选人刚才的回答是否真正回答了问题?如果回避或答得浅,给出一句具体的追问建议(不超过 30 字)。如果回答充分,只输出『OK』。不要评价语气,只给可执行的追问。"

Flagship case 2 — Incident-triage assistant (Feishu's own R&D)

Feishu's internal R&D team runs a meeting agent that takes live voice/data requests during incident-review calls and runs the data lookups, so engineers stay focused on analysis instead of alt-tabbing to dashboards. The agent maintains a live panel: current conclusion, suspected cause, blast radius, timeline, and todos.

The building block is the same: vc +recordingminutes +detail --transcript, then the agent updates a shared doc as the source of truth:

# Keep a living incident doc updated during the call

lark docs +update --doc <incident_doc> --command append \

--content '<p>[11:46] 当前结论:追光退款;原因定位中;影响:trc、11</p>'

Flagship case 3 — Meeting roll-call assistant

For big recurring all-hands, the agent auto-tallies who actually attended and pushes the meeting content to no-shows, so information doesn't fall through the cracks.

# Who spoke / attended

lark minutes +detail --minute-tokens <token> --transcript --as user

# DM the summary to each no-show

lark im +messages-send --user-id <absent_user> --msg-type text --content "今日周会纪要:<link>"

Start here: the text-interaction loop

Don't wait for voice grayscale. The fully-open text loop already covers the highest-value pattern — listen, then act on the record:

meeting_id ──vc +recording──▶ minute_token

minute_token ──minutes +detail──▶ transcript + summary + todos

transcript ──your agent──▶ answers / tallies / follow-ups

results ──vc +meeting-message-send / im +messages-send──▶ back to people

One command turns a meeting into structured data; one more pushes your agent's output back into the room. Everything else is your prompt.