DEV Community

Cover image for TradingAgents'ı Gerçek Bir Trading API İş Akışına Dönüştürme
Tobias Hoffmann
Tobias Hoffmann

Posted on • Originally published at apidog.com

TradingAgents'ı Gerçek Bir Trading API İş Akışına Dönüştürme

TL;DR / Hızlı Cevap

TradingAgents'ı kullanmanın en hızlı yolu: Python paketi olarak kurun, küçük bir FastAPI servisine sarın ve bu servisi Apidog üzerinde test edin. Bu şekilde analizleri tetikleyebilir, sonuçları sorgulayabilir, istek sözleşmesini belgeleyebilir ve kurulumu ekibinizle paylaşabilirsiniz.

Apidog'u bugün deneyin

Giriş

TradingAgents projesi, çoklu ajan ticaret iş akışı, gelişmiş bir CLI ve farklı model sağlayıcılarını destekleyen açık kaynaklı bir çerçevedir. Ancak, gerçek dünyada ekip iş akışına entegre etmek için kullanımı başlangıçta karmaşık olabilir.

Çoğu ekip, analizleri tetiklemek, hisse senedi kodu ve tarih göndermek, bir iş kimliği almak, sonucu daha sonra incelemek ve iş akışını herkesin erişebileceği şekilde paylaşmak ister. TradingAgents'ı kontrollü ve belgelenmiş bir API'ye sarmak, tekrarlanabilir ve ekip bazlı iş akışı için gereklidir.

💡Apidog bu iş akışına doğal olarak uyar. OpenAPI şemasını FastAPI'den içe aktarabilir, ortamları yönetebilir, yanıtlardan değişkenler çıkarabilir, sorgulama isteklerini senaryoya zincirleyebilir ve ekibiniz için belgeler oluşturabilirsiniz.

TradingAgents Nedir ve Ne Değildir?

Kodlamaya başlamadan önce, TradingAgents'ı doğru konumlandırmak önemlidir.

TradingAgents nedir ve ne değildir

TradingAgents açık kaynaklı çoklu ajanlı bir ticaret çerçevesidir. Bir ticaret firmasındaki rolleri modelleyen uzmanlaşmış ajanlar içerir:

  • Temel, duyarlılık, haber ve teknik analistler
  • Yükseliş/düşüş araştırmacıları
  • Tüccar ajanı
  • Risk yönetimi rolleri
  • Portföy yöneticisi

TradingAgents'taki çoklu ajan rolleri

Çerçeve, LangGraph ile inşa edilmiştir ve OpenAI, Google, Anthropic, xAI, OpenRouter, Ollama gibi birden fazla model sağlayıcıyı destekler. Varsayılan ayarlar örneği:

  • llm_provider = "openai"
  • deep_think_llm = "gpt-5.2"
  • quick_think_llm = "gpt-5-mini"
  • backend_url = "https://api.openai.com/v1"
  • max_debate_rounds = 1

TradingAgents bir araştırma çerçevesidir, finansal tavsiye değildir. Kendi ürününüzde veya ekibinizde kullanırken bu uyarıyı açıkça belirtin.

Adım 1: TradingAgents'ı Yükleyin

Kurulumu hızlıca gerçekleştirin:

git clone https://github.com/TauricResearch/TradingAgents.git
cd TradingAgents
conda create -n tradingagents python=3.13
conda activate tradingagents
pip install .
Enter fullscreen mode Exit fullscreen mode

API sarmalayıcısı inşa edecekseniz, ek olarak şunları yükleyin:

pip install fastapi uvicorn
Enter fullscreen mode Exit fullscreen mode

Depoda .env.example dosyası mevcut:

OPENAI_API_KEY=
GOOGLE_API_KEY=
ANTHROPIC_API_KEY=
XAI_API_KEY=
OPENROUTER_API_KEY=
Enter fullscreen mode Exit fullscreen mode

Ek veri/model sağlayıcılar için başka API anahtarlarına da ihtiyacınız olabilir.

Pratik kurallar:

  1. Kimlik bilgilerini ortam değişkenlerinde veya bir sır yöneticisinde saklayın.
  2. Sağlayıcı anahtarlarını API istek gövdeleriyle göndermeyin.

Bu ayrım, Apidog ortamlarınızı daha güvenli ve düzenli tutar.

Adım 2: TradingAgents'ı Python'da Test Edin

API sarmalayıcıdan önce, çerçevenin ortamınızda çalıştığından emin olun.

Minimal örnek:

from tradingagents.graph.trading_graph import TradingAgentsGraph
from tradingagents.default_config import DEFAULT_CONFIG

ta = TradingAgentsGraph(debug=True, config=DEFAULT_CONFIG.copy())
_, decision = ta.propagate("NVDA", "2026-01-15")
print(decision)
Enter fullscreen mode Exit fullscreen mode

