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 理解はどう深まるか