Construindo um sistema de IA multi-agente para análise de mercado financeiro


Com a ascensão da IA ​​em finanças, os investidores estão cada vez mais alavancando idéias orientadas pela IA para uma melhor tomada de decisão. Este artigo explora como podemos criar um sistema hierárquico de IA multi-agente usando o supervisor Langgraph para analisar tendências do mercado financeiro, executar análises de sentimentos e fornecer recomendações de investimento. Ao integrar agentes especializados para recuperação de dados de mercado, análise de sentimentos, análise quantitativa e formulação de estratégia de investimento, permitimos um sistema inteligente e automatizado que imite o fluxo de trabalho dos analistas financeiros humanos.

Objetivos de aprendizado

  • Aprenda estruturas hierárquicas, funções de supervisor e coordenação do agente.
  • Construir agentes de análise específica de domínio, sentimentos e quantitativos.
  • Gerencie a comunicação do agente e configure os fluxos de trabalho hierárquicos.
  • Integre as informações da IA ​​para recomendações orientadas a dados.
  • Implementar, otimizar e escalar aplicativos orientados a IA.
  • Mitigar vieses, garantir a transparência e aumentar a confiabilidade.
  • Este módulo fornece uma abordagem prática para a criação de sistemas multi-agentes inteligentes e acionados por IA usando estruturas escaláveis.

Este artigo foi publicado como parte do Information Science Blogathon.

Sistema de IA multi-agente: Supervisor de Langchain

Aqui está um exemplo simples de um supervisor gerenciando dois agentes especializados:

Construindo um sistema de IA multi-agente para análise de mercado financeiro
Fonte: Supervisor de Langchain

Você pode controlar como as mensagens do agente são adicionadas ao histórico geral de conversas do sistema multi-agente:

Inclua histórico completo de mensagens de um agente:

Supervisor de Langchain
Fonte: Supervisor de Langchain

A arquitetura multi-agente

Nosso sistema consiste em cinco especializados Agentes da IA Trabalhando de maneira coordenada:

  • Agente de dados de mercado (Market_data_expert)-busca preços de ações em tempo actual, índices P/E, EPS e crescimento da receita. Responsável por buscar dados financeiros em tempo actual, incluindo preços das ações, índices de preço-lucro (P/E), lucro por ação (EPS) e crescimento da receita. Garante que o sistema tenha dados de mercado atualizados para análise.
  • Agente de análise de sentimentos (Sentiment_expert) – Analisa notícias e sentimentos de mídia social para ações. Categoriza o sentimento como positivo, neutro ou negativo para avaliar o humor do mercado em relação a ações específicas.
  • Análise quantitativaagente do SIS (quant_expert) – calcula tendências de preços das ações, médias móveis e métricas de volatilidade. Ajuda a detectar tendências, possíveis pontos de ruptura e níveis de risco com base nos dados do mercado anteriores.
  • Agente de estratégia de investimento (estratégia_expert) – usa todos os insights disponíveis para gerar uma recomendação de compra/venda/espera. Determina se uma ação deve ser marcada como uma compra, venda ou retenção com base em riscos e oportunidades calculados.
  • Agente de supervisor (Market_supervisor)-Gerencia todos os agentes, garantindo a delegação de tarefas suaves e a tomada de decisões. Coordena as interações multi-agentes, monitora a eficiência do fluxo de trabalho e agrega recomendações finais para o usuário.

Sistema de IA multi-agente prático para análise de mercado financeiro

1. Configurando o ambiente

Antes de implementar o sistema, instale as dependências necessárias:

!pip set up langgraph-supervisor langchain-openai

Configure sua chave da API OpenAI:

import os
os.environ("OPENAI_API_KEY") = ""

2. Definindo funções de agente especializado

Buscar dados de mercado

# 1. Fetching Market Information
def fetch_market_data(stock_symbol: str) -> dict:
    """Simulate fetching inventory market knowledge for a given image."""
    market_data = {
        "AAPL": {"value": 185.22, "pe_ratio": 28.3, "eps": 6.5, "revenue_growth": 8.5},
        "GOOG": {"value": 142.11, "pe_ratio": 26.1, "eps": 5.8, "revenue_growth": 7.9},
        "TSLA": {"value": 220.34, "pe_ratio": 40.2, "eps": 3.5, "revenue_growth": 6.2},
    }
    return market_data.get(stock_symbol, {})

