@@ -119,91 +119,151 @@ def create_tables(self) -> bool:
119119 return False
120120
121121 def initialize_basic_data (self ) -> bool :
122- """Initialize agent data from configuration files ."""
122+ """Initialize default agent data."""
123123 try :
124- logger .info ("Initializing agent data..." )
124+ logger .info ("Initializing default agent data..." )
125125
126126 # Get a database session
127127 session = self .db_manager .get_session ()
128128
129129 try :
130130 # Import models here to avoid circular imports
131131 from .models .agent import Agent
132- import json
133- import os
134- from pathlib import Path
135132
136- # Get the project root directory
137- project_root = Path (__file__ ).parent .parent .parent .parent
138- agent_configs_dir = project_root / "configs" / "agent_cards"
139-
140- if not agent_configs_dir .exists ():
141- logger .warning (
142- f"Agent configs directory not found: { agent_configs_dir } "
133+ # Define default agents
134+ default_agents = [
135+ {
136+ "name" : "AIHedgeFundAgent" ,
137+ "display_name" : "AI Hedge Fund Agent" ,
138+ "description" : "AI-powered hedge fund analysis and trading agent" ,
139+ "version" : "1.0.0" ,
140+ "enabled" : True ,
141+ "is_active" : True ,
142+ "capabilities" : {
143+ "streaming" : False ,
144+ "push_notifications" : False ,
145+ },
146+ "metadata" : {
147+ "version" : "1.0.0" ,
148+ "author" : "ValueCell Team" ,
149+ "tags" : ["hedge-fund" , "ai" , "trading" ],
150+ },
151+ },
152+ {
153+ "name" : "Sec13FundAgent" ,
154+ "display_name" : "SEC 13F Fund Agent" ,
155+ "description" : "SEC 13F fund analysis and tracking agent" ,
156+ "version" : "1.0.0" ,
157+ "enabled" : True ,
158+ "is_active" : True ,
159+ "capabilities" : {
160+ "streaming" : False ,
161+ "push_notifications" : False ,
162+ },
163+ "metadata" : {
164+ "version" : "1.0.0" ,
165+ "author" : "ValueCell Team" ,
166+ "tags" : ["sec" , "13f" , "fund-analysis" ],
167+ },
168+ },
169+ {
170+ "name" : "TradingAgentsAdapter" ,
171+ "display_name" : "Trading Agents Adapter" ,
172+ "description" : "TradingAgents - Multi-agent trading analysis system with market, sentiment, news and fundamentals analysis" ,
173+ "version" : "1.0.0" ,
174+ "enabled" : True ,
175+ "is_active" : True ,
176+ "capabilities" : {
177+ "streaming" : True ,
178+ "push_notifications" : False ,
179+ },
180+ "metadata" : {
181+ "version" : "1.0.0" ,
182+ "author" : "ValueCell Team" ,
183+ "tags" : [
184+ "trading" ,
185+ "analysis" ,
186+ "multi-agent" ,
187+ "stocks" ,
188+ "finance" ,
189+ ],
190+ "supported_tickers" : [
191+ "AAPL" ,
192+ "GOOGL" ,
193+ "MSFT" ,
194+ "NVDA" ,
195+ "TSLA" ,
196+ "AMZN" ,
197+ "META" ,
198+ "NFLX" ,
199+ "SPY" ,
200+ ],
201+ "supported_analysts" : [
202+ "market" ,
203+ "social" ,
204+ "news" ,
205+ "fundamentals" ,
206+ ],
207+ "supported_llm_providers" : [
208+ "openai" ,
209+ "anthropic" ,
210+ "google" ,
211+ "ollama" ,
212+ "openrouter" ,
213+ ],
214+ },
215+ },
216+ ]
217+
218+ # Insert default agents
219+ for agent_data in default_agents :
220+ agent_name = agent_data ["name" ]
221+
222+ # Check if agent already exists
223+ existing_agent = (
224+ session .query (Agent ).filter_by (name = agent_name ).first ()
143225 )
144- return True
145-
146- # Load agent configurations from JSON files
147- for config_file in agent_configs_dir .glob ("*.json" ):
148- try :
149- with open (config_file , "r" , encoding = "utf-8" ) as f :
150- config_data = json .load (f )
151-
152- agent_name = config_data .get ("name" )
153- if not agent_name :
154- logger .warning (
155- f"Agent config missing 'name' field: { config_file } "
156- )
157- continue
158-
159- # Check if agent already exists
160- existing_agent = (
161- session .query (Agent ).filter_by (name = agent_name ).first ()
226+
227+ if not existing_agent :
228+ # Create new agent
229+ agent = Agent .from_config (agent_data )
230+ session .add (agent )
231+ logger .info (f"Added default agent: { agent_name } " )
232+ else :
233+ # Update existing agent with default data
234+ existing_agent .display_name = agent_data .get (
235+ "display_name" , existing_agent .display_name
236+ )
237+ existing_agent .description = agent_data .get (
238+ "description" , existing_agent .description
239+ )
240+ existing_agent .version = agent_data .get (
241+ "version" , existing_agent .version
242+ )
243+ existing_agent .enabled = agent_data .get (
244+ "enabled" , existing_agent .enabled
245+ )
246+ existing_agent .is_active = agent_data .get (
247+ "is_active" , existing_agent .is_active
248+ )
249+ existing_agent .capabilities = agent_data .get (
250+ "capabilities" , existing_agent .capabilities
251+ )
252+ existing_agent .agent_metadata = agent_data .get (
253+ "metadata" , existing_agent .agent_metadata
254+ )
255+ existing_agent .config = agent_data .get (
256+ "config" , existing_agent .config
162257 )
163- if not existing_agent :
164- # Create new agent from config
165- agent = Agent .from_config (config_data )
166- session .add (agent )
167- logger .info (f"Added agent: { agent_name } " )
168- else :
169- # Update existing agent with new config data
170- existing_agent .display_name = config_data .get (
171- "display_name" , existing_agent .display_name
172- )
173- existing_agent .description = config_data .get (
174- "description" , existing_agent .description
175- )
176- existing_agent .url = config_data .get (
177- "url" , existing_agent .url
178- )
179- existing_agent .version = config_data .get (
180- "version" , existing_agent .version
181- )
182- existing_agent .enabled = config_data .get (
183- "enabled" , existing_agent .enabled
184- )
185- existing_agent .capabilities = config_data .get (
186- "capabilities" , existing_agent .capabilities
187- )
188- existing_agent .agent_metadata = config_data .get (
189- "metadata" , existing_agent .agent_metadata
190- )
191- existing_agent .config = config_data .get (
192- "config" , existing_agent .config
193- )
194- logger .info (f"Updated agent: { agent_name } " )
195-
196- except Exception as e :
197- logger .error (f"Error loading agent config { config_file } : { e } " )
198- continue
258+ logger .info (f"Updated default agent: { agent_name } " )
199259
200260 session .commit ()
201- logger .info ("Agent data initialization completed" )
261+ logger .info ("Default agent data initialization completed" )
202262 return True
203263
204264 except Exception as e :
205265 session .rollback ()
206- logger .error (f"Error initializing agent data: { e } " )
266+ logger .error (f"Error initializing default agent data: { e } " )
207267 return False
208268 finally :
209269 session .close ()
0 commit comments