mirror of
https://github.com/Xe138/AI-Trader.git
synced 2026-04-09 04:07:24 -04:00
Compare commits
2 Commits
v0.3.0-alp
...
v0.3.0-alp
| Author | SHA1 | Date | |
|---|---|---|---|
| e968434062 | |||
| 4c1d23a7c8 |
@@ -221,7 +221,7 @@ class BaseAgent:
|
|||||||
|
|
||||||
print(f"✅ Agent {self.signature} initialization completed")
|
print(f"✅ Agent {self.signature} initialization completed")
|
||||||
|
|
||||||
def set_context(self, context_injector: "ContextInjector") -> None:
|
async def set_context(self, context_injector: "ContextInjector") -> None:
|
||||||
"""
|
"""
|
||||||
Inject ContextInjector after initialization.
|
Inject ContextInjector after initialization.
|
||||||
|
|
||||||
@@ -241,6 +241,9 @@ class BaseAgent:
|
|||||||
tool_interceptors=[context_injector]
|
tool_interceptors=[context_injector]
|
||||||
)
|
)
|
||||||
|
|
||||||
|
# CRITICAL: Reload tools from new client so they use the interceptor
|
||||||
|
self.tools = await self.client.get_tools()
|
||||||
|
|
||||||
print(f"✅ Context injected: signature={context_injector.signature}, "
|
print(f"✅ Context injected: signature={context_injector.signature}, "
|
||||||
f"date={context_injector.today_date}, job_id={context_injector.job_id}, "
|
f"date={context_injector.today_date}, job_id={context_injector.job_id}, "
|
||||||
f"session_id={context_injector.session_id}")
|
f"session_id={context_injector.session_id}")
|
||||||
|
|||||||
@@ -7,7 +7,6 @@ project_root = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
|
|||||||
sys.path.insert(0, project_root)
|
sys.path.insert(0, project_root)
|
||||||
from tools.price_tools import get_open_prices
|
from tools.price_tools import get_open_prices
|
||||||
import json
|
import json
|
||||||
from tools.deployment_config import get_db_path
|
|
||||||
from api.database import get_db_connection
|
from api.database import get_db_connection
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
mcp = FastMCP("TradeTools")
|
mcp = FastMCP("TradeTools")
|
||||||
@@ -30,7 +29,7 @@ def get_current_position_from_db(job_id: str, model: str, date: str) -> Tuple[Di
|
|||||||
Raises:
|
Raises:
|
||||||
Exception: If database query fails
|
Exception: If database query fails
|
||||||
"""
|
"""
|
||||||
db_path = get_db_path()
|
db_path = "data/jobs.db"
|
||||||
conn = get_db_connection(db_path)
|
conn = get_db_connection(db_path)
|
||||||
cursor = conn.cursor()
|
cursor = conn.cursor()
|
||||||
|
|
||||||
@@ -110,7 +109,7 @@ def buy(symbol: str, amount: int, signature: str = None, today_date: str = None,
|
|||||||
if not today_date:
|
if not today_date:
|
||||||
return {"error": "Missing required parameter: today_date"}
|
return {"error": "Missing required parameter: today_date"}
|
||||||
|
|
||||||
db_path = get_db_path()
|
db_path = "data/jobs.db"
|
||||||
conn = get_db_connection(db_path)
|
conn = get_db_connection(db_path)
|
||||||
cursor = conn.cursor()
|
cursor = conn.cursor()
|
||||||
|
|
||||||
@@ -233,7 +232,7 @@ def sell(symbol: str, amount: int, signature: str = None, today_date: str = None
|
|||||||
if not today_date:
|
if not today_date:
|
||||||
return {"error": "Missing required parameter: today_date"}
|
return {"error": "Missing required parameter: today_date"}
|
||||||
|
|
||||||
db_path = get_db_path()
|
db_path = "data/jobs.db"
|
||||||
conn = get_db_connection(db_path)
|
conn = get_db_connection(db_path)
|
||||||
cursor = conn.cursor()
|
cursor = conn.cursor()
|
||||||
|
|
||||||
|
|||||||
@@ -140,7 +140,7 @@ class ModelDayExecutor:
|
|||||||
job_id=self.job_id,
|
job_id=self.job_id,
|
||||||
session_id=session_id
|
session_id=session_id
|
||||||
)
|
)
|
||||||
agent.set_context(context_injector)
|
await agent.set_context(context_injector)
|
||||||
|
|
||||||
# Run trading session
|
# Run trading session
|
||||||
logger.info(f"Running trading session for {self.model_sig} on {self.date}")
|
logger.info(f"Running trading session for {self.model_sig} on {self.date}")
|
||||||
@@ -155,10 +155,13 @@ class ModelDayExecutor:
|
|||||||
# Update session summary
|
# Update session summary
|
||||||
await self._update_session_summary(cursor, session_id, conversation, agent)
|
await self._update_session_summary(cursor, session_id, conversation, agent)
|
||||||
|
|
||||||
# Store positions (pass session_id)
|
# Commit and close connection before _write_results_to_db opens a new one
|
||||||
self._write_results_to_db(agent, session_id)
|
|
||||||
|
|
||||||
conn.commit()
|
conn.commit()
|
||||||
|
conn.close()
|
||||||
|
conn = None # Mark as closed
|
||||||
|
|
||||||
|
# Store positions (pass session_id) - this opens its own connection
|
||||||
|
self._write_results_to_db(agent, session_id)
|
||||||
|
|
||||||
# Update status to completed
|
# Update status to completed
|
||||||
self.job_manager.update_job_detail_status(
|
self.job_manager.update_job_detail_status(
|
||||||
|
|||||||
@@ -320,12 +320,11 @@ def get_today_init_position_from_db(
|
|||||||
If no position exists: {"CASH": 10000.0} (initial cash)
|
If no position exists: {"CASH": 10000.0} (initial cash)
|
||||||
"""
|
"""
|
||||||
import logging
|
import logging
|
||||||
from tools.deployment_config import get_db_path
|
|
||||||
from api.database import get_db_connection
|
from api.database import get_db_connection
|
||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
db_path = get_db_path()
|
db_path = "data/jobs.db"
|
||||||
conn = get_db_connection(db_path)
|
conn = get_db_connection(db_path)
|
||||||
cursor = conn.cursor()
|
cursor = conn.cursor()
|
||||||
|
|
||||||
@@ -385,14 +384,13 @@ def add_no_trade_record_to_db(
|
|||||||
session_id: Trading session ID
|
session_id: Trading session ID
|
||||||
"""
|
"""
|
||||||
import logging
|
import logging
|
||||||
from tools.deployment_config import get_db_path
|
|
||||||
from api.database import get_db_connection
|
from api.database import get_db_connection
|
||||||
from agent_tools.tool_trade import get_current_position_from_db
|
from agent_tools.tool_trade import get_current_position_from_db
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
db_path = get_db_path()
|
db_path = "data/jobs.db"
|
||||||
conn = get_db_connection(db_path)
|
conn = get_db_connection(db_path)
|
||||||
cursor = conn.cursor()
|
cursor = conn.cursor()
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user