如何打造投資研究 Agent:把市場、基本面、SEC 與經濟數據整合進單一 API

一個投資研究 Agent 需要五種不同的資料層 —— 價格、基本面、申報文件、總體經濟與新聞 —— 每一種通常都是獨立的廠商、金鑰與結構。這篇講的是如何把這五層全部接到同一組端點背後,附上可運作的程式碼與成本帳。
一句話總結
- •一個好用的金融 Agent 需要五種資料層:即時市場(價格)、公司基本面(財務報表)、SEC 申報文件、經濟指標與新聞。從各別廠商拼起來,就是 5 份合約、5 把金鑰、5 種結構。
- •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、World Bank 與 IMF 的利率、通膨、就業、GDP。這是每一套論點所處的總體經濟背景。
- 新聞 —— 具時效性的催化事件:一次評等調降、一場產品發表、一項監管行動。
從各別廠商拼起來,那就是五份合約、五把 API 金鑰、五種速率限制規則,以及五種你得先正規化、模型才碰得到的回應結構。整合這一步,正是金融 Agent 專案卡關的地方。
一組端點,五層資料
API Pick 把每一層都做成一致的 JSON 搜尋端點,讓 Agent 只需要面對一把金鑰、一種回應結構:
- Markets Search —— 全球與美國股票、加密貨幣、外匯、ETF、基金、大宗商品,以及美股漲跌榜。
- Financials Search —— 資產負債表、損益表、現金流、股利、內部人交易。
- SEC Filings Search —— 10-K/10-Q/8-K、財報電話會議逐字稿、股權統計。
- Economic Data Search —— FRED、BLS、World Bank、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。把這些一路傳到最終答案,讓人類可以稽核每一項主張 —— 也讓 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、World Bank、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 是 API Pick 的 CEO,專注於為 AI Agent 與 LLM 工作流打造可用於正式環境的 API。