Realizando análise de sentimentos

# 2. Sentiment Evaluation
def analyze_sentiment(stock_symbol: str) -> dict:
    """Carry out sentiment evaluation on monetary information for a inventory."""
    sentiment_scores = {
        "AAPL": {"news_sentiment": "Constructive", "social_sentiment": "Impartial"},
        "GOOG": {"news_sentiment": "Unfavourable", "social_sentiment": "Constructive"},
        "TSLA": {"news_sentiment": "Constructive", "social_sentiment": "Unfavourable"},
    }
    return sentiment_scores.get(stock_symbol, {})

Métricas de análise quantitativa de computação

# 3. Quantitative Evaluation
def compute_quant_metrics(stock_symbol: str) -> dict:
    """Compute SMA, EMA, and volatility for inventory."""
    quant_metrics = {
        "AAPL": {"sma_50": 180.5, "ema_50": 182.1, "volatility": 1.9},
        "GOOG": {"sma_50": 140.8, "ema_50": 141.3, "volatility": 2.1},
        "TSLA": {"sma_50": 215.7, "ema_50": 218.2, "volatility": 3.5},
    }
    return quant_metrics.get(stock_symbol, {})

Gerando recomendações de investimento

# 4. Funding Technique Determination
def investment_strategy(stock_symbol: str, market_data: dict, sentiment: dict, quant: dict) -> str:
    """Analyze knowledge and generate purchase/promote/maintain suggestion."""
    if not market_data or not sentiment or not quant:
        return "Not sufficient knowledge for suggestion."

    resolution = "Maintain"
    if market_data("pe_ratio") < 30 and sentiment("news_sentiment") == "Constructive" and quant("volatility") < 2:
        resolution = "Purchase"
    elif market_data("pe_ratio") > 35 or sentiment("news_sentiment") == "Unfavourable":
        resolution = "Promote"

    return f"Really useful Motion for {stock_symbol}: {resolution}"

3. Criando e implantando agentes

import os
from langchain_openai import ChatOpenAI
from langgraph_supervisor import create_supervisor
from langgraph.prebuilt import create_react_agent

# Initialize the Chat mannequin
mannequin = ChatOpenAI(mannequin="gpt-4o")

### --- CREATE AGENTS --- ###

# Market Information Agent
market_data_expert = create_react_agent(
    mannequin=mannequin,
    instruments=(fetch_market_data),
    identify="market_data_expert",
    immediate="You're an skilled in inventory market knowledge. Fetch inventory knowledge when requested."
)

# Sentiment Evaluation Agent
sentiment_expert = create_react_agent(
    mannequin=mannequin,
    instruments=(analyze_sentiment),
    identify="sentiment_expert",
    immediate="You analyze monetary information and social media sentiment for inventory symbols."
)

# Quantitative Evaluation Agent
quant_expert = create_react_agent(
    mannequin=mannequin,
    instruments=(compute_quant_metrics),
    identify="quant_expert",
    immediate="You analyze inventory value traits, shifting averages, and volatility metrics."
)

# Funding Technique Agent
strategy_expert = create_react_agent(
    mannequin=mannequin,
    instruments=(investment_strategy),
    identify="strategy_expert",
    immediate="You make funding suggestions based mostly on market, sentiment, and quant knowledge."
)

### --- SUPERVISOR AGENT --- ###

market_supervisor = create_supervisor(
    brokers=(market_data_expert, sentiment_expert, quant_expert, strategy_expert),
    mannequin=mannequin,
    immediate=(
        "You're a monetary market supervisor managing 4 skilled brokers: market knowledge, sentiment, "
        "quantitative evaluation, and funding technique. For inventory queries, use market_data_expert. "
        "For information/social sentiment, use sentiment_expert. For inventory value evaluation, use quant_expert. "
        "For closing funding suggestions, use strategy_expert."
    )
)

