[ blog · tutorial ]12 min read

如何构建投资研究 Agent:用一个 API 打通行情、基本面、SEC 与经济数据

Sarah Choy发布于 2026年6月16日约 12 分钟阅读
如何构建投资研究 Agent:用一个 API 打通行情、基本面、SEC 与经济数据

一个投资研究 Agent 需要五个不同的数据层——价格、基本面、申报文件、宏观与新闻——而每一层通常都意味着一家独立的供应商、一把密钥和一套 schema。本文教你如何把这五层全部接到同一组端点之后,附带可运行代码与成本测算。

一句话总结

  • 一个有用的金融 Agent 需要五个数据层:实时行情(价格)、公司基本面(报表)、SEC 申报文件、经济指标与新闻。如果从各家供应商拼起来,那就是 5 份合同、5 把密钥、5 套 schema。
  • API Pick 把这五层全部暴露为一致的 JSON 搜索端点——/search/markets、/search/financials、/search/sec、/search/economic、/search/news——外加用于获取完整文档的 /extract。一把密钥,且已为 LLM 工具调用预先成形。
  • Agent 范式:把相关端点作为工具并行调用,合并 JSON,让模型基于有据可查的数据推理,而不是凭空编造数字。
  • Credit 计费只在成功时收取:每次调用 markets 120、financials 200、sec 120、economic 50、news 15。一次典型的多工具研究回合,视深度不同,成本远低于 $0.01–$0.10。
  • 自建 vs. 采购:自己把 Polygon + 某家基本面供应商 + SEC EDGAR + FRED + 某个新闻 API 拼起来,是好几周的集成工作和 5 份月度账单;而单端点路线只需一天。

五层难题

问一个 LLM「NVIDIA 现在贵不贵?」,它会信心十足地编出一个市盈率。解法不是换个更大的模型——而是「接地(grounding)」。一个能赢得信任的研究 Agent,必须跨五个层拉取实时、可引用的数据,然后据此推理:

  • 行情——当前价格、市值,以及它的走势。在相关时还包括加密货币、外汇、ETF 与当日涨跌幅榜。
  • 基本面——资产负债表、利润表、现金流量表、分红与内部人交易。这是「这门生意到底健不健康」的一层。
  • SEC 申报文件——10-K 的风险因素、10-Q 的细节、8-K 的事件、财报电话会议的措辞。这是数字遗漏掉的定性维度。
  • 经济指标——来自 FRED、BLS、世界银行与 IMF 的利率、通胀、就业、GDP。这是每一个投资逻辑所处的宏观背景。
  • 新闻——有时效性的催化剂:一次评级下调、一款产品发布、一项监管行动。

若从各家供应商拼起来,那就是五份合同、五把 API 密钥、五种限流机制,以及五种你必须在模型能碰之前先归一化的响应 schema。金融 Agent 项目卡壳的地方,正是这块集成。

一组端点,五个层

API Pick 把每一层都暴露为一致的 JSON 搜索端点,于是 Agent 只需面对一把密钥和一种响应结构:

  • Markets Search——全球与美国股票、加密货币、外汇、ETF、基金、大宗商品,以及美股涨跌幅榜。
  • Financials Search——资产负债表、利润表、现金流量表、分红、内部人交易。
  • SEC Filings Search——10-K/10-Q/8-K、财报电话会议记录、权益统计。
  • Economic Data Search——FRED、BLS、世界银行、IMF、USAspending、Destatis。
  • News Search——跨主流媒体、可按日期过滤的新闻。
  • Extract——当片段不够用时,把一份完整申报文件或文章拉取为干净的 markdown。

Agent 架构

把每个端点注册成一个工具。问题进来时,Agent 决定它需要哪些层,并行调用它们,合并 JSON,再基于这份有据可查的结果推理。一个针对股票代码的问题命中 markets + 基本面 + 新闻;一个「这个行业当下定位如何」的问题命中 economic + 新闻 + 几个可比公司。

import asyncio, httpx, os

API = "https://api.apipick.com/v1"
HEADERS = {"x-api-key": os.environ["APIPICK_KEY"], "Content-Type": "application/json"}

async def search(client, path, query, **kw):
    r = await client.post(f"{API}/{path}", headers=HEADERS,
                          json={"query": query, **kw})
    r.raise_for_status()
    return r.json()["results"]

