FinRobot:一个基于大型语言模型的金融分析开源 AI 代理平台

文章详细介绍了 FinRobot 这一专为金融领域设计的 AI 代理平台。该平台超越了单一语言模型的局限,构建了包含代理层、算法层、运维层和基础模型层的四层架构。其核心工作流由感知、大脑(利用金融 CoT 进行推理)和行动三个模块组成,并配备智能调度器以优化模型选择。文章还提供了详细的安装指南和两个实战演示:市场走势预测及基于 10-K 报表的自动化财务报告生成,展示了 AI 代理在金融实务中的应用潜力。


原创 山行AI 2026-01-30 11:54 浙江

FinRobot:一个基于大型语言模型的金融分析开源 AI 代理平台

FinRobot 是一个超越 FinGPT 范畴的 AI 代理平台,代表了一个为金融应用精心设计的综合解决方案.

FinRobot 是一个超越 FinGPT 范畴的 AI 代理平台,代表了一个为金融应用精心设计的综合解决方案。它整合了多种 AI 技术,不仅限于语言模型。这个广阔的愿景突显了该平台的多样性和适应性,旨在满足金融行业的多元化需求。

AI 代理是一个智能实体,利用大型语言模型作为其“大脑”,感知环境、做出决策并执行行动。与传统的人工智能不同,AI 代理具备独立思考和利用工具逐步实现既定目标的能力。

FinRobot 白皮书[1]

FinRobot Pro — 一个AI驱动的股票研究平台: https://finrobot.ai/

FinRobot:一个基于大型语言模型的金融分析开源 AI 代理平台

什么是 FinRobot Pro?

FinRobot Pro[2]是一个由 AI 驱动的股票研究平台,利用大型语言模型(LLM)和 AI 代理自动化专业的股票分析。

主要特点:

自动化报告生成 – 即时生成专业的股票研究报告财务分析 – 深入分析利润表、资产负债表和现金流量表估值分析 – 市盈率(P/E)、企业价值/息税折旧摊销前利润倍数(EV/EBITDA)和同行对比风险评估 – 全面的投资风险评估

FinRobot 生态系统

FinRobot:一个基于大型语言模型的金融分析开源 AI 代理平台

FinRobot 的总体框架分为四个独立的层次,每个层次都旨在解决金融 AI 处理和应用的特定方面:

1.金融 AI 代理层:金融 AI 代理层现在包括金融链式思维(Financial Chain-of-Thought, CoT)提示,增强了复杂分析和决策能力。市场预测代理、文档分析代理和交易策略代理利用 CoT 将金融挑战分解为逻辑步骤,将其先进的算法和领域专长与金融市场的动态变化对接,提供精准、可操作的洞察。2.金融 LLMs 算法层:金融 LLMs 算法层配置并使用特别调整的模型,专门针对特定领域和全球市场分析进行优化。

3.LLMOps 和 DataOps 层:LLMOps 层实施多源集成策略,选择最适合特定金融任务的 LLMs,利用一系列最先进的模型。

4.多源 LLM 基础模型层:该基础层支持多种通用和专业 LLMs 的即插即用功能。

FinRobot:代理工作流程

FinRobot:一个基于大型语言模型的金融分析开源 AI 代理平台

1.感知模块:此模块捕获并解释来自市场数据流、新闻和经济指标的多模态金融数据,使用先进的技术将数据结构化,供进一步分析。2.大脑模块:作为核心处理单元,此模块通过 LLMs 从感知模块接收数据,并利用金融链式思维(CoT)过程生成结构化指令。3.行动模块:此模块执行来自大脑模块的指令,应用工具将分析洞察转化为可操作的成果。行动包括交易、投资组合调整、报告生成或发送警报,从而积极影响金融环境。

FinRobot:智能调度器

FinRobot:一个基于大型语言模型的金融分析开源 AI 代理平台

智能调度器是确保模型多样性并优化最合适 LLM(大型语言模型)集成和选择的核心组件。

主管代理:该组件负责协调任务分配过程,确保任务根据代理的性能指标和对特定任务的适应性进行分配。代理注册:管理代理的注册和可用性跟踪,促进高效的任务分配过程。代理适配器:将代理功能量身定制以适应特定任务,提升其性能并增强其在整个系统中的集成。任务管理器:管理并存储不同的基于 LLM 的通用和微调代理,这些代理针对各种金融任务进行定制,并定期更新以确保相关性和有效性。

安装步骤:

