Skip to content

YuAIteam/laco

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

50 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

LacoPro - AI驱动的加密货币智能交易系统

LacoPro 是一个持续运行的加密货币智能交易 Agent,通过事件驱动架构联动AI推理、市场分析与交易执行,实现 24/7 自动化交易决策,并提供完整的远程控制和审计能力。

🎯 核心特性

AI决策引擎

  • 增强LLM推理:支持Function Calling、多轮推理(最多10轮)、工具链式调用
  • 多模型支持:云雾AI (GPT-5) + 豆包AI + DeepSeek-V3,支持运行时动态切换
  • 智能重试机制:交易失败时自动反馈错误给AI,调整决策后重试(最多3次)
  • 智能工具调用:8个专业工具(市场数据、技术指标、投资组合、持仓分析、风险评估、趋势分析、仓位计算、机会发现)
  • 智能决策框架:平衡BUY/SELL决策能力,提供思考维度而非机械规则,让AI自主灵活决策
  • 三层记忆系统:短期记忆(最近5个决策)、中期记忆(7天总结)、长期统计(历史经验)
  • 智能摘要生成:使用nano模型生成简洁易读的决策摘要(<0.001元/次)
  • 容错机制:LLM异常时自动降级,交易失败时智能重试

系统架构

  • 事件驱动:事件队列 → 上下文观测 → AI决策 → 交易执行 → 风险监控
  • 三层缓存:Observation/MarketContext/Ticker性能优化
  • 安全防护:实时风险监控、权限管理、违规检测、完整审计
  • 状态管理:全局状态控制(ACTIVE/PAUSED模式)

远程控制(10个Telegram命令)

📊 查询命令

  • /status - 系统状态总览
  • /portfolio - 账户详情和持仓
  • /positions - 持仓详细信息
  • /opportunities - 当前机会币种
  • /history [条数] - 交易历史记录

🚀 操作命令

  • /trigger - 手动触发交易流程
  • /pause - 完全暂停系统(停止定时触发、AI推理、自动交易)
  • /resume - 恢复正常交易

🤖 模型管理

  • /switch_model - 查看和切换LLM模型
  • /model_status - 查看当前模型状态

通知系统

智能决策报告

  • 🎯 决策结果:动作、币种、置信度、风险等级
  • 💭 AI智能摘要:nano模型生成的简洁摘要(150-250字符),包含完整决策逻辑
  • 📚 历史记忆:短期记忆(最近5个决策)、中期总结(7天经验)、长期统计
  • 📊 AI详情:推理轮次、工具调用、Function Calling状态
  • 💼 账户状态:总权益、可用资金、持仓数量
  • 📈 市场快照:价格、涨跌幅
  • 📋 当前持仓:币种、数量、盈亏
  • 🤖 系统信息:模型、交易模式、时间

🚀 生产环境

当前状态: 🟢 运行中

项目 信息
服务器 8.222.49.26
服务名 lacopro-trading.service
交易模式 实盘交易
定时任务 30分钟自动触发
币安API ✅ 已连接
Telegram ✅ 已启用

服务管理

# 查看服务状态
sudo systemctl status lacopro-trading

# 查看实时日志
sudo journalctl -u lacopro-trading -f

# 查看Telegram命令日志
sudo journalctl -u lacopro-trading -f | grep 'telegram_commands'

# 查看暂停/恢复日志
sudo journalctl -u lacopro-trading -f | grep -E 'trading_state|paused|resumed'

📁 项目结构

