[ blog · tutorial ]12 min read

Cara Membangun Agen Riset Investasi: Pasar, Fundamental, SEC & Data Ekonomi dalam Satu API

Sarah ChoyDiterbitkan 16 Juni 202612 menit baca
Cara Membangun Agen Riset Investasi: Pasar, Fundamental, SEC & Data Ekonomi dalam Satu API

Agen riset investasi membutuhkan lima lapisan data berbeda — harga, fundamental, filing, makro, dan berita — masing-masing biasanya vendor, key, dan schema terpisah. Berikut cara menyambungkan kelimanya di balik satu set endpoint, dengan kode yang berfungsi dan perhitungan biayanya.

TL;DR

  • Agen keuangan yang berguna membutuhkan lima lapisan data: pasar real-time (harga), fundamental perusahaan (laporan keuangan), filing SEC, indikator ekonomi, dan berita. Dirangkai dari vendor terpisah berarti 5 kontrak, 5 key, dan 5 schema.
  • API Pick mengekspos kelimanya sebagai endpoint pencarian JSON yang konsisten — /search/markets, /search/financials, /search/sec, /search/economic, /search/news — plus /extract untuk dokumen lengkap. Satu key, sudah disiapkan untuk tool calling LLM.
  • Pola agen: jalankan endpoint yang relevan secara paralel sebagai tools, gabungkan JSON-nya, dan biarkan model bernalar di atas data yang ter-grounding alih-alih mengarang angka.
  • Harga credit hanya-saat-berhasil: markets 120, financials 200, sec 120, economic 50, news 15 per panggilan. Sebuah giliran riset multi-tool tipikal berbiaya jauh di bawah $0.01–$0.10 tergantung kedalaman.
  • Build-vs-buy: merakit sendiri Polygon + vendor fundamental + SEC EDGAR + FRED + sebuah API berita adalah berminggu-minggu integrasi dan 5 tagihan bulanan; jalur satu endpoint cukup satu hari.

Masalah lima lapisan

Tanyakan ke LLM "apakah NVIDIA mahal sekarang?" dan ia akan mengarang rasio P/E dengan penuh percaya diri. Solusinya bukan model yang lebih besar — melainkan grounding. Agen riset yang memperoleh kepercayaan harus menarik data langsung dan terkutip di lima lapisan, lalu bernalar di atasnya:

  • Pasar — harga saat ini, kapitalisasi pasar, dan bagaimana pergerakannya. Kripto, forex, ETF, dan penggerak terbesar hari itu bila relevan.
  • Fundamental — neraca, laporan laba rugi, arus kas, dividen, dan transaksi insider. Lapisan "apakah bisnisnya benar-benar sehat".
  • Filing SEC — faktor risiko 10-K, detail 10-Q, peristiwa 8-K, bahasa earnings call. Dimensi kualitatif yang terlewat oleh angka.
  • Indikator ekonomi — suku bunga, inflasi, ketenagakerjaan, PDB dari FRED, BLS, World Bank, dan IMF. Latar makro tempat setiap tesis bersandar.
  • Berita — katalis yang tepat waktu: sebuah downgrade, peluncuran produk, tindakan regulasi.

Dirangkai dari vendor terpisah, itu berarti lima kontrak, lima key API, lima rezim rate-limit, dan lima schema respons yang harus Anda normalisasi sebelum sebuah model bisa menyentuhnya. Integrasi inilah tempat proyek agen keuangan mandek.

Satu set endpoint, lima lapisan

API Pick mengekspos setiap lapisan sebagai endpoint pencarian JSON yang konsisten, sehingga agen berbicara dengan satu key dan satu bentuk respons:

  • Markets Search — ekuitas global & AS, kripto, forex, ETF, reksa dana, komoditas, dan penggerak pasar AS.
  • Financials Search — neraca, laporan laba rugi, arus kas, dividen, transaksi insider.
  • SEC Filings Search — 10-K/10-Q/8-K, transkrip earnings, statistik ekuitas.
  • Economic Data Search — FRED, BLS, World Bank, IMF, USAspending, Destatis.
  • News Search — berita terfilter tanggal dari media-media besar.
  • Extract — tarik filing atau artikel lengkap ke markdown bersih saat cuplikan tidak cukup.

Arsitektur agen

Daftarkan setiap endpoint sebagai sebuah tool. Ketika sebuah pertanyaan masuk, agen memutuskan lapisan mana yang dibutuhkan, memanggilnya secara paralel, menggabungkan JSON, dan bernalar di atas hasil yang ter-grounding. Pertanyaan tentang ticker menyentuh markets + fundamental + berita; pertanyaan "bagaimana posisi sektornya" menyentuh economic + berita + beberapa pembanding.

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"))