# Compile into an executable workflow
app = market_supervisor.compile()

4. Executando o sistema

### --- RUN THE SYSTEM --- ###
stock_query = {
    "messages": (
        {"function": "consumer", "content material": "What's the funding suggestion for AAPL?"}
    )
}

# Execute question
consequence = app.invoke(stock_query)

print(consequence('messages')(-1).content material)
Saída
Saída

O sistema de IA analisou dados, sentimentos e indicadores técnicos para recomendar uma ação de investimento

Aprimoramentos futuros

  • Conecte -se a APIs reais (Yahoo Finance, Alpha Vantage) para dados de gado.
  • Melhorar Análise de sentimentos integrando o monitoramento de mídia social.
  • Expanda o gerenciamento do portfólio para incluir estratégias de avaliação e diversificação de risco.

Esta estrutura multi-agente é uma solução de IA escalável para análise financeira, capaz de tomar decisões de investimento em tempo actual, com o mínimo de intervenção humana!

Takeaways -chave

  • Um sistema de IA multi-agente automatiza a análise de tendências de mercado, avaliação de sentimentos e recomendações de investimento.
  • Os agentes especializados lidam com dados de mercado, análise de sentimentos, métricas quantitativas e estratégia de investimento, gerenciadas por um agente do supervisor.
  • O sistema é construído usando o supervisor Langgraph, definindo funções do agente, implantando -as e em consultas de investimento executando.
  • A abordagem multi-agente aumenta a modularidade, escalabilidade, automação e precisão na tomada de decisões financeiras.
  • Integração de APIs financeiras em tempo actual, rastreamento avançado de sentimentos e gerenciamento de portfólio para um sistema de investimento mais abrangente de IA.

A mídia mostrada neste artigo não é de propriedade da Analytics Vidhya e é usada a critério do autor.

Perguntas frequentes

Q1. O que é um supervisor de Langgraph?

Ans. O supervisor de Langgraph é um Python Biblioteca que ajuda a criar sistemas multi-agentes hierárquicos. Você pode definir agentes especializados e ter um supervisor central orquestrar suas interações e tarefas.

Q2. Como o agente do supervisor resolve qual agente invocar?

Ans. O agente do supervisor usa um immediate orientador e o conteúdo da solicitação do usuário para determinar qual agente especializado pode cumprir a consulta. Por exemplo, se uma consulta exigir dados de busca, o supervisor o passará para um agente de dados de mercado. Se envolver análise de sentimentos, ele delega ao agente de análise de sentimentos e assim por diante.

Q3. Posso usar dados em tempo actual em vez dos exemplos simulados?

Ans. Sim. Você pode substituir as funções simuladas (como Fetch_Market_Data) por chamadas de API reais para serviços como o Yahoo Finance, Alpha Vantage ou qualquer outro provedor de dados financeiros.

This fall. Por que precisamos de uma abordagem multi-agente?

Ans. Uma arquitetura multi-agente permite que cada agente se concentre em uma tarefa especializada (por exemplo, recuperação de dados de mercado, análise de sentimentos). Essa abordagem modular é mais fácil de dimensionar e manter, e você pode reutilizar ou substituir agentes individuais sem revisar todo o sistema.

Q5. Como funciona a memória e o histórico de conversas?

Ans. Supervisor de Langgraph pode armazenar histórico de conversas e respostas dos agentes. Você pode configurá -lo para manter transcrições completas de conversas sobre agentes ou apenas respostas finais. Para casos de uso avançado, você pode integrar a memória de curto ou longo prazo para que os agentes possam se referir a interações passadas.

Oi! Sou Adarsh, graduado em análise de negócios da ISB, atualmente profundamente em pesquisa e explorando novas fronteiras. Sou tremendous apaixonado por ciência de dados, IA e todas as maneiras inovadoras que podem transformar as indústrias. Seja construindo modelos, trabalhando em pipelines de dados ou mergulhando no aprendizado de máquina, adoro experimentar a tecnologia mais recente. AI não é apenas o meu interesse, é onde vejo o futuro e estou sempre animado por fazer parte dessa jornada!

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *