17 lines
587 B
Python
17 lines
587 B
Python
from collections.abc import AsyncIterator
|
|||
|
|
|
||
|
|
from app.core.contracts import AgentRequest, RequestContext, RunProgressEvent
|
||
|
|
from app.service.agent.factory import AgentFactory
|
||
|
|
|
||
|
|
|
||
|
|
class AgentExecutor:
|
||
|
|
def __init__(self, factory: AgentFactory) -> None:
|
||
|
|
self.factory = factory
|
||
|
|
|
||
|
|
async def execute(
|
||
|
|
self, agent_type: str, request: AgentRequest, context: RequestContext, run_id: str
|
||
|
|
) -> AsyncIterator[RunProgressEvent]:
|
||
|
|
agent = self.factory.create(agent_type, context)
|
||
|
|
async for event in agent.execute(request, context, run_id):
|
||
|
|
yield event
|