Çalışıyorsa, yapılandırmayı özelleştirebilirsiniz:

from tradingagents.graph.trading_graph import TradingAgentsGraph
from tradingagents.default_config import DEFAULT_CONFIG

config = DEFAULT_CONFIG.copy()
config["llm_provider"] = "openai"
config["deep_think_llm"] = "gpt-5.2"
config["quick_think_llm"] = "gpt-5-mini"
config["max_debate_rounds"] = 2

ta = TradingAgentsGraph(debug=True, config=config)
_, decision = ta.propagate("NVDA", "2026-01-15")
print(decision)
Enter fullscreen mode Exit fullscreen mode

API’de hangi parametreleri ifşa edeceğinizi bu aşamada belirleyin: ticker, analysis_date, llm_provider, deep_think_llm, quick_think_llm, research_depth.

Adım 3: Kullanım Biçiminizi Seçin

En yaygın üç yol:

Seçenek 1: Yalnızca CLI

Hızlı keşif ve bireysel testler için etkileşimli CLI kullanılabilir.

Ne zaman kullanılır:

  • Çerçeveyi öğrenirken
  • Kişisel denemelerde

Seçenek 2: Yalnızca Python

Programatik kontrol ve otomasyon için doğrudan Python ile kullanın.

Ne zaman kullanılır:

  • Notebook veya betik otomasyonu
  • Tam kontrol gerektiğinde

Seçenek 3: API Sarmalayıcı + Apidog

Ekipler ve paylaşılan iş akışı için idealdir. TradingAgents'ı FastAPI ile servis haline getirip Apidog ile test edin ve belgeleyin.

Ne zaman kullanılır:

  • Ön uca, QA'ya veya başka ekiplere açılması gerektiğinde
  • Tekrarlanabilir ve belgeli API iş akışı gerektiğinde

Adım 4: TradingAgents'ı FastAPI Servisine Sarın

İş tabanlı bir API tasarımı önerilir. Uzun sürebilen analizler için bu desen idealdir:

POST /analyses -> analysis_id döner
GET /analyses/{id} -> iş durumu ve sonucu döner
Enter fullscreen mode Exit fullscreen mode

Minimal API Sözleşmesi

Uç Nokta Amaç
GET /health Sağlık kontrolü
POST /analyses Analiz tetikler
GET /analyses/{id} İş durumu ve sonuç

FastAPI Sarmalayıcı Örneği

from concurrent.futures import ThreadPoolExecutor
from datetime import date, datetime
from uuid import uuid4

from fastapi import FastAPI, HTTPException
from pydantic import BaseModel, Field

from tradingagents.default_config import DEFAULT_CONFIG
from tradingagents.graph.trading_graph import TradingAgentsGraph

app = FastAPI(title="TradingAgents API", version="0.1.0")
executor = ThreadPoolExecutor(max_workers=2)
jobs: dict[str, dict] = {}

class AnalysisRequest(BaseModel):
    ticker: str = Field(..., min_length=1, examples=["NVDA"])
    analysis_date: date
    llm_provider: str = Field(default="openai")
    deep_think_llm: str = Field(default="gpt-5.2")
    quick_think_llm: str = Field(default="gpt-5-mini")
    research_depth: int = Field(default=1, ge=1, le=5)

def run_analysis(job_id: str, payload: AnalysisRequest) -> None:
    jobs[job_id]["status"] = "running"
    jobs[job_id]["started_at"] = datetime.utcnow().isoformat()

    config = DEFAULT_CONFIG.copy()
    config["llm_provider"] = payload.llm_provider
    config["deep_think_llm"] = payload.deep_think_llm
    config["quick_think_llm"] = payload.quick_think_llm
    config["max_debate_rounds"] = payload.research_depth
    config["max_risk_discuss_rounds"] = payload.research_depth

    try:
        graph = TradingAgentsGraph(debug=False, config=config)
        _, decision = graph.propagate(
            payload.ticker,
            payload.analysis_date.isoformat(),
        )
        jobs[job_id].update(
            {
                "status": "completed",
                "finished_at": datetime.utcnow().isoformat(),
                "result": decision,
            }
        )
    except Exception as exc:
        jobs[job_id].update(
            {
                "status": "failed",
                "finished_at": datetime.utcnow().isoformat(),
                "error": str(exc),
            }
        )

@app.get("/health")
def health() -> dict:
    return {"status": "ok"}

