From 214b58d7e444cda3d8b74606d0a05d0f4da00c78 Mon Sep 17 00:00:00 2001 From: Chenghao Mou Date: Sat, 13 Jun 2026 16:11:10 +0100 Subject: [PATCH 1/7] add backchannel probability to the prediction --- protobufs/agent/livekit_agent_inference.proto | 1 + 1 file changed, 1 insertion(+) diff --git a/protobufs/agent/livekit_agent_inference.proto b/protobufs/agent/livekit_agent_inference.proto index 514427727..8b1869301 100644 --- a/protobufs/agent/livekit_agent_inference.proto +++ b/protobufs/agent/livekit_agent_inference.proto @@ -201,6 +201,7 @@ message EotPrediction { float probability = 1; InferenceStats inference_stats = 2; EotBackend backend = 3; + float backchannel_probability = 4; } message InterruptionPrediction { From e5d2745fc032c22e1b455ee33e32d194720b472a Mon Sep 17 00:00:00 2001 From: github-actions <41898282+github-actions[bot]@users.noreply.github.com> Date: Sat, 13 Jun 2026 15:14:18 +0000 Subject: [PATCH 2/7] generated protobuf --- infra/link.pb.go | 2 +- infra/link_grpc.pb.go | 2 +- livekit/agent/livekit_agent_dev.pb.go | 2 +- livekit/agent/livekit_agent_inference.pb.go | 27 ++++++++++++++------- livekit/agent/livekit_agent_session.pb.go | 2 +- livekit/cloud_replay.pb.go | 2 +- livekit/livekit_agent.pb.go | 2 +- livekit/livekit_agent_dispatch.pb.go | 2 +- livekit/livekit_agent_simulation.pb.go | 2 +- livekit/livekit_agent_worker.pb.go | 2 +- livekit/livekit_analytics.pb.go | 2 +- livekit/livekit_cloud_agent.pb.go | 2 +- livekit/livekit_connector.pb.go | 2 +- livekit/livekit_connector_twilio.pb.go | 2 +- livekit/livekit_connector_whatsapp.pb.go | 2 +- livekit/livekit_egress.pb.go | 2 +- livekit/livekit_ingress.pb.go | 2 +- livekit/livekit_internal.pb.go | 2 +- livekit/livekit_metrics.pb.go | 2 +- livekit/livekit_models.pb.go | 2 +- livekit/livekit_phone_number.pb.go | 2 +- livekit/livekit_room.pb.go | 2 +- livekit/livekit_rtc.pb.go | 2 +- livekit/livekit_sip.pb.go | 2 +- livekit/livekit_token_source.pb.go | 2 +- livekit/livekit_webhook.pb.go | 2 +- livekit/logger/options.pb.go | 2 +- rpc/agent.pb.go | 2 +- rpc/agent_dispatch.pb.go | 2 +- rpc/analytics.pb.go | 2 +- rpc/analytics_grpc.pb.go | 2 +- rpc/egress.pb.go | 2 +- rpc/ingress.pb.go | 2 +- rpc/io.pb.go | 2 +- rpc/keepalive.pb.go | 2 +- rpc/participant.pb.go | 2 +- rpc/room.pb.go | 2 +- rpc/roommanager.pb.go | 2 +- rpc/signal.pb.go | 2 +- rpc/sip.pb.go | 2 +- rpc/whip_signal.pb.go | 2 +- 41 files changed, 58 insertions(+), 49 deletions(-) diff --git a/infra/link.pb.go b/infra/link.pb.go index 52cfbe1e4..ee44b5b08 100644 --- a/infra/link.pb.go +++ b/infra/link.pb.go @@ -15,7 +15,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.36.11 -// protoc v7.35.0 +// protoc v7.35.1 // source: infra/link.proto package infra diff --git a/infra/link_grpc.pb.go b/infra/link_grpc.pb.go index 1f43742c4..8cc2e120a 100644 --- a/infra/link_grpc.pb.go +++ b/infra/link_grpc.pb.go @@ -15,7 +15,7 @@ // Code generated by protoc-gen-go-grpc. DO NOT EDIT. // versions: // - protoc-gen-go-grpc v1.6.2 -// - protoc v7.35.0 +// - protoc v7.35.1 // source: infra/link.proto package infra diff --git a/livekit/agent/livekit_agent_dev.pb.go b/livekit/agent/livekit_agent_dev.pb.go index 777727aa2..ffa547483 100644 --- a/livekit/agent/livekit_agent_dev.pb.go +++ b/livekit/agent/livekit_agent_dev.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.36.11 -// protoc v7.35.0 +// protoc v7.35.1 // source: agent/livekit_agent_dev.proto package agent diff --git a/livekit/agent/livekit_agent_inference.pb.go b/livekit/agent/livekit_agent_inference.pb.go index 151ee49a9..4ee7a3dc3 100644 --- a/livekit/agent/livekit_agent_inference.pb.go +++ b/livekit/agent/livekit_agent_inference.pb.go @@ -15,7 +15,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.36.11 -// protoc v7.35.0 +// protoc v7.35.1 // source: agent/livekit_agent_inference.proto package agent @@ -1650,12 +1650,13 @@ func (*SessionClosed) Descriptor() ([]byte, []int) { } type EotPrediction struct { - state protoimpl.MessageState `protogen:"open.v1"` - Probability float32 `protobuf:"fixed32,1,opt,name=probability,proto3" json:"probability,omitempty"` - InferenceStats *InferenceStats `protobuf:"bytes,2,opt,name=inference_stats,json=inferenceStats,proto3" json:"inference_stats,omitempty"` - Backend EotPrediction_EotBackend `protobuf:"varint,3,opt,name=backend,proto3,enum=livekit.agent.EotPrediction_EotBackend" json:"backend,omitempty"` - unknownFields protoimpl.UnknownFields - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Probability float32 `protobuf:"fixed32,1,opt,name=probability,proto3" json:"probability,omitempty"` + InferenceStats *InferenceStats `protobuf:"bytes,2,opt,name=inference_stats,json=inferenceStats,proto3" json:"inference_stats,omitempty"` + Backend EotPrediction_EotBackend `protobuf:"varint,3,opt,name=backend,proto3,enum=livekit.agent.EotPrediction_EotBackend" json:"backend,omitempty"` + BackchannelProbability float32 `protobuf:"fixed32,4,opt,name=backchannel_probability,json=backchannelProbability,proto3" json:"backchannel_probability,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *EotPrediction) Reset() { @@ -1709,6 +1710,13 @@ func (x *EotPrediction) GetBackend() EotPrediction_EotBackend { return EotPrediction_EOT_BACKEND_UNKNOWN } +func (x *EotPrediction) GetBackchannelProbability() float32 { + if x != nil { + return x.BackchannelProbability + } + return 0 +} + type InterruptionPrediction struct { state protoimpl.MessageState `protogen:"open.v1"` IsInterruption bool `protobuf:"varint,1,opt,name=is_interruption,json=isInterruption,proto3" json:"is_interruption,omitempty"` @@ -2063,11 +2071,12 @@ const file_agent_livekit_agent_inference_proto_rawDesc = "" + "\x05value\x18\x02 \x01(\x02R\x05value:\x028\x01\"\x12\n" + "\x10InferenceStarted\"\x12\n" + "\x10InferenceStopped\"\x0f\n" + - "\rSessionClosed\"\x95\x02\n" + + "\rSessionClosed\"\xce\x02\n" + "\rEotPrediction\x12 \n" + "\vprobability\x18\x01 \x01(\x02R\vprobability\x12F\n" + "\x0finference_stats\x18\x02 \x01(\v2\x1d.livekit.agent.InferenceStatsR\x0einferenceStats\x12A\n" + - "\abackend\x18\x03 \x01(\x0e2'.livekit.agent.EotPrediction.EotBackendR\abackend\"W\n" + + "\abackend\x18\x03 \x01(\x0e2'.livekit.agent.EotPrediction.EotBackendR\abackend\x127\n" + + "\x17backchannel_probability\x18\x04 \x01(\x02R\x16backchannelProbability\"W\n" + "\n" + "EotBackend\x12\x17\n" + "\x13EOT_BACKEND_UNKNOWN\x10\x00\x12\x1a\n" + diff --git a/livekit/agent/livekit_agent_session.pb.go b/livekit/agent/livekit_agent_session.pb.go index 608760a48..c53ef1fcb 100644 --- a/livekit/agent/livekit_agent_session.pb.go +++ b/livekit/agent/livekit_agent_session.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.36.11 -// protoc v7.35.0 +// protoc v7.35.1 // source: agent/livekit_agent_session.proto package agent diff --git a/livekit/cloud_replay.pb.go b/livekit/cloud_replay.pb.go index 8dc4bf335..d8c64fa71 100644 --- a/livekit/cloud_replay.pb.go +++ b/livekit/cloud_replay.pb.go @@ -15,7 +15,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.36.11 -// protoc v7.35.0 +// protoc v7.35.1 // source: cloud_replay.proto package livekit diff --git a/livekit/livekit_agent.pb.go b/livekit/livekit_agent.pb.go index 685005052..c6fe9084c 100644 --- a/livekit/livekit_agent.pb.go +++ b/livekit/livekit_agent.pb.go @@ -15,7 +15,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.36.11 -// protoc v7.35.0 +// protoc v7.35.1 // source: livekit_agent.proto package livekit diff --git a/livekit/livekit_agent_dispatch.pb.go b/livekit/livekit_agent_dispatch.pb.go index 52b4f2749..d8f23ad38 100644 --- a/livekit/livekit_agent_dispatch.pb.go +++ b/livekit/livekit_agent_dispatch.pb.go @@ -15,7 +15,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.36.11 -// protoc v7.35.0 +// protoc v7.35.1 // source: livekit_agent_dispatch.proto package livekit diff --git a/livekit/livekit_agent_simulation.pb.go b/livekit/livekit_agent_simulation.pb.go index 89711462f..43e84a0d5 100644 --- a/livekit/livekit_agent_simulation.pb.go +++ b/livekit/livekit_agent_simulation.pb.go @@ -15,7 +15,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.36.11 -// protoc v7.35.0 +// protoc v7.35.1 // source: livekit_agent_simulation.proto package livekit diff --git a/livekit/livekit_agent_worker.pb.go b/livekit/livekit_agent_worker.pb.go index 6efcc9652..223829a5a 100644 --- a/livekit/livekit_agent_worker.pb.go +++ b/livekit/livekit_agent_worker.pb.go @@ -15,7 +15,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.36.11 -// protoc v7.35.0 +// protoc v7.35.1 // source: livekit_agent_worker.proto package livekit diff --git a/livekit/livekit_analytics.pb.go b/livekit/livekit_analytics.pb.go index 563dec39c..01f9f675a 100644 --- a/livekit/livekit_analytics.pb.go +++ b/livekit/livekit_analytics.pb.go @@ -15,7 +15,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.36.11 -// protoc v7.35.0 +// protoc v7.35.1 // source: livekit_analytics.proto package livekit diff --git a/livekit/livekit_cloud_agent.pb.go b/livekit/livekit_cloud_agent.pb.go index 76f6347c7..9c89a22b7 100644 --- a/livekit/livekit_cloud_agent.pb.go +++ b/livekit/livekit_cloud_agent.pb.go @@ -15,7 +15,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.36.11 -// protoc v7.35.0 +// protoc v7.35.1 // source: livekit_cloud_agent.proto package livekit diff --git a/livekit/livekit_connector.pb.go b/livekit/livekit_connector.pb.go index 3b8ca2d32..2be9c64aa 100644 --- a/livekit/livekit_connector.pb.go +++ b/livekit/livekit_connector.pb.go @@ -15,7 +15,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.36.11 -// protoc v7.35.0 +// protoc v7.35.1 // source: livekit_connector.proto package livekit diff --git a/livekit/livekit_connector_twilio.pb.go b/livekit/livekit_connector_twilio.pb.go index b4ff856a3..733bcf059 100644 --- a/livekit/livekit_connector_twilio.pb.go +++ b/livekit/livekit_connector_twilio.pb.go @@ -15,7 +15,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.36.11 -// protoc v7.35.0 +// protoc v7.35.1 // source: livekit_connector_twilio.proto package livekit diff --git a/livekit/livekit_connector_whatsapp.pb.go b/livekit/livekit_connector_whatsapp.pb.go index 2cac8f00b..ddddfbe73 100644 --- a/livekit/livekit_connector_whatsapp.pb.go +++ b/livekit/livekit_connector_whatsapp.pb.go @@ -15,7 +15,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.36.11 -// protoc v7.35.0 +// protoc v7.35.1 // source: livekit_connector_whatsapp.proto package livekit diff --git a/livekit/livekit_egress.pb.go b/livekit/livekit_egress.pb.go index 396a49adf..17413136c 100644 --- a/livekit/livekit_egress.pb.go +++ b/livekit/livekit_egress.pb.go @@ -15,7 +15,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.36.11 -// protoc v7.35.0 +// protoc v7.35.1 // source: livekit_egress.proto package livekit diff --git a/livekit/livekit_ingress.pb.go b/livekit/livekit_ingress.pb.go index 76fdd62c6..667b15c06 100644 --- a/livekit/livekit_ingress.pb.go +++ b/livekit/livekit_ingress.pb.go @@ -15,7 +15,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.36.11 -// protoc v7.35.0 +// protoc v7.35.1 // source: livekit_ingress.proto package livekit diff --git a/livekit/livekit_internal.pb.go b/livekit/livekit_internal.pb.go index 566ae4e20..810d09f61 100644 --- a/livekit/livekit_internal.pb.go +++ b/livekit/livekit_internal.pb.go @@ -15,7 +15,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.36.11 -// protoc v7.35.0 +// protoc v7.35.1 // source: livekit_internal.proto package livekit diff --git a/livekit/livekit_metrics.pb.go b/livekit/livekit_metrics.pb.go index ac7117787..5e596ff4b 100644 --- a/livekit/livekit_metrics.pb.go +++ b/livekit/livekit_metrics.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.36.11 -// protoc v7.35.0 +// protoc v7.35.1 // source: livekit_metrics.proto package livekit diff --git a/livekit/livekit_models.pb.go b/livekit/livekit_models.pb.go index 4527fe611..700df06ca 100644 --- a/livekit/livekit_models.pb.go +++ b/livekit/livekit_models.pb.go @@ -15,7 +15,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.36.11 -// protoc v7.35.0 +// protoc v7.35.1 // source: livekit_models.proto package livekit diff --git a/livekit/livekit_phone_number.pb.go b/livekit/livekit_phone_number.pb.go index 3f0eecc48..ab7d99ffd 100644 --- a/livekit/livekit_phone_number.pb.go +++ b/livekit/livekit_phone_number.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.36.11 -// protoc v7.35.0 +// protoc v7.35.1 // source: livekit_phone_number.proto package livekit diff --git a/livekit/livekit_room.pb.go b/livekit/livekit_room.pb.go index 43d9ebb4d..ed6d6a08e 100644 --- a/livekit/livekit_room.pb.go +++ b/livekit/livekit_room.pb.go @@ -15,7 +15,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.36.11 -// protoc v7.35.0 +// protoc v7.35.1 // source: livekit_room.proto package livekit diff --git a/livekit/livekit_rtc.pb.go b/livekit/livekit_rtc.pb.go index 153ac57ee..8db88cc9c 100644 --- a/livekit/livekit_rtc.pb.go +++ b/livekit/livekit_rtc.pb.go @@ -15,7 +15,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.36.11 -// protoc v7.35.0 +// protoc v7.35.1 // source: livekit_rtc.proto package livekit diff --git a/livekit/livekit_sip.pb.go b/livekit/livekit_sip.pb.go index 666150f12..0e71bc095 100644 --- a/livekit/livekit_sip.pb.go +++ b/livekit/livekit_sip.pb.go @@ -15,7 +15,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.36.11 -// protoc v7.35.0 +// protoc v7.35.1 // source: livekit_sip.proto package livekit diff --git a/livekit/livekit_token_source.pb.go b/livekit/livekit_token_source.pb.go index 7328a928d..c2e782841 100644 --- a/livekit/livekit_token_source.pb.go +++ b/livekit/livekit_token_source.pb.go @@ -15,7 +15,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.36.11 -// protoc v7.35.0 +// protoc v7.35.1 // source: livekit_token_source.proto package livekit diff --git a/livekit/livekit_webhook.pb.go b/livekit/livekit_webhook.pb.go index bbc3f5a96..79631ce8b 100644 --- a/livekit/livekit_webhook.pb.go +++ b/livekit/livekit_webhook.pb.go @@ -15,7 +15,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.36.11 -// protoc v7.35.0 +// protoc v7.35.1 // source: livekit_webhook.proto package livekit diff --git a/livekit/logger/options.pb.go b/livekit/logger/options.pb.go index 22cd3dfdf..b84bfab65 100644 --- a/livekit/logger/options.pb.go +++ b/livekit/logger/options.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.36.11 -// protoc v7.35.0 +// protoc v7.35.1 // source: logger/options.proto package logger diff --git a/rpc/agent.pb.go b/rpc/agent.pb.go index f2fffb134..98a49ca06 100644 --- a/rpc/agent.pb.go +++ b/rpc/agent.pb.go @@ -15,7 +15,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.36.11 -// protoc v7.35.0 +// protoc v7.35.1 // source: rpc/agent.proto package rpc diff --git a/rpc/agent_dispatch.pb.go b/rpc/agent_dispatch.pb.go index 0cf662479..3825da610 100644 --- a/rpc/agent_dispatch.pb.go +++ b/rpc/agent_dispatch.pb.go @@ -15,7 +15,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.36.11 -// protoc v7.35.0 +// protoc v7.35.1 // source: rpc/agent_dispatch.proto package rpc diff --git a/rpc/analytics.pb.go b/rpc/analytics.pb.go index 2ac13c6f2..d1c072f2c 100644 --- a/rpc/analytics.pb.go +++ b/rpc/analytics.pb.go @@ -15,7 +15,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.36.11 -// protoc v7.35.0 +// protoc v7.35.1 // source: rpc/analytics.proto package rpc diff --git a/rpc/analytics_grpc.pb.go b/rpc/analytics_grpc.pb.go index 8e7193cdd..32f344edf 100644 --- a/rpc/analytics_grpc.pb.go +++ b/rpc/analytics_grpc.pb.go @@ -15,7 +15,7 @@ // Code generated by protoc-gen-go-grpc. DO NOT EDIT. // versions: // - protoc-gen-go-grpc v1.6.2 -// - protoc v7.35.0 +// - protoc v7.35.1 // source: rpc/analytics.proto package rpc diff --git a/rpc/egress.pb.go b/rpc/egress.pb.go index f35428474..ac36d2500 100644 --- a/rpc/egress.pb.go +++ b/rpc/egress.pb.go @@ -15,7 +15,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.36.11 -// protoc v7.35.0 +// protoc v7.35.1 // source: rpc/egress.proto package rpc diff --git a/rpc/ingress.pb.go b/rpc/ingress.pb.go index 449b106d0..d6402467a 100644 --- a/rpc/ingress.pb.go +++ b/rpc/ingress.pb.go @@ -15,7 +15,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.36.11 -// protoc v7.35.0 +// protoc v7.35.1 // source: rpc/ingress.proto package rpc diff --git a/rpc/io.pb.go b/rpc/io.pb.go index 5f486badc..863b70df6 100644 --- a/rpc/io.pb.go +++ b/rpc/io.pb.go @@ -15,7 +15,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.36.11 -// protoc v7.35.0 +// protoc v7.35.1 // source: rpc/io.proto package rpc diff --git a/rpc/keepalive.pb.go b/rpc/keepalive.pb.go index 52b888b2e..e31ee779f 100644 --- a/rpc/keepalive.pb.go +++ b/rpc/keepalive.pb.go @@ -15,7 +15,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.36.11 -// protoc v7.35.0 +// protoc v7.35.1 // source: rpc/keepalive.proto package rpc diff --git a/rpc/participant.pb.go b/rpc/participant.pb.go index 9ca8dfffa..d7fe40fd4 100644 --- a/rpc/participant.pb.go +++ b/rpc/participant.pb.go @@ -15,7 +15,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.36.11 -// protoc v7.35.0 +// protoc v7.35.1 // source: rpc/participant.proto package rpc diff --git a/rpc/room.pb.go b/rpc/room.pb.go index 55edf3803..97c630aa0 100644 --- a/rpc/room.pb.go +++ b/rpc/room.pb.go @@ -15,7 +15,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.36.11 -// protoc v7.35.0 +// protoc v7.35.1 // source: rpc/room.proto package rpc diff --git a/rpc/roommanager.pb.go b/rpc/roommanager.pb.go index 1e7bb2729..84e5f200e 100644 --- a/rpc/roommanager.pb.go +++ b/rpc/roommanager.pb.go @@ -15,7 +15,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.36.11 -// protoc v7.35.0 +// protoc v7.35.1 // source: rpc/roommanager.proto package rpc diff --git a/rpc/signal.pb.go b/rpc/signal.pb.go index 02f36ad6f..f9efdd445 100644 --- a/rpc/signal.pb.go +++ b/rpc/signal.pb.go @@ -15,7 +15,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.36.11 -// protoc v7.35.0 +// protoc v7.35.1 // source: rpc/signal.proto package rpc diff --git a/rpc/sip.pb.go b/rpc/sip.pb.go index 467512961..adfdf6663 100644 --- a/rpc/sip.pb.go +++ b/rpc/sip.pb.go @@ -15,7 +15,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.36.11 -// protoc v7.35.0 +// protoc v7.35.1 // source: rpc/sip.proto package rpc diff --git a/rpc/whip_signal.pb.go b/rpc/whip_signal.pb.go index 394dad110..6229f3b1b 100644 --- a/rpc/whip_signal.pb.go +++ b/rpc/whip_signal.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.36.11 -// protoc v7.35.0 +// protoc v7.35.1 // source: rpc/whip_signal.proto package rpc From 4ae60d765be592d7cb82927df85637b6691d7aed Mon Sep 17 00:00:00 2001 From: Chenghao Mou Date: Sat, 13 Jun 2026 16:14:41 +0100 Subject: [PATCH 3/7] Update backchannel probability description in changeset --- .changeset/upset-bottles-crash.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/upset-bottles-crash.md diff --git a/.changeset/upset-bottles-crash.md b/.changeset/upset-bottles-crash.md new file mode 100644 index 000000000..742a9337d --- /dev/null +++ b/.changeset/upset-bottles-crash.md @@ -0,0 +1,5 @@ +--- +"@livekit/protocol": patch +--- + +add backchannel probability to the eot prediction From bcc6e418e8e1428d2f104b05569a44d51efae971 Mon Sep 17 00:00:00 2001 From: Chenghao Mou Date: Sat, 13 Jun 2026 16:25:40 +0100 Subject: [PATCH 4/7] add default backchannel threshold in session created response --- protobufs/agent/livekit_agent_inference.proto | 1 + 1 file changed, 1 insertion(+) diff --git a/protobufs/agent/livekit_agent_inference.proto b/protobufs/agent/livekit_agent_inference.proto index 8b1869301..85171cf92 100644 --- a/protobufs/agent/livekit_agent_inference.proto +++ b/protobufs/agent/livekit_agent_inference.proto @@ -184,6 +184,7 @@ message SessionCreated { map default_thresholds = 1; // Catch-all default applied to languages not present in default_thresholds. float default_threshold = 2; + float default_backchannel_threshold = 3; } message InferenceStarted {} From 3df97b13cbd0627803bb2f82a2356e3abe7bc828 Mon Sep 17 00:00:00 2001 From: github-actions <41898282+github-actions[bot]@users.noreply.github.com> Date: Sat, 13 Jun 2026 15:26:54 +0000 Subject: [PATCH 5/7] generated protobuf --- livekit/agent/livekit_agent_inference.pb.go | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/livekit/agent/livekit_agent_inference.pb.go b/livekit/agent/livekit_agent_inference.pb.go index 4ee7a3dc3..f725ef0e1 100644 --- a/livekit/agent/livekit_agent_inference.pb.go +++ b/livekit/agent/livekit_agent_inference.pb.go @@ -1492,9 +1492,10 @@ type SessionCreated struct { // barge-in sessions. DefaultThresholds map[string]float32 `protobuf:"bytes,1,rep,name=default_thresholds,json=defaultThresholds,proto3" json:"default_thresholds,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"fixed32,2,opt,name=value"` // Catch-all default applied to languages not present in default_thresholds. - DefaultThreshold float32 `protobuf:"fixed32,2,opt,name=default_threshold,json=defaultThreshold,proto3" json:"default_threshold,omitempty"` - unknownFields protoimpl.UnknownFields - sizeCache protoimpl.SizeCache + DefaultThreshold float32 `protobuf:"fixed32,2,opt,name=default_threshold,json=defaultThreshold,proto3" json:"default_threshold,omitempty"` + DefaultBackchannelThreshold float32 `protobuf:"fixed32,3,opt,name=default_backchannel_threshold,json=defaultBackchannelThreshold,proto3" json:"default_backchannel_threshold,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *SessionCreated) Reset() { @@ -1541,6 +1542,13 @@ func (x *SessionCreated) GetDefaultThreshold() float32 { return 0 } +func (x *SessionCreated) GetDefaultBackchannelThreshold() float32 { + if x != nil { + return x.DefaultBackchannelThreshold + } + return 0 +} + type InferenceStarted struct { state protoimpl.MessageState `protogen:"open.v1"` unknownFields protoimpl.UnknownFields @@ -2062,10 +2070,11 @@ const file_agent_livekit_agent_inference_proto_rawDesc = "" + "\x16eot_inference_response\x18\x01 \x01(\v2#.livekit.agent.EotInferenceResponseH\x00R\x14eotInferenceResponse\x12v\n" + "\x1finterruption_inference_response\x18\x02 \x01(\v2,.livekit.agent.InterruptionInferenceResponseH\x00R\x1dinterruptionInferenceResponseB\n" + "\n" + - "\bresponse\"\xe8\x01\n" + + "\bresponse\"\xac\x02\n" + "\x0eSessionCreated\x12c\n" + "\x12default_thresholds\x18\x01 \x03(\v24.livekit.agent.SessionCreated.DefaultThresholdsEntryR\x11defaultThresholds\x12+\n" + - "\x11default_threshold\x18\x02 \x01(\x02R\x10defaultThreshold\x1aD\n" + + "\x11default_threshold\x18\x02 \x01(\x02R\x10defaultThreshold\x12B\n" + + "\x1ddefault_backchannel_threshold\x18\x03 \x01(\x02R\x1bdefaultBackchannelThreshold\x1aD\n" + "\x16DefaultThresholdsEntry\x12\x10\n" + "\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" + "\x05value\x18\x02 \x01(\x02R\x05value:\x028\x01\"\x12\n" + From da148529ee6e7839045bfdd185494fad1154d23f Mon Sep 17 00:00:00 2001 From: Chenghao Mou Date: Sat, 13 Jun 2026 16:28:46 +0100 Subject: [PATCH 6/7] add language specific defaults --- protobufs/agent/livekit_agent_inference.proto | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/protobufs/agent/livekit_agent_inference.proto b/protobufs/agent/livekit_agent_inference.proto index 85171cf92..938f440a8 100644 --- a/protobufs/agent/livekit_agent_inference.proto +++ b/protobufs/agent/livekit_agent_inference.proto @@ -184,7 +184,9 @@ message SessionCreated { map default_thresholds = 1; // Catch-all default applied to languages not present in default_thresholds. float default_threshold = 2; - float default_backchannel_threshold = 3; + // same structure, but for backchannel + map default_backchannel_thresholds = 3; + float default_backchannel_threshold = 4; } message InferenceStarted {} From aa9ee7087d3210542a3b69e0b25f6feba88264af Mon Sep 17 00:00:00 2001 From: github-actions <41898282+github-actions[bot]@users.noreply.github.com> Date: Sat, 13 Jun 2026 15:29:51 +0000 Subject: [PATCH 7/7] generated protobuf --- livekit/agent/livekit_agent_inference.pb.go | 99 ++++++++++++--------- 1 file changed, 57 insertions(+), 42 deletions(-) diff --git a/livekit/agent/livekit_agent_inference.pb.go b/livekit/agent/livekit_agent_inference.pb.go index f725ef0e1..24154c774 100644 --- a/livekit/agent/livekit_agent_inference.pb.go +++ b/livekit/agent/livekit_agent_inference.pb.go @@ -1492,10 +1492,12 @@ type SessionCreated struct { // barge-in sessions. DefaultThresholds map[string]float32 `protobuf:"bytes,1,rep,name=default_thresholds,json=defaultThresholds,proto3" json:"default_thresholds,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"fixed32,2,opt,name=value"` // Catch-all default applied to languages not present in default_thresholds. - DefaultThreshold float32 `protobuf:"fixed32,2,opt,name=default_threshold,json=defaultThreshold,proto3" json:"default_threshold,omitempty"` - DefaultBackchannelThreshold float32 `protobuf:"fixed32,3,opt,name=default_backchannel_threshold,json=defaultBackchannelThreshold,proto3" json:"default_backchannel_threshold,omitempty"` - unknownFields protoimpl.UnknownFields - sizeCache protoimpl.SizeCache + DefaultThreshold float32 `protobuf:"fixed32,2,opt,name=default_threshold,json=defaultThreshold,proto3" json:"default_threshold,omitempty"` + // same structure, but for backchannel + DefaultBackchannelThresholds map[string]float32 `protobuf:"bytes,3,rep,name=default_backchannel_thresholds,json=defaultBackchannelThresholds,proto3" json:"default_backchannel_thresholds,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"fixed32,2,opt,name=value"` + DefaultBackchannelThreshold float32 `protobuf:"fixed32,4,opt,name=default_backchannel_threshold,json=defaultBackchannelThreshold,proto3" json:"default_backchannel_threshold,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *SessionCreated) Reset() { @@ -1542,6 +1544,13 @@ func (x *SessionCreated) GetDefaultThreshold() float32 { return 0 } +func (x *SessionCreated) GetDefaultBackchannelThresholds() map[string]float32 { + if x != nil { + return x.DefaultBackchannelThresholds + } + return nil +} + func (x *SessionCreated) GetDefaultBackchannelThreshold() float32 { if x != nil { return x.DefaultBackchannelThreshold @@ -2070,13 +2079,17 @@ const file_agent_livekit_agent_inference_proto_rawDesc = "" + "\x16eot_inference_response\x18\x01 \x01(\v2#.livekit.agent.EotInferenceResponseH\x00R\x14eotInferenceResponse\x12v\n" + "\x1finterruption_inference_response\x18\x02 \x01(\v2,.livekit.agent.InterruptionInferenceResponseH\x00R\x1dinterruptionInferenceResponseB\n" + "\n" + - "\bresponse\"\xac\x02\n" + + "\bresponse\"\x85\x04\n" + "\x0eSessionCreated\x12c\n" + "\x12default_thresholds\x18\x01 \x03(\v24.livekit.agent.SessionCreated.DefaultThresholdsEntryR\x11defaultThresholds\x12+\n" + - "\x11default_threshold\x18\x02 \x01(\x02R\x10defaultThreshold\x12B\n" + - "\x1ddefault_backchannel_threshold\x18\x03 \x01(\x02R\x1bdefaultBackchannelThreshold\x1aD\n" + + "\x11default_threshold\x18\x02 \x01(\x02R\x10defaultThreshold\x12\x85\x01\n" + + "\x1edefault_backchannel_thresholds\x18\x03 \x03(\v2?.livekit.agent.SessionCreated.DefaultBackchannelThresholdsEntryR\x1cdefaultBackchannelThresholds\x12B\n" + + "\x1ddefault_backchannel_threshold\x18\x04 \x01(\x02R\x1bdefaultBackchannelThreshold\x1aD\n" + "\x16DefaultThresholdsEntry\x12\x10\n" + "\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" + + "\x05value\x18\x02 \x01(\x02R\x05value:\x028\x01\x1aO\n" + + "!DefaultBackchannelThresholdsEntry\x12\x10\n" + + "\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" + "\x05value\x18\x02 \x01(\x02R\x05value:\x028\x01\"\x12\n" + "\x10InferenceStarted\"\x12\n" + "\x10InferenceStopped\"\x0f\n" + @@ -2128,7 +2141,7 @@ func file_agent_livekit_agent_inference_proto_rawDescGZIP() []byte { } var file_agent_livekit_agent_inference_proto_enumTypes = make([]protoimpl.EnumInfo, 2) -var file_agent_livekit_agent_inference_proto_msgTypes = make([]protoimpl.MessageInfo, 29) +var file_agent_livekit_agent_inference_proto_msgTypes = make([]protoimpl.MessageInfo, 30) var file_agent_livekit_agent_inference_proto_goTypes = []any{ (AudioEncoding)(0), // 0: livekit.agent.AudioEncoding (EotPrediction_EotBackend)(0), // 1: livekit.agent.EotPrediction.EotBackend @@ -2161,22 +2174,23 @@ var file_agent_livekit_agent_inference_proto_goTypes = []any{ (*InterruptionPrediction)(nil), // 28: livekit.agent.InterruptionPrediction (*ServerMessage)(nil), // 29: livekit.agent.ServerMessage nil, // 30: livekit.agent.SessionCreated.DefaultThresholdsEntry - (*durationpb.Duration)(nil), // 31: google.protobuf.Duration - (*timestamppb.Timestamp)(nil), // 32: google.protobuf.Timestamp - (*ChatMessage)(nil), // 33: livekit.agent.ChatMessage + nil, // 31: livekit.agent.SessionCreated.DefaultBackchannelThresholdsEntry + (*durationpb.Duration)(nil), // 32: google.protobuf.Duration + (*timestamppb.Timestamp)(nil), // 33: google.protobuf.Timestamp + (*ChatMessage)(nil), // 34: livekit.agent.ChatMessage } var file_agent_livekit_agent_inference_proto_depIdxs = []int32{ 0, // 0: livekit.agent.SessionSettings.encoding:type_name -> livekit.agent.AudioEncoding 4, // 1: livekit.agent.SessionSettings.eot_settings:type_name -> livekit.agent.EotSettings 5, // 2: livekit.agent.SessionSettings.interruption_settings:type_name -> livekit.agent.InterruptionSettings - 31, // 3: livekit.agent.EotSettings.detection_interval:type_name -> google.protobuf.Duration - 31, // 4: livekit.agent.InterruptionSettings.max_audio_duration:type_name -> google.protobuf.Duration - 31, // 5: livekit.agent.InterruptionSettings.audio_prefix_duration:type_name -> google.protobuf.Duration - 31, // 6: livekit.agent.InterruptionSettings.detection_interval:type_name -> google.protobuf.Duration + 32, // 3: livekit.agent.EotSettings.detection_interval:type_name -> google.protobuf.Duration + 32, // 4: livekit.agent.InterruptionSettings.max_audio_duration:type_name -> google.protobuf.Duration + 32, // 5: livekit.agent.InterruptionSettings.audio_prefix_duration:type_name -> google.protobuf.Duration + 32, // 6: livekit.agent.InterruptionSettings.detection_interval:type_name -> google.protobuf.Duration 2, // 7: livekit.agent.SessionCreate.settings:type_name -> livekit.agent.SessionSettings - 32, // 8: livekit.agent.InputAudio.created_at:type_name -> google.protobuf.Timestamp - 33, // 9: livekit.agent.EotInputChatContext.messages:type_name -> livekit.agent.ChatMessage - 32, // 10: livekit.agent.ClientMessage.created_at:type_name -> google.protobuf.Timestamp + 33, // 8: livekit.agent.InputAudio.created_at:type_name -> google.protobuf.Timestamp + 34, // 9: livekit.agent.EotInputChatContext.messages:type_name -> livekit.agent.ChatMessage + 33, // 10: livekit.agent.ClientMessage.created_at:type_name -> google.protobuf.Timestamp 6, // 11: livekit.agent.ClientMessage.session_create:type_name -> livekit.agent.SessionCreate 7, // 12: livekit.agent.ClientMessage.input_audio:type_name -> livekit.agent.InputAudio 9, // 13: livekit.agent.ClientMessage.session_flush:type_name -> livekit.agent.SessionFlush @@ -2190,34 +2204,35 @@ var file_agent_livekit_agent_inference_proto_depIdxs = []int32{ 0, // 21: livekit.agent.InterruptionInferenceRequest.encoding:type_name -> livekit.agent.AudioEncoding 16, // 22: livekit.agent.InferenceRequest.eot_inference_request:type_name -> livekit.agent.EotInferenceRequest 17, // 23: livekit.agent.InferenceRequest.interruption_inference_request:type_name -> livekit.agent.InterruptionInferenceRequest - 32, // 24: livekit.agent.InferenceStats.earliest_client_created_at:type_name -> google.protobuf.Timestamp - 32, // 25: livekit.agent.InferenceStats.latest_client_created_at:type_name -> google.protobuf.Timestamp - 31, // 26: livekit.agent.InferenceStats.client_e2e_latency:type_name -> google.protobuf.Duration - 31, // 27: livekit.agent.InferenceStats.server_e2e_latency:type_name -> google.protobuf.Duration - 31, // 28: livekit.agent.InferenceStats.preprocessing_duration:type_name -> google.protobuf.Duration - 31, // 29: livekit.agent.InferenceStats.inference_duration:type_name -> google.protobuf.Duration + 33, // 24: livekit.agent.InferenceStats.earliest_client_created_at:type_name -> google.protobuf.Timestamp + 33, // 25: livekit.agent.InferenceStats.latest_client_created_at:type_name -> google.protobuf.Timestamp + 32, // 26: livekit.agent.InferenceStats.client_e2e_latency:type_name -> google.protobuf.Duration + 32, // 27: livekit.agent.InferenceStats.server_e2e_latency:type_name -> google.protobuf.Duration + 32, // 28: livekit.agent.InferenceStats.preprocessing_duration:type_name -> google.protobuf.Duration + 32, // 29: livekit.agent.InferenceStats.inference_duration:type_name -> google.protobuf.Duration 19, // 30: livekit.agent.EotInferenceResponse.stats:type_name -> livekit.agent.InferenceStats 19, // 31: livekit.agent.InterruptionInferenceResponse.stats:type_name -> livekit.agent.InferenceStats 20, // 32: livekit.agent.InferenceResponse.eot_inference_response:type_name -> livekit.agent.EotInferenceResponse 21, // 33: livekit.agent.InferenceResponse.interruption_inference_response:type_name -> livekit.agent.InterruptionInferenceResponse 30, // 34: livekit.agent.SessionCreated.default_thresholds:type_name -> livekit.agent.SessionCreated.DefaultThresholdsEntry - 19, // 35: livekit.agent.EotPrediction.inference_stats:type_name -> livekit.agent.InferenceStats - 1, // 36: livekit.agent.EotPrediction.backend:type_name -> livekit.agent.EotPrediction.EotBackend - 19, // 37: livekit.agent.InterruptionPrediction.inference_stats:type_name -> livekit.agent.InferenceStats - 32, // 38: livekit.agent.ServerMessage.server_created_at:type_name -> google.protobuf.Timestamp - 32, // 39: livekit.agent.ServerMessage.client_created_at:type_name -> google.protobuf.Timestamp - 23, // 40: livekit.agent.ServerMessage.session_created:type_name -> livekit.agent.SessionCreated - 24, // 41: livekit.agent.ServerMessage.inference_started:type_name -> livekit.agent.InferenceStarted - 25, // 42: livekit.agent.ServerMessage.inference_stopped:type_name -> livekit.agent.InferenceStopped - 26, // 43: livekit.agent.ServerMessage.session_closed:type_name -> livekit.agent.SessionClosed - 3, // 44: livekit.agent.ServerMessage.error:type_name -> livekit.agent.InferenceError - 27, // 45: livekit.agent.ServerMessage.eot_prediction:type_name -> livekit.agent.EotPrediction - 28, // 46: livekit.agent.ServerMessage.interruption_prediction:type_name -> livekit.agent.InterruptionPrediction - 47, // [47:47] is the sub-list for method output_type - 47, // [47:47] is the sub-list for method input_type - 47, // [47:47] is the sub-list for extension type_name - 47, // [47:47] is the sub-list for extension extendee - 0, // [0:47] is the sub-list for field type_name + 31, // 35: livekit.agent.SessionCreated.default_backchannel_thresholds:type_name -> livekit.agent.SessionCreated.DefaultBackchannelThresholdsEntry + 19, // 36: livekit.agent.EotPrediction.inference_stats:type_name -> livekit.agent.InferenceStats + 1, // 37: livekit.agent.EotPrediction.backend:type_name -> livekit.agent.EotPrediction.EotBackend + 19, // 38: livekit.agent.InterruptionPrediction.inference_stats:type_name -> livekit.agent.InferenceStats + 33, // 39: livekit.agent.ServerMessage.server_created_at:type_name -> google.protobuf.Timestamp + 33, // 40: livekit.agent.ServerMessage.client_created_at:type_name -> google.protobuf.Timestamp + 23, // 41: livekit.agent.ServerMessage.session_created:type_name -> livekit.agent.SessionCreated + 24, // 42: livekit.agent.ServerMessage.inference_started:type_name -> livekit.agent.InferenceStarted + 25, // 43: livekit.agent.ServerMessage.inference_stopped:type_name -> livekit.agent.InferenceStopped + 26, // 44: livekit.agent.ServerMessage.session_closed:type_name -> livekit.agent.SessionClosed + 3, // 45: livekit.agent.ServerMessage.error:type_name -> livekit.agent.InferenceError + 27, // 46: livekit.agent.ServerMessage.eot_prediction:type_name -> livekit.agent.EotPrediction + 28, // 47: livekit.agent.ServerMessage.interruption_prediction:type_name -> livekit.agent.InterruptionPrediction + 48, // [48:48] is the sub-list for method output_type + 48, // [48:48] is the sub-list for method input_type + 48, // [48:48] is the sub-list for extension type_name + 48, // [48:48] is the sub-list for extension extendee + 0, // [0:48] is the sub-list for field type_name } func init() { file_agent_livekit_agent_inference_proto_init() } @@ -2265,7 +2280,7 @@ func file_agent_livekit_agent_inference_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: unsafe.Slice(unsafe.StringData(file_agent_livekit_agent_inference_proto_rawDesc), len(file_agent_livekit_agent_inference_proto_rawDesc)), NumEnums: 2, - NumMessages: 29, + NumMessages: 30, NumExtensions: 0, NumServices: 0, },