Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 27 additions & 0 deletions veadk/cli/cli_web.py
Original file line number Diff line number Diff line change
Expand Up @@ -102,6 +102,32 @@ def _get_memory(
return short_term_memory, long_term_memory


def patch_adkwebserver_disable_openapi():
"""
Monkey patch AdkWebServer.get_fast_api to remove openapi.json route.
"""
import google.adk.cli.adk_web_server
from fastapi.routing import APIRoute
from starlette.routing import Route

original_get_fast_api = google.adk.cli.adk_web_server.AdkWebServer.get_fast_api_app

def wrapped_get_fast_api(self, *args, **kwargs):
app = original_get_fast_api(self, *args, **kwargs)

paths = ["/openapi.json", "/docs", "/redoc"]
new_routes = []
for route in app.router.routes:
if isinstance(route, (APIRoute, Route)) and route.path in paths:
continue
new_routes.append(route)
app.router.routes = new_routes

return app

google.adk.cli.adk_web_server.AdkWebServer.get_fast_api_app = wrapped_get_fast_api


@click.command()
@click.option("--host", default="127.0.0.1", help="Host to run the web server on")
def web(host: str) -> None:
Expand Down Expand Up @@ -145,6 +171,7 @@ def init_for_veadk(
import google.adk.cli.adk_web_server

google.adk.cli.adk_web_server.AdkWebServer.__init__ = init_for_veadk
patch_adkwebserver_disable_openapi()

import google.adk.cli.cli_tools_click as cli_tools_click

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,16 @@
from typing import Callable

from agent import agent_run_config

from fastapi import FastAPI
from fastapi.routing import APIRoute

from fastmcp import FastMCP

from starlette.routing import Route

from google.adk.a2a.utils.agent_card_builder import AgentCardBuilder

from veadk.a2a.ve_a2a_server import init_app
from veadk.runner import Runner
from veadk.tracing.telemetry.exporters.apmplus_exporter import APMPlusExporter
Expand Down Expand Up @@ -159,4 +166,14 @@ async def combined_lifespan(app: FastAPI):
# Mount MCP server at /mcp endpoint
app.mount("/mcp", mcp_app)


# remove openapi routes
paths = ["/openapi.json", "/docs", "/redoc"]
new_routes = []
for route in app.router.routes:
if isinstance(route, (APIRoute, Route)) and route.path in paths:
continue
new_routes.append(route)
app.router.routes = new_routes

# === Build mcp server end ===
7 changes: 5 additions & 2 deletions veadk/runner.py
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ def __init__(
self,
agent: VeAgent,
short_term_memory: ShortTermMemory,
plugins: list[BasePlugin] = [],
plugins: list[BasePlugin] | None = None,
app_name: str = "veadk_default_app",
user_id: str = "veadk_default_user",
):
Expand All @@ -77,7 +77,10 @@ def __init__(
try:
# try to detect tracer
_ = self.agent.tracers[0]
plugins.extend([UserMessagePlugin(name="user_message_plugin")])
if not plugins:
plugins = [UserMessagePlugin(name="user_message_plugin")]
else:
plugins.append(UserMessagePlugin(name="user_message_plugin"))
except Exception:
logger.debug("Agent has no tracers, telemetry plugin not added.")

Expand Down