Hacktoberfest 2026:メンテナが10月に向けて印を付けた、オープンで初心者向けの issue。 Hacktoberfest の issue を見る

Provider tool call lifecycle events (start/done)

オープン
#6,984 コメント 2 件 リアクション 1 件 担当者 0 名 GitHub で見る

メンテナーはふだん 1 日以内に返信

まだ誰も着手していません。

評価

難易度
4/5
見積もり時間
3〜5日
初心者へのやさしさ
25/100
issue の種類
機能追加
明瞭さ
おおむね明確
活発さ
停滞
技術スタック
python

調査の方向性

Start with draft PR #6973, which the issue identifies as the implementation and says includes tests. Read how it translates provider stream events into provider_tool_call and bridges them to provider_tool_execution_updated; run the PR's tests. Done means consumers receive start and end events during provider-tool execution; the issue leaves naming and shape open for convergence.

索引モデルが issue の本文から書いたものです。

説明

Problem

When a provider features server-side (provider-executed) tools, there's no way to change session state while one of those tools is running — for example, playing a background "thinking" sound for exactly as long as a web search takes, then stopping it when the search returns.

Provider tools run inside a single LLM stream, so the agent state machine never sees them start or finish, and preemptive_generation decouples the timing further. The agent thinking state isn't a reliable proxy.

#5869 adds a terminal function_tools_called event that fires once at the end of a turn. That's useful for post-turn analysis, but it comes too late to drive anything during execution, and it doesn't give a distinct start signal.

Proposal

Add a provider-tool lifecycle that mirrors the existing local-tool one (ToolCallStarted / ToolCallEnded via tool_execution_updated):

  • A plugin translates its provider stream (e.g. Mistral's ToolExecutionStarted / ToolExecutionDone) into a generic provider_tool_call event, emitted on the LLM's EventEmitter
  • The framework bridges that onto the session as provider_tool_execution_updated, carrying ProviderToolCallStarted | ProviderToolCallEnded.
  • Consumers subscribe once: session.on("provider_tool_execution_updated", ...).

Any provider with server-side tools gets the session event for free once it adds the translation in its plugin.

Draft PR

Implementation (pipeline path, with tests, mypy strict + ruff clean): #6973

It could complement #5869 (keep that as the per-turn summary, this as the lifecycle) or replace it — happy to converge on naming and shape. Realtime path and the remote_session protobuf relay are natural follow-ups.

主要言語
Python
スター
14.6k
フォーク
3.9k
平均マージ
2日 7時間
マージ済み PR(30日)
228

環境構築

このプロジェクトには開発コンテナ、Dockerfile、コントリビューションガイドがありません。まず README を読み、一般的な手順ははじめてのコントリビューションガイドを参照してください。

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

livekit/agents のほかの issue

livekit/agents の issue をすべて見る

似ている issue

Python の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。