Aekor

Aekor
专注于用户阅读体验的响应式博客主题
  1. 首页
  2. TradingAgents-CN
  3. 正文

TradingAgents-CN v1.0.0-preview bug修复和优化日志 (2025-10-21)

2025-10-22 6885点热度 0人点赞 0条评论

一、更新概述

2025 年 10 月 21 日,TradingAgents-CN 对配置系统进行了全面优化和修复。

本次更新涉及 20+ 个提交,重点解决了配置管理中的多个关键问题,包括:

  • 配置测试不真实
  • 环境变量无法作为回退配置
  • 重载配置与重新验证结果不一致
  • 数据库配置管理能力不完整
  • API Key 删除后仍显示截断密钥
  • Google AI 自定义 base_url 不生效
  • 多市场数据架构缺少统一规划

这次更新的核心目标,是让系统配置从“能展示”变成真正“可验证、可追踪、可部署、可扩展”。


二、配置测试功能真实化改造

1. 问题背景

用户反馈,在配置管理页面测试 大模型、数据源、数据库 配置时,无论填写什么内容,系统都会提示测试成功。

排查后发现,原来的配置测试只是模拟等待后返回成功:

  • 大模型配置测试:sleep(1) 后返回成功。
  • 数据源配置测试:sleep(0.5) 后返回成功。
  • 数据库配置测试:sleep(0.3) 后返回成功。

这种“假测试”会严重影响用户判断,导致错误配置在运行时才暴露。

2. 大模型配置测试真实化

本次更新为 OpenAI 兼容 API 实现了真实测试逻辑。

优化内容包括:

  • 真实调用 OpenAI 兼容 API。
  • 发送测试消息并验证响应。
  • 区分不同 HTTP 错误码,例如 401、403、404、500。
  • 增强 API Key 验证,可识别截断密钥,例如 sk-xxx...。
  • 返回更详细的错误提示,帮助用户定位问题。

测试覆盖场景包括:

测试场景结果
正确 API Base URL + 有效密钥测试成功
错误 API Base URL连接失败
空 API Base URL提示不能为空
无效 API Key提示密钥无效
截断 API Key提示密钥无效

3. 数据源配置测试真实化

数据源测试也从模拟返回改为真实调用。

支持的测试包括:

  • Tushare:真实调用交易日历接口。
  • AKShare:真实调用实时行情接口。
  • Yahoo Finance:真实调用股票数据接口。
  • Alpha Vantage:验证 API Key 有效性。
  • 其他数据源:执行基础端点连接测试。

4. 数据库配置测试真实化

数据库测试也改为真实连接。

支持内容包括:

  • MongoDB:真实连接并执行 ping。
  • Redis:真实连接并执行 PING。
  • MySQL / PostgreSQL / SQLite:查询版本信息。
  • 增加认证失败、连接超时、数据库不存在等错误处理。

5. 优化效果

配置测试真实化后,用户可以在配置阶段准确判断配置是否可用:

  • 避免错误配置进入运行流程。
  • 减少部署后的运行时故障。
  • 提升用户对系统配置结果的信任。
  • 排查问题时能获得更清晰的错误原因。

三、环境变量回退机制

1. 问题背景

在实际开发和部署中,用户经常需要在 数据库配置 和 .env 文件之间切换。

此前系统缺少统一的回退机制,导致:

  • 本地开发时必须在数据库中配置所有密钥。
  • Docker 部署时 .env 中的环境变量可能不生效。
  • 配置来源不清晰。
  • 开发环境和生产环境切换不够灵活。

2. 数据库配置环境变量回退

本次更新为数据库配置增加了环境变量回退支持。

支持配置包括:

  • MongoDB:MONGODB_USERNAME、MONGODB_PASSWORD、MONGODB_DATABASE、MONGODB_AUTH_SOURCE
  • Redis:REDIS_PASSWORD、REDIS_DB

同时新增了 authSource 参数支持,用于解决 MongoDB 认证场景下常见的连接失败问题。

测试结果中也增加了:

used_env_credentials

用于标识当前测试是否使用了环境变量中的凭据。

3. 数据源配置环境变量回退

数据源 Token 也支持从环境变量读取。

支持项包括:

  • Tushare:TUSHARE_TOKEN
  • Alpha Vantage:ALPHA_VANTAGE_API_KEY
  • FinnHub:FINNHUB_API_KEY
  • Polygon:POLYGON_API_KEY
  • IEX:IEX_API_KEY
  • Quandl:QUANDL_API_KEY

同时优化了 Token 处理:

  • 自动移除 .env 中 Token 两侧的引号。
  • 检测包含 ... 的截断 Token。
  • 避免将无效 Token 误判为可用配置。

