Back to articles

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

Feishu CLI Community··Source

At the July 2026 Feishu CLI Developer Day in Shenzhen, the team demonstrated agents joining meetings, interacting through text and voice, and producing follow-up records. This article reviews the demonstrated workflows and the CLI commands used to retrieve recordings and meeting notes.

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.
  • 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.

At the event, text interaction was described as broadly available, while standalone agent joining and voice interaction were in a limited rollout. Access depends on your tenant, app permissions, and the current platform rollout.

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-cli vc +recording --meeting-ids <meeting_id>

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

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

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

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

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

lark-cli 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 +recording → minutes +detail --transcript, then the agent updates a shared doc as the source of truth:

# Keep a living incident doc updated during the call

lark-cli 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-cli minutes +detail --minute-tokens <token> --transcript --as user

# DM the summary to each no-show

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

Start here: the text-interaction loop

Start by retrieving available meeting records, then let your agent produce answers, summaries, and follow-ups:

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.