LiveKit で Worker と Job はどう違うか
Question
LiveKit Agents を学んでいると、Worker と Job の両方が出てくる。どちらも Agent 実行に関係するが、何がどう違うのか。
Answer
違いを一言で言うと、Worker は長寿命の実行基盤、Job はその都度 Worker に渡される個別の実行要求 だ。
Worker はプロセスとして起動し続け、Job を待ち受ける。デプロイ、起動モード、Secrets、Logs、Observability といった運用上の論点は Worker 側に寄る。つまり Worker は「どこでどう動かすか」を考える単位である。
一方 Job は、ある Room や参加要求に応じて発生し、dispatch によって Worker へ割り当てられる。Job は永続的なホストではなく、1回の実行要求であり、「何を今走らせるか」を表す単位である。
したがって、LiveKit の理解では次の切り分けが有効だ。
- Worker: 常駐する実行主体
- Job: Worker に流れてくる個別タスク
- AgentSession: Job の中で実際に進行する会話の実体
この三層で見ると、インフラ層と対話層の区別がかなり明確になる。
Evidence / Linked Notes
Follow-up Questions
- Worker の並列性や isolation は runtime 実装上どう担保されるか
- dispatch policy を理解すると Job 理解はどう深まるか