4. 配置优先级

本次明确了配置优先级:

数据库配置 > 环境变量 > 默认值

这意味着:

  • 如果数据库中有配置,优先使用数据库配置。
  • 如果数据库中没有配置,则自动回退到环境变量。
  • 如果两者都没有,再使用系统默认值。

5. 优化效果

环境变量回退机制带来的收益包括:

  • 本地开发更方便。
  • Docker 部署更灵活。
  • 配置管理更统一。
  • 可以平滑支持开发环境与生产环境。
  • 用户不必重复在多个地方配置相同密钥。

四、配置验证逻辑统一

1. 问题背景

用户发现配置页面中的两个按钮表现不一致:

  • 重载配置:从 MongoDB 读取配置并桥接到环境变量,显示配置通过。
  • 重新验证:只验证 .env 文件中的配置,显示部分配置未配置。

这导致用户无法判断系统到底使用的是哪一份配置。

2. 统一验证逻辑

本次更新统一了配置验证流程。

核心变化是:验证前先调用:

bridge_config_to_env()

确保验证逻辑使用的是最新配置,包括:

  • .env 中的环境变量。
  • MongoDB 中保存的配置。
  • 桥接后的运行时配置。

3. 增强配置验证能力

新增能力包括:

  • 区分 环境变量配置 和 MongoDB 配置。
  • 验证 MongoDB 中存储的大模型配置。
  • 验证 MongoDB 中存储的数据源配置。
  • 改为验证 厂家级别配置,而不是单个模型级别配置。
  • 只验证已启用的厂家和数据源。

4. 前端展示优化

前端配置页面新增了 MongoDB 配置验证区域,可以显示:

  • 大模型厂家配置状态。
  • 数据源配置状态。
  • 已配置、未配置、已禁用等状态。
  • 环境变量警告。
  • MongoDB 配置警告。

已禁用的配置会显示为灰色,不影响最终验证结果。

5. 优化效果

配置验证逻辑统一后:

  • 重载配置 与 重新验证 的结果保持一致。
  • 用户可以清楚知道配置来源。
  • 已禁用配置不会误报错误。
  • 配置页面反馈更加准确。

五、数据库配置管理完善

1. 问题背景

数据库配置模块此前存在多个问题:

  • 缺少完整的编辑能力。
  • 缺少连接测试能力。
  • 测试连接时密码字段可能丢失。
  • MongoDB 测试要求管理员权限,不适合普通部署环境。
  • 后端接口不够完整。

2. 后端 API 完善

新增并完善了数据库配置相关 RESTful API:

GET     /api/config/database
GET     /api/config/database/{db_name}
POST    /api/config/database
PUT     /api/config/database/{db_name}
DELETE  /api/config/database/{db_name}
POST    /api/config/database/{db_name}/test

这些接口覆盖了数据库配置的获取、添加、更新、删除和连接测试。

3. 技术改进

本次修复包括:

  • 修复 current_user 类型错误。
  • 从 User 对象调整为 dict。
  • 改进 MongoDB 连接测试,支持非管理员权限测试。
  • 测试连接时从数据库读取完整配置,避免密码丢失。
  • 增强错误处理和日志记录。

4. 前端 UI 改进

前端侧实现了:

  • 数据库配置添加对话框。
  • 数据库配置编辑对话框。
  • 数据库配置删除能力。
  • 数据库连接测试功能。

后续又根据系统安全性考虑,对数据库配置进行收敛:

  • 移除数据库配置的“添加”和“删除”功能。
  • 将配置名称和类型字段设为只读。
  • 避免误删系统核心数据库配置。

5. 优化效果

数据库配置管理更加稳定、安全:

  • 用户可以测试真实数据库连接。
  • 密码字段不会在测试时丢失。
  • 非管理员 MongoDB 用户也能完成连接测试。
  • 核心数据库配置不容易被误操作破坏。

六、厂家配置 API Key 管理优化

1. 问题背景

用户在界面删除 API Key 后保存,再次打开页面时,仍然会看到截断后的密钥。

这说明前后端对“截断密钥”“空字符串”“新密钥”的处理逻辑没有区分清楚。

2. 后端处理逻辑

本次更新将 API Key 分为三种情况处理:

# 截断密钥,说明用户没有修改,不更新数据库
if '...' in api_key:
    pass

# 空字符串,说明用户主动清空,写入空值
elif api_key == '':
    update_data['api_key'] = ''

# 新的完整密钥,正常更新
else:
    update_data['api_key'] = api_key

3. 前端提交逻辑

