diff --git a/python/configs/agent_cards/grid_agent.json b/python/configs/agent_cards/grid_agent.json index df255ab93..89e531ec9 100644 --- a/python/configs/agent_cards/grid_agent.json +++ b/python/configs/agent_cards/grid_agent.json @@ -10,6 +10,7 @@ "skills": [], "enabled": true, "metadata": { + "hidden": true, "planner_passthrough": true, "version": "0.1.0", "author": "ValueCell Team", diff --git a/python/configs/agent_cards/strategy_agent.json b/python/configs/agent_cards/prompt_strategy_agent.json similarity index 88% rename from python/configs/agent_cards/strategy_agent.json rename to python/configs/agent_cards/prompt_strategy_agent.json index bd6c970c2..90ca68331 100644 --- a/python/configs/agent_cards/strategy_agent.json +++ b/python/configs/agent_cards/prompt_strategy_agent.json @@ -1,6 +1,6 @@ { - "name": "StrategyAgent", - "display_name": "Strategy Agent", + "name": "PromptBasedStrategyAgent", + "display_name": "Prompt-based Strategy Agent", "url": "http://localhost:10006/", "description": "LLM-driven strategy composer that turns market features into normalized trade instructions. Includes a simple runtime for demo and testing.", "capabilities": { @@ -21,11 +21,12 @@ ], "enabled": true, "metadata": { + "hidden": true, "planner_passthrough": true, "version": "0.1.0", "author": "ValueCell Team", "tags": ["strategy", "trading", "llm", "demo"], "notes": "This card is a lightweight example; replace model api_key and tune parameters for production use.", - "local_agent_class": "valuecell.agents.prompt_strategy_agent.core:StrategyAgent" + "local_agent_class": "valuecell.agents.prompt_strategy_agent.core:PromptBasedStrategyAgent" } } diff --git a/python/valuecell/agents/prompt_strategy_agent/__main__.py b/python/valuecell/agents/prompt_strategy_agent/__main__.py index b39097bb9..c5ed75045 100644 --- a/python/valuecell/agents/prompt_strategy_agent/__main__.py +++ b/python/valuecell/agents/prompt_strategy_agent/__main__.py @@ -2,8 +2,8 @@ from valuecell.core.agent import create_wrapped_agent -from .core import StrategyAgent +from .core import PromptBasedStrategyAgent if __name__ == "__main__": - agent = create_wrapped_agent(StrategyAgent) + agent = create_wrapped_agent(PromptBasedStrategyAgent) asyncio.run(agent.serve()) diff --git a/python/valuecell/agents/prompt_strategy_agent/core.py b/python/valuecell/agents/prompt_strategy_agent/core.py index 6689aba00..e25c0fcfd 100644 --- a/python/valuecell/agents/prompt_strategy_agent/core.py +++ b/python/valuecell/agents/prompt_strategy_agent/core.py @@ -16,8 +16,7 @@ from valuecell.agents.common.trading.models import UserRequest -# TODO: Rename to PromptBasedStrategyAgent -class StrategyAgent(BaseStrategyAgent): +class PromptBasedStrategyAgent(BaseStrategyAgent): """Default strategy agent with standard feature computation and LLM composer. This implementation uses: diff --git a/python/valuecell/server/api/routers/strategy_agent.py b/python/valuecell/server/api/routers/strategy_agent.py index 27b2c5a4c..b6002e510 100644 --- a/python/valuecell/server/api/routers/strategy_agent.py +++ b/python/valuecell/server/api/routers/strategy_agent.py @@ -98,7 +98,7 @@ async def create_strategy_agent( query = user_request.model_dump_json() - agent_name = "StrategyAgent" + agent_name = "PromptBasedStrategyAgent" # Build UserInput for orchestrator user_input_meta = UserInputMetadata( diff --git a/python/valuecell/server/services/agent_service.py b/python/valuecell/server/services/agent_service.py index 0c3dd2fb3..b78ef3532 100644 --- a/python/valuecell/server/services/agent_service.py +++ b/python/valuecell/server/services/agent_service.py @@ -17,7 +17,10 @@ class AgentService: @staticmethod def get_all_agents( - db: Session, enabled_only: bool = False, name_filter: Optional[str] = None + db: Session, + enabled_only: bool = False, + name_filter: Optional[str] = None, + exclude_hidden: bool = True, ) -> AgentListData: """ Get all agents from database with optional filters. @@ -51,22 +54,29 @@ def get_all_agents( agents = query.order_by(Agent.created_at.desc()).all() # Convert to data models - agent_data_list = [ - AgentData( - id=agent.id, - agent_name=agent.name, - display_name=agent.display_name, - description=agent.description, - version=agent.version, - enabled=agent.enabled, - icon_url=agent.icon_url, - agent_metadata=agent.agent_metadata, - config=agent.config, - created_at=agent.created_at, - updated_at=agent.updated_at, + agent_data_list = [] + for _agent_entity in agents: + if ( + _agent_entity.agent_metadata + and exclude_hidden + and _agent_entity.agent_metadata.get("hidden", False) + ): + continue + + agent = AgentData( + id=_agent_entity.id, + agent_name=_agent_entity.name, + display_name=_agent_entity.display_name, + description=_agent_entity.description, + version=_agent_entity.version, + enabled=_agent_entity.enabled, + icon_url=_agent_entity.icon_url, + agent_metadata=_agent_entity.agent_metadata, + config=_agent_entity.config, + created_at=_agent_entity.created_at, + updated_at=_agent_entity.updated_at, ) - for agent in agents - ] + agent_data_list.append(agent) # Calculate statistics total_count = len(agent_data_list)