lacopro/
├── README.md                           # 项目说明文档
├── pyproject.toml                      # Python项目配置和依赖
├── .gitignore                          # Git忽略规则
│
├── src/lacopro/                        # 核心源代码
│   ├── agent/                          # AI Agent核心模块
│   │   ├── orchestrator.py             # 交易编排器(核心调度)
│   │   ├── enhanced_llm_reasoner.py    # 增强LLM推理器
│   │   ├── llm_reasoner.py             # 基础LLM推理器
│   │   ├── function_calling.py         # Function Calling实现
│   │   ├── memory_system.py            # 三层记忆系统
│   │   ├── decision_summarizer.py      # 智能摘要生成
│   │   ├── context.py                  # 上下文构建器
│   │   ├── conversation_manager.py     # 对话管理
│   │   ├── trading_state.py            # 全局状态管理
│   │   ├── safety_guards.py            # 安全防护
│   │   ├── tool_executor.py            # 工具执行器
│   │   ├── tools_registry.py           # 工具注册表
│   │   ├── events.py                   # 事件定义
│   │   ├── prompt_templates.py         # Prompt模板
│   │   └── reasoner.py                 # 推理基类
│   │
│   ├── tools/                          # 交易工具集
│   │   ├── base.py                     # 工具基类
│   │   ├── market_data_tool.py         # 市场数据工具
│   │   ├── portfolio_tool.py           # 投资组合工具
│   │   └── trading_tool.py             # 交易执行工具
│   │
│   ├── services/                       # 业务服务层
│   │   ├── scheduler.py                # 定时调度服务
│   │   ├── dashboard_service.py        # Dashboard服务
│   │   ├── decision_enhancement.py     # 决策增强服务
│   │   ├── decision_diagnostic.py      # 决策诊断服务
│   │   ├── proposal_generator.py       # 提案生成器
│   │   ├── risk_service.py             # 风险服务
│   │   ├── translation_service.py      # 翻译服务
│   │   └── listeners/                  # 事件监听器
│   │
│   ├── notifications/                  # 通知系统
│   │   ├── telegram.py                 # Telegram通知
│   │   ├── telegram_commands.py        # Telegram命令处理
│   │   ├── telegram_formatter.py       # 消息格式化
│   │   └── base.py                     # 通知基类
│   │
│   ├── analysis/                       # 分析模块
│   │   ├── analyst_agent.py            # 分析Agent
│   │   ├── market_analyzer.py          # 市场分析器
│   │   ├── coin_researcher.py          # 币种研究
│   │   └── brief_formatter.py          # 简报格式化
│   │
│   ├── risk/                           # 风险管理
│   │   ├── engine.py                   # 风险引擎
│   │   ├── models.py                   # 风险模型
│   │   └── rules.py                    # 风险规则
│   │
│   ├── memory/                         # 数据存储
│   │   ├── store.py                    # 内存存储
│   │   └── models.py                   # 数据模型
│   │
│   ├── data/                           # 数据服务
│   │   └── ashare_market_data_client.py # A股数据客户端
│   │
│   ├── laco_chatbot/                   # Laco聊天机器人
│   │   ├── agent.py                    # 聊天Agent
│   │   ├── laco_personality.py         # 人格定义
│   │   ├── conversation_context.py     # 对话上下文
│   │   ├── session_manager.py          # 会话管理
│   │   ├── readonly_tools.py           # 只读工具
│   │   └── ...                         # 其他组件
│   │
│   ├── api/                            # REST API
│   │   ├── app.py                      # FastAPI应用
│   │   ├── routers/                    # API路由
│   │   └── schemas/                    # 数据Schema
│   │
│   ├── config/                         # 配置管理
│   │   ├── settings.py                 # 配置定义
│   │   ├── model_manager.py            # 模型管理
│   │   └── logging.py                  # 日志配置
│   │
│   └── static/                         # 静态资源
│       └── dashboard/                  # Dashboard前端
│
├── docs/                               # 项目文档
│   ├── architecture.md                 # 系统架构设计
│   ├── deployment-guide.md             # 部署指南
│   ├── DEPLOY_NOW.md                   # 快速部署说明
│   ├── TELEGRAM_SETUP.md               # Telegram配置
│   ├── futures-trading-capability-design.md  # 合约交易设计
│   ├── laco-code-review.md             # 代码审查记录
│   ├── progress-log.md                 # 开发进度日志
│   ├── todo.md                         # 待办事项
│   └── archive/                        # 历史归档
│       ├── implementation-reports/     # 实现报告
│       └── guides/                     # 指南文档
│
├── scripts/                            # 脚本工具
│   ├── deploy/                         # 部署脚本
│   │   ├── deploy_complete_features.sh # 完整功能部署
│   │   ├── deploy_update.sh            # 更新部署
│   │   ├── restart_lacopro.sh          # 重启服务
│   │   └── ...                         # 其他部署脚本
│   ├── deploy_laco.sh                  # 主部署脚本
│   ├── start_with_laco.py              # 启动脚本
│   ├── test_llm_apis.py                # LLM API测试
│   └── deprecated/                     # 已废弃脚本
│
├── examples/                           # 示例代码
│   ├── monitoring/                     # 监控工具
│   │   ├── live_monitor.py             # 实时监控
│   │   ├── monitor_dashboard.py        # 监控面板
│   │   └── quick_status.py             # 快速状态
│   ├── *_demo.py                       # 功能演示
│   └── *_test.py                       # 测试示例
│
└── tests/                              # 测试代码
    ├── unit/                           # 单元测试
    │   ├── test_trading_tool.py
    │   ├── test_portfolio_tool.py
    │   ├── test_risk_engine.py
    │   └── ...                         # 其他单元测试
    └── test_enhanced_agent.py          # 集成测试

