mirror of
https://github.com/NoFxAiOS/nofx.git
synced 2026-07-17 09:24:36 +08:00
feat: Add smart trading assistant with context awareness
- Add SmartAgent with automatic context injection - Real-time portfolio/position data in every prompt - AI knows current state before responding - Add TradingContext builder - Aggregates balance, positions, P&L across all traders - Auto-generates alerts (liquidation risk, large loss, etc.) - Add background Monitor - Proactive position monitoring every 30s - Detects new positions, closed positions - Forwards alerts to Telegram - Enhanced system prompts - Professional trading assistant persona - Risk assessment guidelines - Clear response formatting rules Features: ✅ Context-aware responses ✅ Proactive risk alerts ✅ Background monitoring ✅ Alert broadcasting to Telegram
This commit is contained in:
51
main.go
51
main.go
@@ -142,32 +142,39 @@ func main() {
|
||||
var telegramBot *telegram.Bot
|
||||
telegramConfig := telegram.LoadConfigFromEnv()
|
||||
if telegramConfig.Token != "" {
|
||||
logger.Info("🤖 Initializing Telegram AI Assistant...")
|
||||
logger.Info("🤖 Initializing Smart Trading Assistant...")
|
||||
|
||||
// Create AI client for the assistant
|
||||
aiClient := createAssistantAIClient()
|
||||
|
||||
// Create AI Agent with trading tools
|
||||
agentConfig := assistant.DefaultAgentConfig()
|
||||
agent := assistant.NewAgent(aiClient, agentConfig)
|
||||
|
||||
// Register trading tools
|
||||
tradingTools := assistant.NewTradingTools(traderManager, st)
|
||||
agent.RegisterTools(tradingTools.GetAllTools()...)
|
||||
|
||||
// Set system prompt based on language
|
||||
if telegramConfig.DefaultLanguage == "zh" {
|
||||
agent.SetSystemPrompt(assistant.ChineseSystemPrompt())
|
||||
}
|
||||
|
||||
// Create and start Telegram bot
|
||||
var err error
|
||||
telegramBot, err = telegram.NewBot(telegramConfig, agent)
|
||||
if err != nil {
|
||||
logger.Errorf("❌ Failed to create Telegram bot: %v", err)
|
||||
if aiClient == nil {
|
||||
logger.Error("❌ No AI API key configured, Telegram bot disabled")
|
||||
} else {
|
||||
go telegramBot.Start()
|
||||
logger.Info("✅ Telegram AI Assistant started successfully")
|
||||
// Create Smart AI Agent with trading context awareness
|
||||
agentConfig := assistant.DefaultAgentConfig()
|
||||
smartAgent := assistant.NewSmartAgent(aiClient, agentConfig, traderManager, st)
|
||||
|
||||
// Register trading tools
|
||||
tradingTools := assistant.NewTradingTools(traderManager, st)
|
||||
smartAgent.RegisterTools(tradingTools.GetAllTools()...)
|
||||
|
||||
// Create and start Telegram bot
|
||||
var err error
|
||||
telegramBot, err = telegram.NewBot(telegramConfig, smartAgent.Agent)
|
||||
if err != nil {
|
||||
logger.Errorf("❌ Failed to create Telegram bot: %v", err)
|
||||
} else {
|
||||
// Start background monitor with alert forwarding to Telegram
|
||||
smartAgent.OnAlert(func(alert assistant.Alert) {
|
||||
telegramBot.BroadcastAlert(alert.Message)
|
||||
})
|
||||
smartAgent.StartMonitor()
|
||||
|
||||
go telegramBot.Start()
|
||||
logger.Info("✅ Smart Trading Assistant started successfully")
|
||||
logger.Info(" 📊 Real-time context injection: enabled")
|
||||
logger.Info(" 🔍 Background monitoring: enabled")
|
||||
logger.Info(" ⚠️ Proactive alerts: enabled")
|
||||
}
|
||||
}
|
||||
} else {
|
||||
logger.Info("ℹ️ Telegram bot not configured (set TELEGRAM_BOT_TOKEN to enable)")
|
||||
|
||||
Reference in New Issue
Block a user