first commit
This commit is contained in:
@@ -0,0 +1,65 @@
|
||||
"""
|
||||
Agent-related router module.
|
||||
"""
|
||||
|
||||
import time
|
||||
from typing import Dict, Any
|
||||
from fastapi import APIRouter, Depends
|
||||
|
||||
from ..models import ModelListResponse, ModelInfo
|
||||
from ..state import get_server_state, ServerState
|
||||
from agent import list_available_models
|
||||
|
||||
router = APIRouter(prefix="/v1", tags=["agents"])
|
||||
|
||||
|
||||
@router.get(
|
||||
"/agents",
|
||||
response_model=Dict[str, Any],
|
||||
dependencies=[Depends(get_server_state)],
|
||||
description="List all active Agent instances for debugging and monitoring",
|
||||
)
|
||||
async def list_agents(state: ServerState = Depends(get_server_state)):
|
||||
"""List all active Agent instances for debugging and monitoring."""
|
||||
if not state.agent_registry:
|
||||
return {"error": "Agent registry not initialized"}
|
||||
|
||||
agents_info = {}
|
||||
for model_name in state.agent_registry.list_agents():
|
||||
agent_info = state.agent_registry.get_agent_info(model_name)
|
||||
if agent_info:
|
||||
# Add instance ID for singleton verification.
|
||||
agent = state.agent_registry.get_agent(model_name)
|
||||
agent_info["instance_id"] = id(agent) if agent else None
|
||||
agents_info[model_name] = agent_info
|
||||
|
||||
return {
|
||||
"registry_stats": state.agent_registry.get_agent_stats(),
|
||||
"agents": agents_info,
|
||||
}
|
||||
|
||||
|
||||
@router.get(
|
||||
"/models",
|
||||
response_model=ModelListResponse,
|
||||
dependencies=[Depends(get_server_state)],
|
||||
description="List all available models for model selection",
|
||||
)
|
||||
async def list_models():
|
||||
"""List available models."""
|
||||
available_models = list_available_models()
|
||||
|
||||
models = []
|
||||
for model_name in available_models:
|
||||
model_info = ModelInfo(
|
||||
id=model_name,
|
||||
object="model",
|
||||
created=int(time.time()),
|
||||
owned_by="simpleagent",
|
||||
permission=None,
|
||||
root=None,
|
||||
parent=None,
|
||||
)
|
||||
models.append(model_info)
|
||||
|
||||
return ModelListResponse(object="list", data=models)
|
||||
Reference in New Issue
Block a user