基于Deepseek我做了一个股票趋势分析多 Agent 系统
基于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,把指标结果组织成更容易读的自然语言分析。
所以它不是把几组数字扔给用户,而是做了两层事情:
-
算指标
-
解释指标
这才是“分析 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 系统时,最想验证的一件事。
———
风险提示
本文介绍的项目主要用于技术实践、系统设计验证和趋势分析研究,不构成任何投资建议。市场有风险,决策需谨慎。
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐


所有评论(0)