前端也同步调整:

  • 截断密钥:代表未修改,提交时删除该字段。
  • 空字符串:代表用户主动清空,保留并提交。
  • 新密钥:代表用户重新输入,保留并提交。

4. 其他修复

同时修复了:

  • test_llm_config 方法中的 .value 属性访问错误。
  • provider 字段同时兼容枚举和字符串两种类型。

5. 优化效果

API Key 管理更加符合用户预期:

  • 不会误把截断密钥写回数据库。
  • 用户主动清空密钥时可以真正删除。
  • 新密钥可以正常保存。
  • 配置测试逻辑更加稳定。

七、Google AI 自定义 base_url 支持

1. 问题背景

此前 Google AI 的 LLM 创建代码没有正确传递 backend_url 参数,导致:

  • 数据库中的 default_base_url 无法生效。
  • 无法使用代理地址。
  • 无法使用私有部署的 Google AI API。
  • 与 DashScope、DeepSeek、Ollama 等厂商逻辑不一致。

2. 核心实现

本次更新在 ChatGoogleOpenAI 中增加了 base_url 支持。

关键处理逻辑:

  • 如果传入的地址以 /v1 结尾,自动转换为 /v1beta。
  • 如果地址以 /v1beta 结尾,则提取域名部分。
  • 使用 client_options 将自定义端点传递给 Google AI SDK。

示例逻辑:

if base_url.endswith('/v1'):
    base_url = base_url[:-3] + '/v1beta'

if base_url.endswith('/v1beta'):
    api_endpoint = base_url[:-7]
else:
    api_endpoint = base_url

kwargs['client_options'] = {'api_endpoint': api_endpoint}

3. 配置优先级

Google AI 的地址优先级如下:

模型配置的 api_base > 厂家配置的 default_base_url > SDK 默认端点

4. 向后兼容

本次实现保持向后兼容:

  • 不提供 base_url 时,继续使用 Google AI SDK 默认端点。
  • 自动将 /v1 转换为 /v1beta。
  • 支持代理和私有部署地址。
  • 增加详细日志,便于排查问题。

5. 优化效果

Google AI 配置更加灵活:

  • 支持自定义代理地址。
  • 支持私有部署 API。
  • 与其他 LLM 厂商处理逻辑保持一致。
  • 用户在后台配置的 default_base_url 可以真正生效。

八、多市场数据架构设计

1. 设计背景

为了支持未来的 港股、美股 等多市场数据接入,系统需要提前设计统一的数据架构。

如果继续在原有结构上堆叠,很容易出现字段不统一、查询困难、迁移成本高等问题。

2. 架构原则

本次确定的设计原则是:

统一标准 + 分开存储 + 统一接口

具体含义:

  • 统一字段标准:不同市场使用相同字段名和数据类型。
  • 分开存储:每个市场使用独立 MongoDB 集合。
  • 统一接口:通过统一 API 访问不同市场数据。

3. MongoDB 集合设计

规划的集合结构包括:

stock_basics_cn     # A股基础信息
stock_basics_hk     # 港股基础信息
stock_basics_us     # 美股基础信息

daily_quotes_cn     # A股日线数据
daily_quotes_hk     # 港股日线数据
daily_quotes_us     # 美股日线数据

4. 基础信息字段标准

统一字段示例:

{
  "symbol": "统一代码格式",
  "name": "股票名称",
  "market": "市场标识(CN/HK/US)",
  "list_date": "上市日期",
  "industry": "行业分类",
  "market_cap": "市值"
}

5. K 线数据字段标准

统一字段示例:

{
  "symbol": "股票代码",
  "trade_date": "交易日期",
  "open": "开盘价",
  "high": "最高价",
  "low": "最低价",
  "close": "收盘价",
  "volume": "成交量",
  "amount": "成交额"
}

6. 实施路线图

多市场架构规划分为五个阶段:

阶段内容
Phase 0设计统一数据标准
Phase 1创建新的多市场集合
Phase 2迁移 A 股数据到新集合
Phase 3实现港股、美股数据接入
Phase 4统一 API 和前端展示

7. 架构收益

该设计能带来:

  • 跨市场数据结构更统一。
  • A 股、港股、美股可以独立存储。
  • 查询性能更容易优化。
  • 前端和 API 层可以使用统一逻辑。
  • 为后续多市场分析打下基础。

九、其他 Bug 修复

1. 前端动态导入模块失败

修复内容:

  • 修复前端动态导入模块失败问题。
  • 修复 DashScope API 地址错误。

2. MongoDB Docker 部署问题

