El pajar es una opción útil cuando un flujo de trabajo de macro FX necesita una tubería de IA orientada a la producción, un agente de llamada de herramientas o una superficie de herramenta MCP estándar sin convertir toda la aplicación en un solo prompt. calendarios de lanzamiento, el historial de anuncios, El valor de la moneda de referencia contexto, El COT el posicionamiento, productos básicos, y Sesión de divisas datos.
Agent Cuando el modelo debe decidir qué herramienta llamar. Use REST cuando su servicio posee credenciales y validación, y use MCP cuando Haystack debe cargar herramientas FXMacroData desde https://mcp.fxmacrodata.com- ¿ Qué ?
El límite es simple. Haystack debe coordinar componentes, herramientas, agentes y tuberías. FXMacroData debe responder a las preguntas de mercado: qué se imprimió, qué fue antes, qué está programado, qué filas están disponibles y qué panel de control puede inspeccionar un humano. Eso importa para Indicador de precios de los Estados Unidos¿ Qué ? Pago de los trabajadores no agrícolas¿ Qué ? Tasa de política de la Reserva Federal decisión, o una El valor de las pérdidas el resumen de riesgo de liberación.
En forma
Utilice esto para
Informes macro de producción, agentes de llamada de herramientas, flujos de investigación al estilo RAG, monitores de liberación y sistemas de revisión de analistas.
Utilice tuberías cuando
La ruta es conocida: buscar datos, dar formato a la evidencia, ejecutar el modelo, validar la respuesta y devolver una nota revisable.
Utilice agentes cuando
El modelo necesita elegir entre calendario, anuncio, FX, COT, commodity o herramientas de sesión.
Por qué Haystack se adapta a los flujos de trabajo macro de FX
Haystack es un marco de IA de código abierto para la construcción de agentes, aplicaciones RAG, sistemas de búsqueda, herramientas y tuberías.
Eso es importante para la macro FX porque "actual" es la parte difícil. Un modelo puede saber cuál es el CPI, pero no debe depender de la memoria para la próxima versión, la última impresión, el valor anterior, una fila de posicionamiento COT o si un conjunto de datos no está disponible.
Principio básico
Haystack debe controlar la ruta, FXMacroData debe controlar las pruebas, y la respuesta final debe mostrar qué rutas de origen y los hechos devueltos apoyan la interpretación del mercado.
Forma del flujo de trabajo
1. Solicitud
Pida un resumen de liberación, pareja de configuración, verificación de calendario, o paquete de pruebas.
2. Ruta de viaje
Utilice una tubería fija o un bucle de agente con una condición de parada clara.
3. Las pruebas
Llamar a FXMacroData a través de las herramientas REST o el punto final MCP alojado.
4. Repasar
Devuelva los hechos, la interpretación, las rutas de origen, las marcas de tiempo y los vacíos de datos por separado.
¿Pipeline, agente, REST o MCP?
| El derecho a elegir | Lo mejor para | Compromiso |
|---|---|---|
| Línea de oleoductos de pajar | Flujos de trabajo conocidos como las sesiones informativas diarias de liberación, las comprobaciones programadas y el formato de pruebas repetibles. | Debe definir la ruta y las interfaces de los componentes por adelantado. |
| Agente de pajar | Preguntas en las que el modelo debe elegir entre un pequeño conjunto de herramientas de datos. | Necesita más estrictos límites de bucle, filtración de herramientas y validación de respuestas. |
| El resto de datos de FXMacroData | Aplicaciones que poseen credenciales, reintentos, registro, almacenamiento en caché y validación de esquemas. | Mantén el código de envoltura y el mapeo de puntos finales. |
| El MCP de FXMacroData | Hostia que debe descubrir una superficie de herramienta compartida de FXMacroData desde https://mcp.fxmacrodata.com- ¿ Qué ? |
Debe restringir los nombres de herramientas cuando el catálogo disponible es más grande de lo que necesita la tarea. |
Los requisitos previos
- Python 3.10 o más reciente.
- Haystack y un proveedor de modelo de chat configurado para su entorno.
- Una clave de la API FXMacroData almacenada fuera de las solicitudes y registros.
- El
mcp-haystackintegración si quieres Haystack para cargar herramientas MCP. - Un primer flujo de trabajo que sea de solo lectura y fácil de revisar.
pip install -U haystack-ai requests
pip install -U mcp-haystack
export OPENAI_API_KEY="YOUR_MODEL_PROVIDER_KEY"
export FXMD_API_KEY="YOUR_FXMACRODATA_API_KEY"
Para las comprobaciones directas de REST, utilizar los puntos finales de producción FXMacroData y la autenticación de parámetros de consulta:
curl "https://api.fxmacrodata.com/v1/calendar/usd?api_key=YOUR_API_KEY"
curl "https://api.fxmacrodata.com/v1/announcements/usd/inflation?api_key=YOUR_API_KEY"
curl "https://api.fxmacrodata.com/v1/forex/eur/usd?api_key=YOUR_API_KEY"
curl "https://api.fxmacrodata.com/v1/cot/usd?api_key=YOUR_API_KEY"
Paso 1: Envuelva el REST de FXMacroData como herramientas de pajar
Comience con un pequeño ayudante HTTP. Mantenga la clave API en la configuración del lado del servidor. El modelo debe recibir evidencia devuelta y rutas de puntos finales, no credenciales.
import os
import requests
API_ROOT = "https://api.fxmacrodata.com/v1"
def fxmd_get(path: str, **params) -> dict:
params["api_key"] = os.environ["FXMD_API_KEY"]
response = requests.get(f"{API_ROOT}{path}", params=params, timeout=20)
response.raise_for_status()
return {
"source": f"/v1{path}",
"payload": response.json(),
}
Las herramientas de pajar pueden ser creadas con el @tool Mantenga cada herramienta estrecha para que el agente no pueda vagar por familias de puntos finales no relacionados.
from typing import Annotated
from haystack.tools import tool
@tool
def fxmacrodata_calendar(
currency: Annotated[str, "Three-letter currency code, such as USD"]
) -> dict:
"""Return scheduled macro releases for one currency."""
return fxmd_get(f"/calendar/{currency.lower()}")
@tool
def fxmacrodata_announcement(
currency: Annotated[str, "Three-letter currency code"],
indicator: Annotated[str, "Indicator slug, such as inflation"],
) -> dict:
"""Return historical announcement rows for one indicator."""
return fxmd_get(f"/announcements/{currency.lower()}/{indicator}")
Paso 2: Utilice una tubería para las reuniones informativas fijas
Por ejemplo, una sesión informativa de liberación diaria de USD siempre puede recuperar el calendario, recuperar las últimas filas de anuncio para el indicador seleccionado, pasar ambas en un modelo y validar el resultado.
from haystack import Pipeline, component
@component
class FetchCalendar:
@component.output_types(evidence=dict)
def run(self, currency: str):
return {"evidence": fxmd_get(f"/calendar/{currency.lower()}")}
pipeline = Pipeline()
pipeline.add_component("calendar", FetchCalendar())
pipeline.add_component("brief", FxMacroBriefGenerator())
pipeline.connect("calendar.evidence", "brief.calendar")
result = pipeline.run({"calendar": {"currency": "usd"}})
El componente de información exacto puede ser su propio envoltorio de modelo, un constructor de solicitudes o un generador conectado al resto de la tubería.
Paso 3: Utilice un agente para la elección de herramientas
Usa el Haystack. Agent El componente agente oficial gestiona el bucle de llamada de herramientas, invoca herramienta, actualiza estado y sale cuando se cumple una condición de parada.
from haystack.components.agents import Agent
from haystack.components.generators.chat import OpenAIChatGenerator
from haystack.dataclasses import ChatMessage
agent = Agent(
chat_generator=OpenAIChatGenerator(model="gpt-4o-mini"),
tools=[fxmacrodata_calendar, fxmacrodata_announcement],
system_prompt=(
"Use FXMacroData tools for current macro facts. "
"Name source paths and data gaps in the final answer."
),
)
result = agent.run(
messages=[ChatMessage.from_user("Brief the next USD release risk.")]
)
No le des a la primera versión una herramienta web amplia, herramientas de archivos, herramentas de colocación de pedidos o herramientos HTTP arbitrarios.
Paso 4: Cargar FXMacroData a través de MCP
Utilice MCP cuando desee que Haystack consuma la misma superficie de herramienta FXMacroData utilizada por otros hosts de agentes. MCPToolset Puede cargar herramientas de servidores compatibles con MCP y pasarlas a un AgentEl punto final de FXMacroData MCP es:
https://mcp.fxmacrodata.com
Para el MCP HTTP remoto, use HTTP con transmisión y restrinja la lista de herramientas al flujo de trabajo que está creando.
from haystack_integrations.tools.mcp import (
MCPToolset,
StreamableHttpServerInfo,
)
server_info = StreamableHttpServerInfo(
url="https://mcp.fxmacrodata.com",
)
toolset = MCPToolset(
server_info=server_info,
tool_names=["release_calendar", "indicator_query"],
)
Luego pasa ese conjunto de herramientas al mismo patrón del agente:
agent = Agent(
chat_generator=OpenAIChatGenerator(model="gpt-4o-mini"),
tools=toolset,
exit_conditions=["text"],
system_prompt="Use FXMacroData MCP tools before writing.",
)
response = agent.run(
messages=[ChatMessage.from_user("Summarize upcoming USD macro events.")]
)
Si su editor o agente espera la configuración JSON, la forma canónica de este repositorio VS Code-style MCP es:
{
"servers": {
"FXMacroData": {
"type": "http",
"url": "https://mcp.fxmacrodata.com"
}
}
}
Paso 5: Añadir barreras de seguridad financieras
Haystack te da estructura, pero aún necesitas controles financieros específicos para que un modelo no convierta una extracción parcial de datos en una llamada de negociación segura.
Lista de control de las barreras de seguridad de las finanzas
- Mantenga todas las primeras herramientas solo de lectura: calendario, anuncios, contexto de divisas, COT, materias primas y sesiones.
- En el almacén .
FXMD_API_KEYlas solicitudes externas y nunca devuelven URL autenticadas a la salida del modelo. - Filtrar las herramientas MCP al conjunto más pequeño requerido para el flujo de trabajo.
- Requiere respuestas finales para separar los hechos obtenidos, la interpretación, las rutas de origen y las lagunas de datos.
- Utilice la revisión humana antes de las alertas dirigidas al cliente o los flujos de trabajo de escritorio.
- Mantenga la colocación de pedidos, los cambios de cuenta y los cambios en el límite de riesgo fuera de la trayectoria del modelo.
Una forma de salida revisable es más útil que un párrafo fluido.
{
"brief": "Upcoming USD event risk should be reviewed against calendar rows.",
"evidence": [
{
"source": "FXMacroData calendar",
"path": "/v1/calendar/usd",
"used_for": "Next known release window"
}
],
"interpretation": "Model-generated summary based on fetched evidence.",
"data_gaps": []
}
Preguntas frecuentes
¿Haystack puede usar FXMacroData?
Haystack puede usar FXMacroData a través de envolturas REST directas, Haystacks @tool https://mcp.fxmacrodata.com- ¿ Qué ?
¿Debería usar un oleoducto Haystack o un agente?
Utilice una tubería cuando el flujo de trabajo está fijo y debe ser fácil de inspeccionar.
¿Hay que utilizar Haystack REST o MCP con FXMacroData?
Utilice REST cuando su aplicación posee credenciales, intentos de reinicio, validación, almacenamiento en caché y registros.
¿Haystack reemplaza una fuente de datos macro?
No. Haystack orquesta el flujo de trabajo de IA. FXMacroData sigue siendo la fuente de filas de macro, calendarios de lanzamiento, contexto FX, COT, productos básicos, sesiones, marcas de tiempo y manejo de datos.
Guías de FXMacroData relacionadas
- Documentación de la API de FXMacroData
- Documentación del servidor MCP de FXMacroData
- Cómo utilizar smolagents con FXMacroData
- Cómo utilizar DSPy con FXMacroData
- Cómo crear LangGraph FX Macro Agents con FXMacroData
Fuentes de información
- Introducción del pajar
- Documentación de las tuberías de pajar
- Documentación de los agentes del pajar
- Documentación de las herramientas de pajar
- Haystack MCPToolset documentación
- Documentación de la API de FXMacroData
- Documentación de la MCP de FXMacroData
- Esquema de producción de FXMacroData y OpenAPI