基于Deepseek我做了一个股票趋势分析多 Agent 系统

大家好,我是小C,很久没有更新文章了,今天给大家分享一个最近在做的项目“股票趋势分析系统”。

这个项目在github上开源的:https://github.com/young-1-code/StockAnalysisAssistant.git,大家看了以后如果觉得有用帮忙点下star。


先说个结论,这个系统不是一个 Prompt 工程项目

用户输入一句话:

分析比亚迪最近30天走势

系统会自动完成下面这些事情:

1. 识别“比亚迪”对应的股票代码
2. 获取最近 30 天历史行情
3. 获取当前实时行情快照
4. 计算 MA、MACD、RSI、布林带等技术指标
5. 结合模型生成自然语言分析
6. 输出 Markdown 格式的分析报告

听起来像一个“股票问答助手”。

但我实际想做的,不是一个问答机器人,而是一条完整的分析链路。

也就是说,这个项目的重点不是“会不会说”,而是“能不能把事情做完”。
  • 支持终端交互和web浏览器交互,如下图所示:

这篇文章就讲讲,这个项目是怎么做的。

为什么一定要拆成多个 Agent

这个项目里,我把职责拆成了 3 个 Agent。

1. Orchestrator Agent

这是总调度。

它负责:

  • 接收用户请求

  • 调用 Data Agent 拿数据

  • 调用 Analyst Agent 做分析

  • 汇总结果

  • 生成最终报告

它本身不负责取数,也不负责算指标。

这样做的目的很简单:

把流程控制和业务能力拆开。

以后你想替换数据源,或者更换分析模型,不需要改整个主流程。

———

2. Data Agent

这个 Agent 专门处理股票数据。

它做的事情包括:

  • 通过 AKShare 获取历史 K 线

  • 获取实时行情快照

  • 识别股票名称

  • 推断交易所信息

  • 判断当前市场状态

  • 标注行情时效性

  • 缓存交易日历,避免在线接口失败后完全不可用

这里面有一个我比较看重的点:

实时价和历史复权价不是一个口径。

很多系统分析股票时,直接把“当前价格”和“后复权收盘价”摆在一起比较,这其实很容易误导用户。

这个项目里,我把这些信息明确分开了:

  • 最新现价

  • 最新收盘价

  • 除权价参考

  • 抓取时间

  • 当前市场状态

  • 时效提示

你做工具的时候,这些细节不处理,后面问题都会回来找你。

———

3. Analyst Agent

这个 Agent 负责真正的趋势分析。

目前实现了这些指标:

  • MA5 / MA20 / MA60

  • MACD

  • RSI(14)

  • 布林带

在此基础上,系统会给出一个综合趋势判断:

  • 上涨趋势

  • 下跌趋势

  • 震荡整理

然后再调用 DeepSeek,把指标结果组织成更容易读的自然语言分析。

所以它不是把几组数字扔给用户,而是做了两层事情:

  1. 算指标

  2. 解释指标

这才是“分析 Agent”该做的事。

———

这个系统的结构其实不复杂

调用流程很直接:

用户 ↓ Orchestrator Agent ↓ Data Agent ↓ Analyst Agent ↓ Report Skill ↓ CLI / Web / MCP 输出

如果再翻译成人话,就是:

  • 用户提出分析请求

  • 调度 Agent 负责组织流程

  • 数据 Agent 负责拿数据

  • 分析 Agent 负责算指标和调用模型

  • 报告模块负责把结果整理成可读内容

这个结构最大的好处就是一句话:

谁干什么,非常清楚。

工程里很多问题不是算法难,而是边界不清。

边界不清,代码就会长成一团。

———

我没有只做命令行,还把 Web 和 MCP 一起接上了

如果一个项目只能在作者自己机器上的终端里跑,那它的可用性其实很有限。

所以这个项目我做了三个入口。

1. CLI

最直接的方式,适合调试和开发:

analyze 000001 60 分析 比亚迪 30 帮我分析一下比亚迪最近30天走势

项目里做了自然语言解析,所以不需要用户死记命令格式。

———

2. Web 控制台

除了 CLI,我还做了一个 Web 页面。

它支持:

  • 输入自然语言分析请求

  • 展示分析报告

  • 查看后端 Agent 在线状态

  • 保留最近分析记录

这部分的意义不只是“好看”,而是让系统变得更像一个真正可用的工具,而不是开发者自娱自乐的脚本。

———

3. MCP Server

这一层是我觉得很有价值的部分。

因为只要把能力暴露成 MCP 工具,这个项目就不再只是一个孤立应用,而是一个可以被其他 Agent 系统直接调用的能力模块。

目前已经提供了这些工具:

  • stock_history

  • stock_info

  • realtime_quote

  • technical_indicators

  • analysis_report

也就是说,如果你上层已经有一个智能体平台,这个系统可以直接接进去,不需要重新发明一套接口。

———

这个项目适合什么人参考

我觉得主要适合下面几类人。

1. 想做垂直领域 Agent 的开发者

如果你不满足于做一个“大模型问答壳”,而是想做真正能完成任务的 Agent 系统,这个项目有参考价值。

因为它不是单点能力,而是一条完整链路:

  • 输入解析

  • 任务编排

  • 数据获取

  • 技术分析

  • 模型生成

  • 多端输出

———

2. 想做金融 AI 原型的人

如果你在做:

  • 股票分析助手

  • 智能投研工具

  • 金融问答系统

  • 研究员辅助平台

这套结构是可以直接拿去改的。

———

3. 想把 MCP 真正用起来的人

很多人知道 MCP,但不知道怎么落地。

我自己的理解是:

不要为了 MCP 去做 MCP。先把能力拆清楚,再把能力挂出去。

这个项目就是按这个思路做的。

———

后面还能继续怎么扩展

这个系统现在已经能完整跑起来,但还远没到头。

后面可以继续做这些事情:

  • 增加更多技术指标,比如 KDJ、ATR、量价异动

  • 支持多股票横向对比

  • 增加策略回测

  • 增加任务持久化和历史记录管理

  • 接入企业微信、飞书、钉钉通知

  • 增加更完整的图表可视化

  • 支持 ETF、港股、美股

———

最后

这个项目做下来,我最大的感受就一句话:

AI 系统真正难的,往往不是模型本身。

模型只是其中一个环节。

真正决定系统质量的,通常是这些东西:

  • 模块怎么协作

  • 结果怎么组织

  • 能力怎么复用

如果这些事情没做好,模型再强,系统也容易乱。

反过来,如果结构清楚,哪怕先用一套不那么复杂的模型,整个项目也能很稳地往前长。

这也是我做这个股票趋势分析多 Agent 系统时,最想验证的一件事。

———

风险提示

本文介绍的项目主要用于技术实践、系统设计验证和趋势分析研究,不构成任何投资建议。市场有风险,决策需谨慎。

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