🔧 快速开始

本地开发

# 1. 安装依赖
pip install -e .

# 2. 运行测试
pytest tests/unit -v

# 3. 启动系统(需配置.env)
python live_trading_config.py

生产部署

# 连接服务器
ssh -i /path/to/key.pem ecs-user@8.222.49.26

# 部署更新
cd ~/lacopro
./scripts/deploy/deploy_complete_features.sh

# 检查服务
sudo systemctl status lacopro-trading

环境要求

  • Python 3.11+
  • 币安API密钥(需IP白名单)
  • LLM API密钥(云雾AI 或 豆包AI)
  • Telegram Bot Token

📚 文档

🔐 安全说明

  • API密钥管理:所有密钥存储在 config/.env,禁止提交到Git
  • 风险控制:实时风险监控和限额管理
  • 权限管理:分级权限控制,高风险操作需审批
  • 审计日志:完整记录所有操作和决策过程
  • 暂停机制:支持完全暂停系统,紧急情况可立即停止

📝 开发规范

  • 敏感配置使用环境变量,通过 pydantic-settings 管理
  • 功能开发前在 docs/todo.md 登记任务
  • 完成后更新 docs/progress-log.md
  • 重大设计变更更新 docs/architecture.md
  • 默认实现 dry-run 模式,真实交易需显式开启

🎯 路线图

  • Phase 1: 核心架构和事件驱动系统
  • Phase 2: Enhanced LLM Agent和Function Calling
  • Phase 3: Telegram远程控制和通知系统
  • Phase 4: 模型切换和暂停/恢复功能
  • Phase 5: 三层记忆系统 + 智能摘要生成
  • Phase 6: 智能重试机制 + 动态模型切换
  • 🔜 Phase 7: 策略规则优化和动态风险管理
  • 🔜 Phase 8: 多币种支持和风险分散

📊 测试覆盖

  • ✅ 45个单元测试全部通过
  • ✅ Enhanced LLM Agent集成测试 4/4
  • ✅ 币安API连接验证通过
  • ✅ Telegram命令功能验证通过
  • ✅ 暂停/恢复机制验证通过

🆘 故障排查

服务无响应

sudo systemctl restart lacopro-trading
sudo journalctl -u lacopro-trading -n 100

Telegram命令无响应

检查环境变量和网络连接:

echo $TELEGRAM_BOT_TOKEN
echo $TELEGRAM_CHAT_ID
curl -s https://api.telegram.org/bot$TELEGRAM_BOT_TOKEN/getMe

LLM API错误

查看详细日志:

sudo journalctl -u lacopro-trading -f | grep -E 'llm|error|exception'

版本: v1.11 最后更新: 2025-10-18 维护团队: LacoPro Development Team

📝 更新日志

v1.11 (2025-10-18)

  • 🧠 智能驱动决策系统:从规则驱动彻底转型为自我反思的智能Agent
    • 设计理念: "给AI更好的镜子(反思工具),而不是更多的镣铐(硬性规则)"
    • 问题: 旧系统每次发现问题就添加规则修复,导致AI越来越机械化和模式化
    • 方案: 移除硬性限制(如"最多3个持仓"、"单币种≤15%"),让AI自主决策
  • 🔧 新增自我反思工具 (2个 → 10个工具):
    • analyze_trading_performance() - 分析最近交易统计、币种分布、策略问题诊断
    • reflect_on_recent_decisions() - 回顾成功/失败案例,识别决策模式
  • 📋 AI Prompt完全重写
    • 初始分析阶段: 强烈建议AI先调用反思工具了解自己的表现
    • 推理阶段: 添加自我检查维度(交易成本意识、策略一致性、组合健康度)
    • 最终决策: 移除机械规则,添加决策哲学(不被数字/时间/成本绑架)
  • 🎯 核心改变
    • Before: "持仓数量 < 3个币种?" "建议仓位 ≤ 15%?"
    • After: "我是否了解自己的表现?" "这个决策是深思熟虑的吗?" "我是否在重复错误?"
  • 💡 预期效果: AI从数据中自主发现问题(如"交易频率过高,手续费消耗严重"),并自我调整策略
  • 📊 工具数量: 8个 → 10个(新增交易表现分析、决策反思)