@app.post("/analyses", status_code=202)
def create_analysis(payload: AnalysisRequest) -> dict:
    analysis_id = str(uuid4())
    jobs[analysis_id] = {
        "status": "queued",
        "ticker": payload.ticker,
        "analysis_date": payload.analysis_date.isoformat(),
        "created_at": datetime.utcnow().isoformat(),
    }
    executor.submit(run_analysis, analysis_id, payload)
    return {"analysis_id": analysis_id, "status": "queued"}

@app.get("/analyses/{analysis_id}")
def get_analysis(analysis_id: str) -> dict:
    job = jobs.get(analysis_id)
    if not job:
        raise HTTPException(status_code=404, detail="Analysis not found")
    return job
Enter fullscreen mode Exit fullscreen mode

Servisi başlatmak için:

uvicorn app:app --reload
Enter fullscreen mode Exit fullscreen mode

FastAPI otomatik olarak:

adreslerini açar. OpenAPI şemasını Apidog'a doğrudan aktarabilirsiniz.

Adım 5: TradingAgents'ı API Üzerinden Kullanın

Bir Analizi Tetikleyin

POST /analyses ile aşağıdaki gövdeyi gönderin:

{
  "ticker": "NVDA",
  "analysis_date": "2026-03-26",
  "llm_provider": "openai",
  "deep_think_llm": "gpt-5.2",
  "quick_think_llm": "gpt-5-mini",
  "research_depth": 2
}
Enter fullscreen mode Exit fullscreen mode

Yanıt:

{
  "analysis_id": "88f9f0f5-7315-4c73-8ed5-d0a71f613d31",
  "status": "queued"
}
Enter fullscreen mode Exit fullscreen mode

Sonucu Sorgulayın

GET /analyses/{analysis_id} ile iş durumunu izleyin:

{
  "status": "running",
  "ticker": "NVDA",
  "analysis_date": "2026-03-26",
  "created_at": "2026-03-26T06:00:00.000000",
  "started_at": "2026-03-26T06:00:01.000000"
}
Enter fullscreen mode Exit fullscreen mode

İş tamamlandığında:

{
  "status": "completed",
  "ticker": "NVDA",
  "analysis_date": "2026-03-26",
  "result": {
    "decision": "hold"
  }
}
Enter fullscreen mode Exit fullscreen mode

Bir hata olduğunda açıkça "failed" ve hata mesajı döndürün.

Adım 6: API'yi Apidog'a Aktarın

OpenAPI şemasını Apidog'a aktarın:

http://localhost:8000/openapi.json
Enter fullscreen mode Exit fullscreen mode

Aktardıktan sonra uç noktalar, istek/yanıt yapıları otomatik olarak oluşur.

Avantajlar:

  • Belgeler kodla otomatik uyumlu
  • Yol parametreleri ve gövdeleri doğru şekilde yönetilir
  • Ekibiniz için manuel koleksiyon yönetimi gerekmez

Apidog burada temel API testinin ötesine geçer, tasarım, test, ortam ve dokümantasyonu tek yerde toplar.

Adım 7: Apidog Ortamı Oluşturun

API'yı içe aktardıktan sonra, yerel hizmet için bir ortam oluşturun.

Örnek değişkenler:

base_url = http://localhost:8000
analysis_id =
Enter fullscreen mode Exit fullscreen mode

Kimlik doğrulama gerekiyorsa:

internal_api_key = your-local-dev-key
Enter fullscreen mode Exit fullscreen mode

Faydalar:

  • Farklı ortamlar arasında hızlı geçiş
  • Yeniden kullanılabilir istekler
  • Ekip için tekrarlanan manuel işlemlerden kaçınma

TradingAgents analiz mantığını yönetir, Apidog ise iş akışını ve paylaşımı yönetir.

Adım 8: Apidog'da Tüm İş Akışını Test Edin

TradingAgents'ı gerçek bir istemci gibi test edebilirsiniz.

İstek 1: Analizi Oluşturun

  • Yöntem: POST
  • URL: {{base_url}}/analyses
  • Gövde:
{
  "ticker": "NVDA",
  "analysis_date": "2026-03-26",
  "llm_provider": "openai",
  "deep_think_llm": "gpt-5.2",
  "quick_think_llm": "gpt-5-mini",
  "research_depth": 2
}
Enter fullscreen mode Exit fullscreen mode

Test betiği:

pm.test("Status is 202", function () {
    pm.response.to.have.status(202);
});

const data = pm.response.json();
pm.expect(data.analysis_id).to.exist;
pm.environment.set("analysis_id", data.analysis_id);
Enter fullscreen mode Exit fullscreen mode

İstek 2: Analizi Sorgulayın

  • Yöntem: GET
  • URL: {{base_url}}/analyses/{{analysis_id}}

Test betiği:

pm.test("Analysis has a valid status", function () {
    const data = pm.response.json();
    pm.expect(["queued", "running", "completed", "failed"]).to.include(data.status);
});
Enter fullscreen mode Exit fullscreen mode