async def research(ticker: str):
    async with httpx.AsyncClient(timeout=30) as c:
        markets, fundamentals, filings, macro, news = await asyncio.gather(
            search(c, "search/markets",    f"{ticker} price and market cap"),
            search(c, "search/financials", f"{ticker} latest balance sheet and cash flow"),
            search(c, "search/sec",        f"{ticker} 10-K risk factors", end_date="2026-06-16"),
            search(c, "search/economic",   "US interest rates and inflation latest"),
            search(c, "search/news",       f"{ticker} latest news", end_date="2026-06-16"),
        )
    return {"markets": markets, "fundamentals": fundamentals,
            "filings": filings, "macro": macro, "news": news}

# Feed the merged JSON back to your LLM as grounding, with the source URLs,
# and ask it to synthesize — never to recall numbers.
context = asyncio.run(research("NVDA"))

每条结果都带有一个 source URL。把这些 URL 一路透传到最终答案里,让人类可以审计每一条主张——也让 Agent 的输出可被引用,而这正是它在真实工作流里有用的关键。

自建 vs. 采购

自己拼起来API Pick
供应商 / 密钥约 5 家(Polygon、基本面、EDGAR、FRED、新闻)1
响应结构5 种待归一化1 种 JSON 结构
首个 Agent 上线耗时数周集成一天
计费5 份月度订阅按调用,只在成功时计
面向 LLM每一种都要你预先成形预成形片段 + 来源 URL

对单一数据类型而言,直连是合理的。但对于一个需要全部五层、且探索路径难以预测的 Agent 来说,单端点路线一天就能上线,而且只在调用成功时计费。

这能解锁什么

同样这五个工具,能驱动的远不止股票代码查询:财报季简报 Agent、扎根于基本面的行业筛选、有宏观意识的组合点评,以及通过 Extract 真正读取 10-K 的尽调助手。范式始终一致——有据可查的工具调用、并行检索、在附带来源的真实数据之上做综合。

先用一把免费密钥起步(100 credits,无需绑卡),把这五个工具接进你选用的 Agent 框架。从那之后,剩下的是提示词工程,而不是管道铺设。

常见问题

一个投资研究 Agent 究竟需要哪些数据?

五个层。(1) 实时行情——价格、加密货币、外汇、ETF、涨跌幅榜,用来回答「它现在怎么样」。(2) 基本面——资产负债表、利润表、现金流量表、分红、内部人交易。(3) SEC 申报文件——10-K/10-Q/8-K 文本与财报电话会议记录,提供定性信号。(4) 经济指标——FRED、BLS、世界银行、IMF,构成宏观背景。(5) 新闻——有时效性的催化事件。多数 Agent 失败,是因为它们有价格却没有基本面,或者有基本面却没有宏观背景。

为什么不直接调用 Polygon、FRED 和 SEC EDGAR?

你可以这么做——而且对于单一数据类型,这完全没问题。痛点在于 Agent 需要全部五种:那就是五家供应商、五套鉴权方案、五种限流机制、五种你必须先归一化才能喂给 LLM 的响应结构,以及五份账单。单端点路线用一点点单次调用溢价,换来一把密钥、一套 JSON 结构,以及只在成功时计费——对于一个做探索式多工具调用的 Agent 来说,这通常既更便宜、也是上线快得多的路径。

怎样避免 LLM 编造财务数字?

绝不让模型凭记忆生成数字。把每个数据源做成一个工具,强制 Agent 调用该工具,再把返回的 JSON 作为依据传回去。模型的职责是在检索到的数值之上推理与综合,而不是去回忆它们。在每条结果里都引用其来源 URL,让输出可被审计——这也正是答案能让人类复核者信任的原因。

这些输出适合用于实际交易或投资建议吗?

不适合。检索 API 的输出属于信息性内容。它让分析师或 Agent 的推理扎根于真实数据;它不是投资建议,在没有合格人员和完善风控的情况下,绝不能用作自动化交易信号。请把 Agent 当作研究的加速器,而不是决策者。

一次研究回合要花多少钱?

按成功调用计费:markets 120 credits、financials 200、sec 120、economic 50、news 15(1000 credits ≈ $1)。一次聚焦的回合若命中 markets + 基本面 + 新闻,约 335 credits(约 $0.34);一次更轻的宏观 + 新闻回合约 65 credits。只在 HTTP 200 时付费,因此失败或空结果的调用不收费——当 Agent 在做探索时,这一点很关键。

本文涉及的 API

Sarah Choy
作者
Sarah Choy
CEO, API Pick

Sarah Choy 是 API Pick 的 CEO,专注于为 AI Agent 与 LLM 工作流构建可用于生产的 API。