1.(推荐)创建一个新的虚拟环境

    conda create --name finrobot python=3.10
    conda activate finrobot

    2.使用终端下载 FinRobot 仓库,或手动下载

      git clone https://github.com/AI4Finance-Foundation/FinRobot.gitcd FinRobot

      3.从源代码或 PyPI 安装 FinRobot 及其依赖项 从 PyPI 获取最新版本:

      pip install -U finrobot

      或者直接从此仓库安装:

      pip install -e .

      4.修改 OAI_CONFIG_LIST_sample 文件

        将 OAI_CONFIG_LIST_sample 重命名为 OAI_CONFIG_LIST


        删除 OAI_CONFIG_LIST 文件中的四行注释


        添加您自己的OpenAI API 密钥<your OpenAI API key here>

        5.修改 config_api_keys_sample 文件

          将 config_api_keys_sample 重命名为 config_api_keys


          删除 config_api_keys 文件中的注释


          添加您自己的Finnhub API 密钥 YOUR_FINNHUB_API_KEY


          添加您自己的FinancialModelingPrep和 SEC API 密钥 YOUR_FMP_API_KEY 和 YOUR_SEC_API_KEY(用于生成财务报告)

          6.开始浏览以下教程或示例

            在教程中找到以下 notebooks:
            agent_annual_report.ipynb


            agent_fingpt_forecaster.ipynb


            agent_trade_strategist.ipynb


            lmm_agent_mplfinance.ipynb


            lmm_agent_opt_smacross.ipynb

            演示

            1. 市场预测代理 (预测股票价格走势方向)

            输入公司的股票代码、最近的基本财务数据和市场新闻,并预测股票的价格走势。

            1.导入

              import autogen
              from finrobot.utils import get_current_date, register_keys_from_json
              from finrobot.agents.workflow importSingleAssistant

              2.配置

                # 从 JSON 文件中读取 OpenAI API 密钥
                llm_config ={
                "config_list": autogen.config_list_from_json(
                "../OAI_CONFIG_LIST",
                        filter_dict={"model":["gpt-4-0125-preview"]},
                ),
                "timeout":120,
                "temperature":0,
                }


                # 注册 FINNHUB API 密钥
                register_keys_from_json("../config_api_keys")

                3.执行

                  company ="NVDA"


                  assitant =SingleAssistant(
                  "Market_Analyst",
                      llm_config,
                  # 如果您想进行对话而不仅仅是接收预测,请设置为 "ALWAYS"
                      human_input_mode="NEVER",
                  )
                  assitant.chat(
                      f"利用提供的所有工具获取 {company} 在 {get_current_date()} 的可用信息。分析 {company} 的积极发展和潜在问题,"
                  "每个方面列出 2-4 个最重要的因素并保持简洁。大部分因素应从与公司相关的新闻中推测。"
                      f"然后对 {company} 股票价格在下周的走势做一个大致的预测(例如,涨/跌 2-3%)。并提供支持预测的总结分析。"
                  )

                  4.结果

                  FinRobot:一个基于大型语言模型的金融分析开源 AI 代理平台

                  2. 财务分析代理用于报告写作 (股票研究报告)

                  输入公司的10-K表格、财务数据和市场数据,输出一份股票研究报告。

                  1.导入

                    import os
                    import autogen
                    from textwrap import dedent
                    from finrobot.utils import register_keys_from_json
                    from finrobot.agents.workflow importSingleAssistantShadow

                    2.配置

                      llm_config ={
                      "config_list": autogen.config_list_from_json(
                      "../OAI_CONFIG_LIST",
                              filter_dict={
                      "model":["gpt-4-0125-preview"],
                      },
                      ),
                      "timeout":120,
                      "temperature":0.5,
                      }


                      register_keys_from_json("../config_api_keys")


                      # 中间策略模块将保存在此目录中
                      work_dir ="../report"
                      os.makedirs(work_dir, exist_ok=True)

                      3.执行

                        assistant =SingleAssistantShadow(
                        "Expert_Investor",
                            llm_config,
                            max_consecutive_auto_reply=None,
                            human_input_mode="TERMINATE",
                        )
                        company ="Microsoft"
                        fyear ="2023"


                        message = dedent(
                            f"""
                        使用您所提供的工具,基于{company}的{fyear}年度10-K报告撰写一份年度报告,并将其格式化为PDF。
                        请注意以下事项:
                        -在开始之前明确解释您的工作计划。
                        -一步一步使用工具,特别是在请求指令时要清晰。
                        -所有的文件操作应在"{work_dir}"目录下进行。
                        -一旦生成图像,请在聊天中显示。
                        -所有段落应控制在400到450个字之间,直到明确完成这一要求之前,请勿生成PDF。
                        """
                        )


                        assistant.chat(message, use_cache=True, max_turns=50, summary_method="last_msg")

                        4.结果

                        FinRobot:一个基于大型语言模型的金融分析开源 AI 代理平台

                        FinRobot:一个基于大型语言模型的金融分析开源 AI 代理平台

                        财务推理链

                        1.收集初步数据:10-K报告,市场数据,财务比率2.分析财务报表:资产负债表,损益表,现金流量表3.公司概况与表现:公司简介, 业务亮点,细分分析4.风险评估: 评估公司风险5.财务表现可视化:绘制市盈率(PE Ratio)和每股收益(EPS)6.综合分析与总结:将所有部分整合成一个连贯的总结段落7.生成PDF报告:使用工具自动生成PDF文件8.质量保证:检查字数是否符合要求

                          https://github.com/AI4Finance-Foundation/FinRobot?tab=readme-ov-file

                          References

                          [1] FinRobot 白皮书: https://arxiv.org/abs/2405.14767
                          [2] FinRobot Pro: https://finrobot.ai/login 

                          阅读原文

                          跳转微信打开

                          AI 前线

                          地球装不下他的野心了:马斯克造出 1.5 万亿美元“缝合怪”,火箭捆绑 AI 暴力 IPO

                          2026-1-31 18:11:54

                          AI 前线

                          1 篇搞懂 AI 通识:大白话拆解核心点

                          2026-1-31 18:12:00

                          0 条回复 A文章作者 M管理员
                            暂无讨论,说说你的看法吧
                          个人中心
                          购物车
                          优惠劵
                          今日签到
                          有新私信 私信列表
                          搜索