Başarı kontrolü:

pm.test("Completed jobs include a result", function () {
    const data = pm.response.json();
    if (data.status === "completed") {
        pm.expect(data.result).to.exist;
    }
});
Enter fullscreen mode Exit fullscreen mode

Senaryo Zincirleme

Bir senaryo oluşturun:

  1. POST /analyses gönderin
  2. analysis_id'yi saklayın
  3. Bekleyin
  4. GET /analyses/{{analysis_id}} ile sorgulayın

Bu, ekiplerin sadece cevap döndü mü diye bakmak yerine, tüm yaşam döngüsünü test etmesini sağlar.

Adım 9: Ekibiniz İçin Dahili Belgeler Yayınlayın

İstekler çalıştıktan sonra, Apidog ile aşağıdaki noktaları açıklayan belgeler hazırlayın:

  • Hangi sağlayıcıların kullanılabildiği
  • research_depth parametresinin anlamı
  • Beklenen durum değerleri
  • Analizlerin tipik süreleri
  • Yeniden denenebilir hata tipleri
  • Araştırma amaçlı feragatname

TradingAgents'ı ortamlar, iddialar ve ekibe hazır senaryolar ile belgelenmiş API iş akışına dönüştürmek için Apidog'u kullanın.

TradingAgents ile Yapılan Yaygın Hatalar

Çerçeveyi barındırılan bir API gibi görmek

TradingAgents bir SaaS API değildir; Python çerçevesidir. Kendi API sözleşmenizi oluşturun.

Sırları istek gövdesinde kullanmak

API anahtarlarını ortam yönetimiyle saklayın, istek gövdelerinde ya da paylaşılan ekranlarda taşımayın.

Tek, uzun senkron yanıt

Çok adımlı iş akışları için iş tabanlı API tasarımı kullanın.

Çok fazla yapılandırma ifşa etmek

Başlangıçta temel parametrelerle başlayın, gerektikçe genişletin.

Sonuçları yalnızca bellekte tutmak

Üretimde iş durumunu Redis, Postgres gibi kalıcı arka uçlarda saklayın.

Araştırma feragatnamesini gizlemek

TradingAgents bir araştırma aracıdır; finansal tavsiye değildir. Bu uyarıyı API belgelerinizde bulundurun.

Sonuç

TradingAgents'ı nasıl kullanacağınız hedefinize bağlıdır. Sadece keşif için CLI ve Python yeterli. Ekipler için tekrarlanabilir ve belgelenmiş iş akışı istiyorsanız, küçük bir API oluşturun ve Apidog ile test edin.

Hızlıca ekip iş akışına geçmek için: TradingAgents'ı kurun, Python'da test edin, POST /analyses ve GET /analyses/{id} ekleyin, şemayı Apidog'a aktarın ve uçtan uca senaryo oluşturun. Bu yöntem, terminal komutlarından çok daha sürdürülebilirdir.

Sıkça Sorulan Sorular

TradingAgents'ı İlk Kez Nasıl Kullanırsınız?

Depoyu kurun, model sağlayıcı ortam değişkenlerini ayarlayın ve Python ile TradingAgentsGraph sınıfını çalıştırarak başlayın. Sonrasında sadece CLI mı yoksa API mı kullanacağınızı belirleyin.

TradingAgents Resmi Bir REST API ile Geliyor mu?

Hayır. Depo yalnızca CLI ve Python paketi sunar, çoğu ekip ince bir FastAPI katmanı ekler.

TradingAgents'ı Bir Ön Uç Uygulamasında Kullanmanın En Kolay Yolu Nedir?

Python çerçevesini direkt ön uca açmayın. Bir arka uç API'si yazın, analysis_id döndürün, ön uç sonuçları sorgulasın.

Neden TradingAgents ile Apidog Kullanılır?

Apidog, OpenAPI şemasını içe aktarmanızı, ortamları ve istekleri yönetmenizi, iddialar eklemenizi ve ekibinizle iş akışını paylaşmanızı sağlar.

Bir API'de Hangi TradingAgents Ayarları İfşa Edilmeye Değerdir?

Başlangıç için: hisse senedi kodu, analiz tarihi, sağlayıcı, model seçimleri, araştırma derinliği. Gerektikçe genişletilebilir.

Örnek İş Durumunu Bellekte Tutabilir miyim?

Sadece denemeler için. Üretimde kalıcı arka uç (Redis, Postgres) kullanın.

TradingAgents Canlı Finansal Kararlar İçin Uygun mu?

Hayır. Açıkça bir araştırma çerçevesidir; finansal tavsiye değildir. Kendi kontrollerinizi ekleyin.

Top comments (0)