Setiap hasil membawa sebuah URL source. Teruskan ini ke jawaban akhir agar manusia dapat mengaudit setiap klaim — dan agar output agen dapat dikutip, yang membuatnya berguna dalam alur kerja nyata.

Build vs. buy

Rakit sendiriAPI Pick
Vendor / key~5 (Polygon, fundamental, EDGAR, FRED, berita)1
Bentuk respons5 untuk dinormalisasi1 bentuk JSON
Waktu hingga agen pertamaBerminggu-minggu integrasiSatu hari
Penagihan5 langganan bulananPer panggilan, hanya saat berhasil
Siap-LLMAnda menyiapkan tiap satunyaCuplikan tersiapkan + URL sumber

Untuk satu jenis data, langsung saja masuk akal. Untuk agen yang membutuhkan kelimanya dan menjelajah secara tak terduga, jalur satu endpoint dirilis dalam sehari dan hanya menagih ketika sebuah panggilan berhasil.

Apa yang ini buka

Lima tool yang sama menggerakkan lebih dari sekadar lookup ticker: agen briefing musim earnings, screen sektor yang ter-grounding pada fundamental, komentar portofolio yang sadar makro, dan asisten due diligence yang membaca 10-K sebenarnya via Extract. Polanya selalu sama — panggilan tool yang ter-grounding, retrieval paralel, sintesis di atas data nyata dengan sumber terlampir.

Mulailah dengan key gratis (100 credit, tanpa kartu) dan sambungkan kelima tool ke framework agen pilihan Anda. Dari sana ini adalah rekayasa prompt, bukan urusan pipa.

Pertanyaan yang Sering Diajukan

Data apa yang sebenarnya dibutuhkan agen riset investasi?

Lima lapisan. (1) Pasar real-time — harga, kripto, forex, ETF, penggerak terbesar, untuk pertanyaan 'sedang bagaimana sekarang'. (2) Fundamental — neraca, laporan laba rugi, arus kas, dividen, transaksi insider. (3) Filing SEC — teks 10-K/10-Q/8-K dan transkrip earnings untuk sinyal kualitatif. (4) Indikator ekonomi — FRED, BLS, World Bank, IMF untuk latar makro. (5) Berita — katalis yang tepat waktu. Kebanyakan agen gagal karena punya harga tapi tidak punya fundamental, atau punya fundamental tapi tidak punya konteks makro.

Mengapa tidak memanggil Polygon, FRED, dan SEC EDGAR langsung saja?

Bisa saja — dan untuk satu jenis data itu baik-baik saja. Masalahnya, agen membutuhkan kelima-limanya: itu berarti lima vendor, lima skema auth, lima rezim rate-limit, lima bentuk respons yang harus Anda normalisasi sebelum LLM bisa menggunakannya, dan lima tagihan. Pendekatan satu endpoint menukar sedikit premi per panggilan dengan satu key, satu bentuk JSON, dan penagihan hanya-saat-berhasil — yang bagi agen yang melakukan panggilan eksploratif multi-tool biasanya adalah jalur yang lebih murah dan jauh lebih cepat untuk dirilis.

Bagaimana cara mencegah LLM mengarang angka keuangan?

Jangan pernah biarkan model menghasilkan angka dari ingatan. Jadikan setiap sumber data sebuah tool, paksa agen memanggilnya, dan kembalikan JSON yang dikembalikan sebagai grounding. Tugas model adalah bernalar dan mensintesis di atas nilai yang diambil, bukan mengingatnya. Kutip URL sumber dari setiap hasil agar output dapat diaudit — itu juga yang membuat jawaban dapat dipercaya bagi peninjau manusia.

Apakah output cocok untuk trading atau nasihat sebenarnya?

Tidak. Output API retrieval bersifat informatif. Ia meng-grounding penalaran seorang analis atau agen pada data nyata; ia bukan nasihat investasi dan tidak boleh digunakan sebagai sinyal trading otomatis tanpa manusia yang berkualifikasi dan kontrol risiko yang memadai. Perlakukan agen sebagai akselerator riset, bukan pengambil keputusan.

Berapa biaya satu giliran riset?

Penagihan adalah per panggilan yang berhasil: markets 120 credit, financials 200, sec 120, economic 50, news 15 (1000 credit ≈ $1). Sebuah giliran terfokus yang menyentuh markets + fundamental + berita sekitar ~335 credit (~$0.34); giliran makro+berita yang lebih ringan sekitar ~65 credit. Anda hanya membayar pada HTTP 200, jadi panggilan yang gagal atau kosong tidak berbiaya apa pun — hal yang penting ketika agen menjelajah.

API yang digunakan dalam artikel ini

Sarah Choy
Ditulis oleh
Sarah Choy
CEO, API Pick

Sarah Choy adalah CEO API Pick. Ia menulis tentang membangun API siap produksi untuk AI agent dan alur kerja LLM.