Skip to content

Commit af822cd

Browse files
authored
adds mute agent state manager (vocodedev#305)
1 parent 9be0ce9 commit af822cd

File tree

2 files changed

+13
-3
lines changed

2 files changed

+13
-3
lines changed

vocode/streaming/agent/base_agent.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -151,6 +151,7 @@ def __init__(
151151
self.transcript: Optional[Transcript] = None
152152

153153
self.functions = self.get_functions() if self.agent_config.actions else None
154+
self.is_muted = False
154155

155156
def get_functions(self):
156157
raise NotImplementedError
@@ -249,6 +250,9 @@ async def handle_respond(
249250
return False
250251

251252
async def process(self, item: InterruptibleEvent[AgentInput]):
253+
if self.is_muted:
254+
self.logger.debug("Agent is muted, skipping processing")
255+
return
252256
assert self.transcript is not None
253257
try:
254258
agent_input = item.payload

vocode/streaming/utils/state_manager.py

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,13 +21,19 @@ def set_transcriber_endpointing_config(self, endpointing_config: EndpointingConf
2121
self._conversation.transcriber.get_transcriber_config().endpointing_config = (
2222
endpointing_config
2323
)
24-
24+
2525
def disable_synthesis(self):
2626
self._conversation.synthesis_enabled = False
27-
27+
2828
def enable_synthesis(self):
2929
self._conversation.synthesis_enabled = True
30-
30+
31+
def mute_agent(self):
32+
self._conversation.agent.is_muted = True
33+
34+
def unmute_agent(self):
35+
self._conversation.agent.is_muted = False
36+
3137
async def terminate_conversation(self):
3238
await self._conversation.terminate()
3339

0 commit comments

Comments
 (0)