修复内容:

  • 移除 docker-compose.hub.nginx.yml 中的初始化脚本挂载。
  • MongoDB 通过 MONGO_INITDB_ROOT_USERNAME 和 MONGO_INITDB_ROOT_PASSWORD 自动创建 root 用户。
  • 应用使用 admin 用户连接,无需额外初始化脚本。
  • 添加 MongoDB 排查工具和文档。

3. Google AI API 测试模型名称错误

修复内容:

  • 将测试模型从 gemini-1.5-flash 改为 gemini-2.0-flash-exp。
  • gemini-2.0-flash-exp 在 v1beta API 中可用。

十、统计数据

提交统计

指标数量
总提交数20+
修复 Bug12 个
新增功能8 个
文档更新3 个

影响范围

类型数量
后端文件15+ 个
前端文件8+ 个
文档文件5+ 个
测试脚本3+ 个

代码变更

类型行数
新增代码约 2000 行
修改代码约 1500 行
删除代码约 500 行

十一、经验总结

1. 测试功能必须真实化

“假测试”会严重损害用户信任。

配置测试必须做到:

  • 真实连接。
  • 真实调用。
  • 真实验证。
  • 返回可理解的错误信息。

2. 环境变量回退非常重要

灵活的配置管理能显著提升开发和部署效率。

推荐配置优先级:

数据库配置 > 环境变量 > 默认值

3. 配置验证必须一致

如果不同按钮验证的数据来源不同,用户会困惑。

因此所有配置验证都应基于同一套最新配置状态。

4. 第三方 SDK 集成要谨慎

不同 SDK 的配置方式并不完全一致。

集成时需要:

  • 仔细阅读官方文档。
  • 查阅 GitHub Issues。
  • 增加详细日志。
  • 保持向后兼容。

5. 多市场数据架构要提前规划

支持 A 股、港股、美股 时,必须提前统一字段标准。

否则后续扩展时会面临大量迁移和重构成本。


十二、总结

本次 TradingAgents-CN v1.0.0-preview 更新,是一次围绕配置系统的系统性升级。

核心成果包括:

  • 将 大模型、数据源、数据库配置测试 改为真实测试。
  • 增加 环境变量回退机制。
  • 统一 重载配置 与 重新验证 的逻辑。
  • 完善 数据库配置管理 API。
  • 优化 API Key 删除与更新逻辑。
  • 支持 Google AI 自定义 base_url。
  • 设计 A 股、港股、美股多市场数据架构。
  • 修复 Docker 部署、前端动态导入、Google AI 测试模型等问题。

整体来看,这次更新显著提升了 TradingAgents-CN 的配置可靠性、部署灵活性和未来扩展能力,也为后续多市场数据支持打下了基础。

✅ 官方唯一渠道:📦 GitHub 仓库:https://github.com/hsliuping/TradingAgents-CN

Aekor AI-API 中转站,让全球顶尖 AI 大模型“触手可及”!你是否曾为这些烦恼头疼?

🔹 人在国内,却总被海外官网 API 的高延迟、掉线、甚至无法访问困扰?

🔹 想用最强的 GPT、Claude 等模型,却卡在海外信用卡、支付审核等重重阻碍?

🔹 官方 API 太贵?Aekor 为你打通“网络-支付-成本”的任督二脉!

💡 Aekor 核心价值:好用、便宜、快 💡

🚀 高速稳定,告别掉线国内专线加速,API 响应低延迟,告别「转圈圈」的焦虑,开发效率瞬间拉满!

🧠 顶尖模型,随需而调涵盖 GPT 系列、Claude 系列等全球主流大厂模型,一次接入,轻松调用!

🎁 免费白嫖,诚意拉满!

注册即送 20 美元体验额度,够你狠狠测试一轮模型质量与线路稳定性了!

🚪 入口:https://api.aekor.com

⚠️ 温馨提示:API 中转市场虽多但良莠不齐(甚至有些会偷工减料换小模型糊弄事儿)。Aekor 坚持提供正版稳定的服务,但还是建议:先用免费的 20 刀测试是否契合自身需求,满意了再小额充值上车,理性消费不盲目。

本作品采用 知识共享署名 4.0 国际许可协议 进行许可
标签: API Key管理 DashScope DeepSeek Docker部署 Google AI LLM配置测试 MongoDB配置 Redis配置 TradingAgents-CN Tushare配置 v1.0.0-preview 港股数据 美股数据
最后更新:2026-07-07

Aekor

这个人很懒,什么都没留下

点赞
< 上一篇
下一篇 >

文章评论

razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
取消回复

使用AI教程

  • API报错解决方案
  • API 基础知识
  • API Key 获取

分类

  • Blog
  • TradingAgents-CN
  • 使用教程

COPYRIGHT © 2026 Aekor. ALL RIGHTS RESERVED.