v1.10 (2025-10-16)

  • 🐛 修复Portfolio FIFO成本价严重Bug:完整实现FIFO(先进先出)成本价计算
    • 问题: 旧代码只累加买入记录,完全忽略卖出对库存的消耗
    • 影响: 所有有过卖出记录的持仓成本价全部错误
    • 实例: BEL成本价从错误的$0.3150(浮盈+45.94%)修复为正确的$0.4678(浮亏-1.73%)
    • 修复: 使用FIFO队列,正确处理买入和卖出,精准计算剩余库存成本
    • 优先级: 🔥 极高(直接影响盈亏判断和AI交易决策)
  • 📊 成本价计算: 旧逻辑(只看BUY)→ 新逻辑(FIFO队列完整处理BUY+SELL)

v1.9 (2025-10-15 晚)

  • 🤖 Laco聊天机器人智能化升级:从机械关键词检测升级到AI意图分类
  • 🎭 身份定位重新定义:Laco现在用第一人称"我"代表整个投资系统,不再说"系统不能交易"
  • 🧠 AI意图分类系统:完全取代关键词检测,智能理解各种措辞表达
    • 6种意图类别:决策质疑、盈亏询问、持仓查询、行情询问、系统状态、闲聊
    • 按需数据获取:只查询用户真正需要的数据类型
    • 上下文感知:结合对话历史理解当前消息
  • 💾 新增系统记忆工具:ReadOnlyHistoryTool(交易历史)+ ReadOnlySystemStatusTool(系统状态)
  • 💬 "问啥说啥"原则:避免啰嗦和模板化回复,不再无脑列数据
  • 🛡️ 保守降级策略:AI分类失败时不查询数据,避免机械输出
  • 🎯 Laco工具数:2个 → 4个(portfolio、market、history、system)

v1.8 (2025-10-15 早)

  • 🚀 AI决策系统重大优化:增强SELL能力,平衡BUY/SELL决策框架
  • 新增中性信息工具analyze_position_status - 提供持仓状态数据(盈亏、趋势、技术指标),不给买卖建议
  • 🧠 重写AI Prompt:初始分析、推理阶段、最终决策三个阶段完整重写
    • 新增"现有持仓审视"任务(与机会发现同等优先级)
    • 新增SELL思考维度(盈亏、趋势、机会成本、风险回报、时间)
    • 新增决策哲学(不被数字/时间/成本绑架,信任AI分析)
  • 💡 设计理念:提供信息和思考框架,让AI自主灵活决策,避免机械规则(如"浮盈15%必须卖出")
  • 📊 预期效果:AI能在趋势延续时保留高浮盈持仓,也能在趋势反转时及时止盈止损
  • 🎯 交易工具数量:7个 → 8个(新增持仓状态分析工具)

v1.7 (2025-10-13 晚)

  • 🐛 Portfolio核心修复:实现FIFO成本计算算法,修复成本价=现价的问题
  • 🐛 交易历史清理:只记录成功交易,移除$0.00失败订单污染
  • 🎨 Portfolio显示优化:移除重复信息,简洁专业的持仓展示
  • 🔍 小额持仓过滤:自动过滤<1 USDT的持仓,界面更清爽
  • 持仓价值显示:添加每个币种的持仓价值(quantity × price)
  • 🐛 风控规则优化:修复虚假保证金告警,精准区分现货/期货持仓
  • 🐛 Telegram命令修复:修复/opportunities、/trigger命令错误
  • 🔧 服务管理优化:解决双实例冲突,Telegram polling稳定(409→200 OK)

v1.6 (2025-10-13 早)

  • 智能重试机制:交易失败时自动反馈错误给AI,支持最多3次智能重试
  • 动态模型切换:修复模型切换功能,支持运行时无缝切换LLM模型(DeepSeek-V3、GPT-5、豆包)
  • 🐛 修复交易精度问题:修复科学计数法导致的quantity格式化错误
  • 🐛 修复Laco聊天机器人初始化:修复LacoAgent未正确初始化问题

v1.5 (2025-10-11)

  • ✨ 三层记忆系统 + 智能摘要生成
  • ✨ 模型切换和暂停/恢复功能

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors