投資リサーチエージェントの作り方:マーケット・ファンダメンタルズ・SEC・経済データを 1 つの API で

投資リサーチエージェントには 5 つのデータレイヤーが必要だ — 価格、ファンダメンタルズ、提出書類、マクロ、ニュース — そのどれもが通常は別々のベンダー、API キー、スキーマになる。この 5 つすべてを 1 つのエンドポイント群の裏側で配線する方法を、動くコードとコスト計算とともに示す。
要点
- •実用的な金融エージェントには 5 つのデータレイヤーが要る:リアルタイムのマーケット(価格)、企業ファンダメンタルズ(財務諸表)、SEC 提出書類、経済指標、ニュース。別々のベンダーから繋ぎ合わせると、契約 5 つ・キー 5 つ・スキーマ 5 つになる。
- •API Pick はこの 5 つすべてを一貫した JSON 検索エンドポイントとして公開する — /search/markets、/search/financials、/search/sec、/search/economic、/search/news — に加え、全文取得用の /extract も。キー 1 つで、LLM のツール呼び出し向けに整形済みだ。
- •エージェントのパターン:関連するエンドポイントをツールとして並列で実行し、JSON をマージし、数値をハルシネーションさせる代わりに根拠あるデータの上でモデルに推論させる。
- •credit 課金は成功時のみ:1 回あたり markets 120、financials 200、sec 120、economic 50、news 15。典型的なマルチツールのリサーチ 1 ターンは深さに応じて $0.01〜$0.10 を十分に下回る。
- •内製 vs 外注:Polygon + ファンダメンタルズベンダー + SEC EDGAR + FRED + ニュース API を自前で組み立てると、数週間の統合作業と毎月 5 件の請求になる。単一エンドポイント方式なら 1 日だ。
5 レイヤー問題
LLM に「NVIDIA は今、割高か?」と尋ねれば、自信たっぷりに PER をでっち上げる。直し方はより大きなモデルではない — 根拠づけだ。信頼を勝ち取るリサーチエージェントは、5 つのレイヤーにまたがってライブで引用可能なデータを引き、その上で推論しなければならない:
- マーケット — 現在の株価、時価総額、そしてどう動いたか。関連する場合は暗号資産、為替、ETF、その日の値動きの大きい銘柄も。
- ファンダメンタルズ — 貸借対照表、損益計算書、キャッシュフロー、配当、インサイダー取引。「事業は実際に健全か」のレイヤーだ。
- SEC 提出書類 — 10-K のリスクファクター、10-Q の詳細、8-K のイベント、決算説明会の言葉。数値が取りこぼす定性的な次元だ。
- 経済指標 — FRED、BLS、World Bank、IMF からの金利、インフレ、雇用、GDP。あらゆる投資仮説が内側に収まるマクロの背景だ。
- ニュース — タイミングを左右するカタリスト:格下げ、製品ローンチ、規制当局の措置。
別々のベンダーから繋ぎ合わせると、これは契約 5 つ、API キー 5 つ、レート制限の体系 5 つ、そしてモデルが触れる前に正規化しなければならないレスポンススキーマ 5 つになる。金融エージェントのプロジェクトが行き詰まるのは、この統合のところだ。
1 つのエンドポイント群、5 つのレイヤー
API Pick は各レイヤーを一貫した JSON 検索エンドポイントとして公開する。だからエージェントはキー 1 つ、レスポンス形状 1 つと対話すればいい:
- 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 で取得する。
エージェントのアーキテクチャ
各エンドポイントをツールとして登録する。質問が来ると、エージェントは必要なレイヤーを判断し、それらを並列で呼び出し、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 を持つ。それらを最終的な答えまで通せば、人間がすべての主張を監査でき — そしてエージェントのアウトプットが引用可能になる。それこそ、実際のワークフローで役立つものにする条件だ。
内製 vs 外注
| 自前で組み立てる | API Pick | |
|---|---|---|
| ベンダー / キー | 約 5(Polygon、ファンダメンタルズ、EDGAR、FRED、ニュース) | 1 |
| レスポンス形状 | 5 つを正規化 | JSON 形状 1 つ |
| 最初のエージェントまでの時間 | 数週間の統合作業 | 1 日 |
| 課金 | 月額サブスク 5 件 | 1 回あたり、成功時のみ |
| LLM 対応 | 各々を自前で整形 | 整形済みスニペット + ソース URL |
単一のデータ種別なら、直接叩くのは妥当だ。5 つすべてが必要で予測不能に探索するエージェントなら、単一エンドポイント方式は 1 日で出荷でき、呼び出しが成功したときだけ課金される。
これで何が可能になるか
同じ 5 つのツールは、ティッカー検索以上のものを動かす:決算シーズンのブリーフィングエージェント、ファンダメンタルズに根拠づけたセクタースクリーニング、マクロを踏まえたポートフォリオコメンタリー、そして Extract 経由で実際の 10-K を読むデューデリジェンスアシスタント。パターンはいつも同じ — 根拠あるツール呼び出し、並列の検索、ソースを添えた実データ上での統合だ。
無料キー(100 credits、カード不要)から始め、お好みのエージェントフレームワークに 5 つのツールを配線しよう。そこから先は配管ではなく、プロンプトエンジニアリングだ。
よくある質問
投資リサーチエージェントには実際どんなデータが必要か?
5 つのレイヤーだ。(1) リアルタイムのマーケット — 価格、暗号資産、為替、ETF、値動きの大きい銘柄。「今どうなっているか」という問いに答える。(2) ファンダメンタルズ — 貸借対照表、損益計算書、キャッシュフロー、配当、インサイダー取引。(3) SEC 提出書類 — 10-K・10-Q・8-K の本文と決算説明会トランスクリプトによる定性的シグナル。(4) 経済指標 — マクロの背景としての FRED、BLS、World Bank、IMF。(5) ニュース — タイミングを左右するカタリスト。多くのエージェントが失敗するのは、価格はあってもファンダメンタルズがない、あるいはファンダメンタルズはあってもマクロの文脈がないからだ。
Polygon、FRED、SEC EDGAR を直接叩けばいいのでは?
それでもいい — 単一のデータ種別ならそれで問題ない。つらいのは、エージェントには5 つすべてが必要だという点だ:ベンダー 5 つ、認証方式 5 つ、レート制限の体系 5 つ、LLM が使う前に正規化しなければならないレスポンス形状 5 つ、そして請求 5 件。単一エンドポイント方式は、わずかな 1 回あたりの上乗せと引き換えに、キー 1 つ・JSON 形状 1 つ・成功時のみ課金を手に入れる — 探索的にマルチツール呼び出しを行うエージェントにとっては、たいていこちらの方が安く、はるかに速く出荷できる道だ。
LLM が金融の数値をハルシネーションするのをどう避けるか?
モデルに記憶から数値を生成させないこと。各データソースをツールにし、エージェントにそのツールを呼ばせ、返ってきた JSON を根拠として渡す。モデルの仕事は、取得した値の上で推論し統合することであって、それを思い出すことではない。各結果のソース URL を引用させればアウトプットは監査可能になる — それが人間のレビュアーにとって信頼できる答えにする条件でもある。
このアウトプットは実際の取引や助言に使えるか?
いいえ。検索 API のアウトプットは情報提供だ。アナリストやエージェントの推論を実データで根拠づけるものであって、投資助言ではなく、資格を持つ人間と適切なリスク管理なしに自動売買のシグナルとして使ってはならない。エージェントは意思決定者ではなく、リサーチの加速装置として扱うこと。
リサーチ 1 ターンのコストは?
成功した呼び出しごとに課金される:markets 120 credits、financials 200、sec 120、economic 50、news 15(1000 credits ≈ $1)。markets + ファンダメンタルズ + ニュースを叩く絞り込んだ 1 ターンは約 335 credits(約 $0.34)、より軽いマクロ+ニュースの 1 ターンは約 65 credits。課金は HTTP 200 のときだけなので、失敗や空の呼び出しはコストゼロ — エージェントが探索する場面ではこれが効いてくる。
この記事で使われている API
API Pick の CEO。AI エージェントと LLM ワークフロー向けの本番運用可能な API について執筆。