Skip to content

build_jsonrpc_asgi

autogen.beta.a2a.transports.jsonrpc.build_jsonrpc_asgi #

build_jsonrpc_asgi(*, agent_executor, agent_card, extended_agent_card=None, card_modifier=None, extended_card_modifier=None, task_store=None, push_config_store=None, push_sender=None, rpc_url='/', card_url=DEFAULT_AGENT_CARD_PATH, legacy_card_url=LEGACY_AGENT_CARD_PATH)

Starlette ASGI app exposing JSON-RPC dispatch + agent-card discovery.

Source code in autogen/beta/a2a/transports/jsonrpc.py
def build_jsonrpc_asgi(
    *,
    agent_executor: AgentExecutor,
    agent_card: AgentCard,
    extended_agent_card: AgentCard | None = None,
    card_modifier: CardModifier | None = None,
    extended_card_modifier: ExtendedCardModifier | None = None,
    task_store: TaskStore | None = None,
    push_config_store: PushNotificationConfigStore | None = None,
    push_sender: PushNotificationSender | None = None,
    rpc_url: str = "/",
    card_url: str = DEFAULT_AGENT_CARD_PATH,
    legacy_card_url: str | None = LEGACY_AGENT_CARD_PATH,
) -> Starlette:
    """Starlette ASGI app exposing JSON-RPC dispatch + agent-card discovery."""
    agent_card = clone_card_with_capabilities(
        agent_card,
        extended=extended_agent_card is not None,
        push=push_config_store is not None,
    )
    handler = build_default_handler(
        agent_executor=agent_executor,
        agent_card=agent_card,
        extended_agent_card=extended_agent_card,
        extended_card_modifier=extended_card_modifier,
        task_store=task_store,
        push_config_store=push_config_store,
        push_sender=push_sender,
    )
    routes: list[BaseRoute] = list(create_jsonrpc_routes(handler, rpc_url=rpc_url))
    routes.extend(
        build_card_routes_with_legacy(
            agent_card,
            card_modifier=card_modifier,
            card_url=card_url,
            legacy_card_url=legacy_card_url,
        ),
    )
    return Starlette(routes=routes)