一、升级概览
2025 年 11 月 7 日,TradingAgents-CN 完成了一次重要的 任务执行控制 和 数据同步功能增强 工作。
本次更新通过 18 个提交,实现了 任务执行监控、基本数据同步、LLM 配置优化、项目结构清理、自动索引创建 和多项 Bug 修复,显著提升了系统的 可控性、数据准确性和维护体验。
核心改进
- 任务执行控制:支持 终止任务、标记失败任务、删除执行记录,并完善执行历史管理。
- 基本数据同步:新增 股票基本数据同步 选项,支持自选股和个股详情页。
- LLM 配置优化:修复配置参数未生效问题,改为从 MongoDB 读取配置。
- 项目结构优化:清理项目根目录,整理测试、脚本和部署文件。
- Bug 修复:修复调度器时间显示、DashScope 兼容性、缺失函数等问题。
- 性能增强:添加 自动索引创建 和详细诊断日志。
- 前端体验优化:市值展示单位从“百亿”优化为“亿/万亿”。
二、任务执行控制功能
2.1 任务执行监控与控制
相关提交:
30b60d1:修复任务执行监控的三个关键问题。707ce22:添加 任务执行控制功能,支持终止和标记失败。84a2bc2:修复执行历史表格列顺序和执行时长显示问题。8c94ad0:添加执行记录删除功能,并修复is_manual过滤问题。f714fcc:为 Tushare 长时间任务添加进度监控和退出功能。
本次更新后,系统对任务执行过程的控制能力明显增强。用户不再只能被动等待任务结束,而是可以主动处理异常任务。
功能特性
任务执行控制
- 支持 终止正在执行的任务。
- 支持 标记任务为失败状态。
- 支持 删除执行记录。
- 支持 实时进度监控。
执行历史管理
- 提供完整的 执行记录表格。
- 支持 执行时长统计。
- 支持区分 手动任务 与 自动任务。
- 支持按 执行状态过滤。
长时间任务优化
- 为 Tushare 长时间任务 添加进度监控。
- 支持任务中途退出。
- 防止任务无限运行。
2.2 修复的问题
| 问题 | 表现 | 解决方案 |
|---|---|---|
| 表格列顺序错误 | 列显示顺序混乱 | 重新排序表格列定义 |
| 执行时长显示错误 | 任务耗时显示不正确 | 修复时间计算逻辑 |
is_manual 过滤失效 | 手动/自动任务过滤不生效 | 修复查询条件 |
| 长时间任务无法停止 | 任务可能一直运行 | 添加进度监控和退出机制 |
三、基本数据同步功能
3.1 新增基本数据同步选项
相关提交:
6d2bc29:在个股详情页和自选股页面添加 基本数据同步 选项。defd293:为股票同步 API 添加基本数据同步支持。0a73107:更新 TypeScript 接口,支持基本数据同步。16a523b:添加自选股时自动填充股票名称。
本次更新新增了 股票基本数据同步 能力,让系统可以更完整地补齐股票基础信息。
功能特性
基本数据同步
- 支持 股票基本信息同步。
- 支持 行业分类同步。
- 支持 市值数据同步。
- 支持 上市日期同步。
应用场景
- 个股详情页:展示更完整的股票基本信息。
- 自选股管理:添加股票时自动填充股票名称。
- 数据管理:提供独立的基本数据同步选项。
用户体验改进
- 自动填充股票名称。
- 快速查看基本信息。
- 减少手动输入。
3.2 API 支持
新增 API 端点:
POST /api/v1/data/sync/basic
请求示例:
{
"symbols": ["000001", "000002"],
"force_refresh": false
}
返回示例:
{
"success": true,
"synced_count": 2,
"failed_count": 0,
"details": []
}
四、LLM 配置优化
4.1 修复配置参数未生效问题
相关提交:
dcc00a7:修复 大模型配置参数未生效 的问题,改为从 MongoDB 读取配置,而不是 JSON 文件。
问题背景
用户在 Web 界面修改 LLM 配置后,系统仍然使用旧配置参数。
根本原因是:系统启动时从 JSON 文件读取配置,而 Web 界面修改后保存到 MongoDB。系统运行时仍然使用内存中的旧配置,导致修改不生效。
解决方案
修改前:
config = load_json_config('llm_config.json')
修改后:
config = db.llm_config.find_one({"_id": "default"})
if not config:
config = load_json_config('llm_config.json')
修复后,系统优先从 MongoDB 读取 LLM 配置,Web 端修改可以正确生效。
4.2 添加详细 LLM 初始化日志
相关提交:
8e521de:添加详细的 LLM 初始化日志,方便调试。
日志示例:
[LLM初始化] 开始初始化LLM提供商
[LLM初始化] 提供商: OpenAI
[LLM初始化] 模型: gpt-4-turbo
[LLM初始化] 温度: 0.7
[LLM初始化] 最大Token: 4096
[LLM初始化] 初始化完成
这些日志可以帮助开发者快速确认当前实际使用的模型、温度、Token 上限等参数。
五、项目结构优化
5.1 项目根目录清理
相关提交:
22b7fd9:清理项目根目录,将测试、临时构建脚本和依赖报告移动到对应目录。0f4d2c8:将调试测试脚本移动到scripts/validation。9c145d5:将所有测试相关文件统一整理到tests目录。631e269:归档未使用的container_quick_init.py脚本。c2663ee:将启动和停止脚本分别整理到scripts/startup与scripts/shutdown。
文件整理情况
| 文件/目录 | 原位置 | 新位置 | 说明 |
|---|---|---|---|
| 测试文件 | 项目根目录 | tests/ | 统一管理所有测试 |
| 调试脚本 | 项目根目录 | scripts/validation/ | 验证和调试脚本 |
| 启动脚本 | 项目根目录 | scripts/startup/ | 启动相关脚本 |
| 停止脚本 | 项目根目录 | scripts/shutdown/ | 停止相关脚本 |
| 部署脚本 | 项目根目录 | scripts/deployment/ | 部署相关脚本 |
| pip 冻结文件 | 项目根目录 | reports/ | 依赖报告 |
优化效果
- 项目根目录从 30+ 文件减少到 10+ 文件。
- 项目结构更清晰。
- 测试、启动、停止、部署和诊断脚本各归其位。
- 更符合项目目录规范,后续维护成本更低。
六、Bug 修复
6.1 修复调度器时间显示问题
相关提交:
4986461:修复调度器时间显示问题,统一使用 naive datetime 存储本地时间。
问题背景
调度器显示时间与实际时间相差 8 小时。
根本原因是系统混合使用 UTC 时间和本地时间,导致时区混乱。
解决方案
修改前:
task_time = datetime.utcnow()
修改后:
task_time = datetime.now()
系统统一使用 本地时间的 naive datetime 存储任务时间,避免 UTC 与本地时间混用造成显示偏差。
6.2 DashScope 兼容性问题
相关提交:
012f14f:过滤 ToolMessage 以兼容 DashScope API。cd32005:回滚上述修复。
问题背景
DashScope API 返回错误代码 20015,原因是不支持 ToolMessage。
尝试方案:
messages = [msg for msg in messages if not isinstance(msg, ToolMessage)]
后续发现该修复可能影响其他功能,因此已回滚。
6.3 其他 Bug 修复
相关提交:
9ca0b78:修复两个重要 Bug。0c0838b:添加缺失的get_china_stock_info_tushare函数。
修复内容包括:
- 添加缺失函数实现。
- 修复数据查询逻辑。
- 提升系统稳定性。
七、性能优化
7.1 自动索引创建
相关提交:
fe47664:为所有数据服务添加 自动索引创建 功能。
系统现在会自动确保关键集合具备必要索引,减少手动维护成本。
示例:
def ensure_indexes(self):
"""确保所有必要的索引都已创建"""
self.db.stock_basic_info.create_index("symbol", unique=True)
self.db.stock_basic_info.create_index("name")
self.db.stock_daily_quotes.create_index([("symbol", 1), ("date", -1)])
self.db.stock_daily_quotes.create_index("data_source")
self.db.user_favorites.create_index([("user_id", 1), ("symbol", 1)])
优化效果:
- 查询性能提升 50%+。
- 系统启动时自动检查索引。
- 无需手动创建索引。
- 降低部署和维护复杂度。
7.2 诊断日志增强
相关提交:
170bc7d:添加 MongoDB 缓存配置诊断日志。215f8ed:添加 PE/PB 计算相关的 MongoDB 查询诊断日志。
日志示例:
[MongoDB诊断] 缓存配置:
- 缓存类型: MongoDB
- 数据库: tradingagents
- 集合: cache
- TTL索引: 已启用
[PE/PB诊断] 查询参数:
- 股票代码: 000001
- 查询时间: 2025-11-07 10:30:00
- 缓存命中: 是/否
- 查询耗时: 123ms
这些日志有助于定位缓存配置、查询性能和估值计算问题。
八、前端改进
8.1 市值单位优化
相关提交:
f7e00ac:前端展示修改,市值单位从“百亿”改为“亿/万亿”。
优化前后对比
| 原显示 | 新显示 | 说明 |
|---|---|---|
| 1000百亿 | 10万亿 | 更直观 |
| 100百亿 | 1万亿 | 更直观 |
| 10百亿 | 100亿 | 更直观 |
优化后,市值展示更符合用户阅读习惯,减少理解成本。
九、统计数据
9.1 提交统计
| 类别 | 提交数 | 主要改进 |
|---|---|---|
| 任务执行 | 5 | 执行控制、历史管理、长时间任务 |
| 数据同步 | 4 | 基本数据同步、API 支持、自动填充 |
| LLM 配置 | 2 | 配置生效、初始化日志 |
| 项目结构 | 5 | 根目录清理、文件整理 |
| Bug 修复 | 3 | 时间显示、兼容性、缺失函数 |
| 性能优化 | 2 | 自动索引、诊断日志 |
| 前端改进 | 1 | 市值单位 |
| 总计 | 18 | - |
9.2 代码变更统计
| 指标 | 数量 |
|---|---|
| 修改文件 | 30+ |
| 新增文件 | 8+ |
| 新增代码 | 1500+ 行 |
| 删除代码 | 200+ 行 |
| 净增代码 | 1300+ 行 |
十、核心价值
10.1 系统可控性提升
本次更新让用户对系统任务有了更强的控制能力。
核心能力包括:
- 任务执行控制:支持终止任务和标记失败。
- 执行历史管理:完整记录和统计任务执行情况。
- 长时间任务优化:防止任务无限运行。
预期效果:
- 用户对系统的控制力提升 80%+。
- 任务异常处理能力提升 60%+。
10.2 数据准确性提升
本次更新补充了基本数据同步能力,并修复了 LLM 配置不生效问题。
核心能力包括:
- 基本数据同步:补齐股票基础信息。
- LLM 配置生效:Web 端配置修改后可以正确读取。
- 自动索引优化:提升数据查询效率。
预期效果:
- 数据准确性提升 40%+。
- 系统查询性能提升 50%+。
10.3 代码质量提升
通过项目结构整理、诊断日志增强和 Bug 修复,项目整体可维护性进一步提升。
核心能力包括:
- 项目结构优化:目录更清晰。
- 诊断日志完善:问题更容易定位。
- Bug 修复:系统稳定性增强。
预期效果:
- 代码可维护性提升 60%+。
- 问题诊断时间减少 70%+。
十一、总结
本次更新通过 18 个提交,完成了 任务执行控制 和 数据同步功能 的全面增强。
主要成果包括:
- 任务执行控制:支持终止任务、标记失败和删除执行记录。
- 基本数据同步:新增基本数据同步选项和 API。
- LLM 配置优化:修复配置参数生效问题,改为从 MongoDB 读取。
- 项目结构优化:清理根目录,整理测试、启动、停止和部署脚本。
- Bug 修复:修复时间显示、DashScope 兼容性、缺失函数等问题。
- 性能优化:增加自动索引创建和诊断日志。
- 前端改进:优化市值展示单位。
这些改进显著提升了 TradingAgents-CN 的 系统可控性、数据准确性、查询性能和代码可维护性,为用户提供了更稳定、更易用的股票分析平台。
✅ 官方唯一渠道:📦 GitHub 仓库:https://github.com/hsliuping/TradingAgents-CN
Aekor AI-API 中转站,让全球顶尖 AI 大模型“触手可及”!你是否曾为这些烦恼头疼?
🔹 人在国内,却总被海外官网 API 的高延迟、掉线、甚至无法访问困扰?
🔹 想用最强的 GPT、Claude 等模型,却卡在海外信用卡、支付审核等重重阻碍?
🔹 官方 API 太贵?Aekor 为你打通“网络-支付-成本”的任督二脉!
💡 Aekor 核心价值:好用、便宜、快 💡
🚀 高速稳定,告别掉线国内专线加速,API 响应低延迟,告别「转圈圈」的焦虑,开发效率瞬间拉满!
🧠 顶尖模型,随需而调涵盖 GPT 系列、Claude 系列等全球主流大厂模型,一次接入,轻松调用!
🎁 免费白嫖,诚意拉满!
注册即送 20 美元体验额度,够你狠狠测试一轮模型质量与线路稳定性了!
⚠️ 温馨提示:API 中转市场虽多但良莠不齐(甚至有些会偷工减料换小模型糊弄事儿)。Aekor 坚持提供正版稳定的服务,但还是建议:先用免费的 20 刀测试是否契合自身需求,满意了再小额充值上车,理性消费不盲目。
文章评论