diff --git a/src/agents/registry.py b/src/agents/registry.py index 1db2621d..0da6b8bb 100644 --- a/src/agents/registry.py +++ b/src/agents/registry.py @@ -60,6 +60,15 @@ class BaseAgent(): def __init__(self, **kwargs): self.check_requirements() + @classmethod + def get_info(cls): + return { + "name": cls.name, + "description": cls.description, + "config_schema": cls.config_schema.to_dict(), + "requirements": cls.requirements if hasattr(cls, "requirements") else [], + } + def check_requirements(self): if not hasattr(self, "requirements") or not self.requirements: return diff --git a/src/routers/chat_router.py b/src/routers/chat_router.py index 5c5d8360..e02d49b8 100644 --- a/src/routers/chat_router.py +++ b/src/routers/chat_router.py @@ -124,11 +124,7 @@ async def call(query: str = Body(...), meta: dict = Body(None)): @chat.get("/agent") async def get_agent(): - agents = [{ - "name": agent.name, - "description": agent.description, - "config_schema": agent.config_schema.to_dict() - } for agent in agent_manager.agents.values()] + agents = [agent.get_info() for agent in agent_manager.agents.values()] return {"agents": agents} @chat.post("/agent/{agent_name}") diff --git a/web/src/components/AgentChatComponent.vue b/web/src/components/AgentChatComponent.vue index b2ebee56..9a5c5e1a 100644 --- a/web/src/components/AgentChatComponent.vue +++ b/web/src/components/AgentChatComponent.vue @@ -3,6 +3,7 @@