दो एजेंटों का एफएक्स स्टैक बनाएंः अनुसंधान एजेंट + निष्पादन गेटकीपर
लेखक: FXMacroData टीम
प्रकाशित: 21 मई, 2026
एकल एजेंट एफएक्स बॉट एक सरल कारण से विफल हो जाते हैंः एक ही मॉडल है कि विचारों को उत्पन्न भी उन्हें मंजूरी देने के लिए अनुमति दी है। अमेरिकी गैर-कृषि वेतन, एक तर्क त्रुटि सीधे स्थिति जोखिम में कूद सकता है।
यह गाइड एक सुरक्षित वास्तुकला दिखाता हैः दो एजेंटों के बीच जिम्मेदारियों को विभाजित करें। पहला एजेंट बाजार अनुसंधान करता है और सेटअप का प्रस्ताव करता है। दूसरा एजेंट एक सख्त गेटकीपर है जो केवल कठिन जोखिम नियमों के आधार पर प्रस्तावों को मंजूरी, आकार बदल सकता है या अस्वीकार कर सकता है।
अंत तक, आपके पास के लिए एक व्यावहारिक दो-एजेंट वर्कफ़्लो होगा EUR/USD और GBP/USD जो कि प्रत्यक्ष REST एपीआई एकीकरण और एमसीपी आधारित उपकरण एकीकरण दोनों का समर्थन करता है।
पूर्व शर्तें
- पायथन 3.10+
- से एक FXMacroData एपीआई कुंजी एपीआई प्रबंधन.
- अनुसंधान और द्वारपाल एजेंटों के लिए एक एलएलएम अंत बिंदु।
- JSON और HTTP एपीआई के साथ बुनियादी परिचितता।
निर्भरताएँ स्थापित करेंः
pip install requests python-dotenv pydantic
एक .env फ़ाइलः
FXMD_API_KEY=your_fxmacrodata_key
RESEARCH_MODEL=claude-or-hermes
GATEKEEPER_MODEL=claude-or-hermes
MAX_RISK_PCT=0.50
चरण 1: दोनों एजेंटों के लिए सख्त भूमिकाएं परिभाषित करें
क्या करें: कोड लिखने से पहले जिम्मेदारियों को लॉक करें।
- अनुसंधान एजेंटः मैक्रो + बाजार संदर्भ पढ़ता है और उम्मीदवार सेटअप का प्रस्ताव करता है।
- गेटकीपर एजेंट: केवल बाधाओं को मान्य करता है. यह नए ट्रेडों का आविष्कार नहीं कर सकता, केवल अनुमोदन/अस्वीकार/आकार बदल सकता है.
क्यों मायने रखता हैः यह पृथक्करण एक मॉडल को जोखिम नियंत्रणों को दरकिनार करने से रोकता है जब विश्वास उच्च है लेकिन साक्ष्य कमजोर है।
चरण 2: प्रत्यक्ष REST कॉल के साथ संरचित संदर्भ निकालें
क्या करें: रिलीज़ और स्पॉट डेटा को FXMacroData से प्राप्त करें ताकि शोध एजेंट को असंरचित सुर्खियों के बजाय स्वच्छ इनपुट मिले।
curl "https://fxmacrodata.com/api/v1/calendar/usd?api_key=YOUR_API_KEY"
curl "https://fxmacrodata.com/api/v1/announcements/eur/inflation?api_key=YOUR_API_KEY"
curl "https://fxmacrodata.com/api/v1/announcements/gbp/unemployment?api_key=YOUR_API_KEY"
curl "https://fxmacrodata.com/api/v1/forex?base=EUR"e=USD&api_key=YOUR_API_KEY"
क्यों मायने रखता हैः सुसंगत, संरचित क्षेत्र दोनों एजेंटों को सत्य का एक ही स्रोत देते हैं और सत्यापन को निर्धारक बनाते हैं।
न्यूनतम पायथन कलेक्टरः
import os
import requests
from datetime import datetime, timezone
API = "https://fxmacrodata.com/api/v1"
KEY = os.environ["FXMD_API_KEY"]
def fxmd_get(path, **params):
r = requests.get(
f"{API}{path}",
params={"api_key": KEY, **params},
timeout=25,
)
r.raise_for_status()
return r.json()
def build_market_context():
return {
"asof_utc": datetime.now(timezone.utc).isoformat(),
"calendar_usd": fxmd_get("/calendar/usd").get("data", [])[:8],
"calendar_eur": fxmd_get("/calendar/eur").get("data", [])[:8],
"eur_inflation": fxmd_get("/announcements/eur/inflation").get("data", [])[-1:],
"gbp_unemployment": fxmd_get("/announcements/gbp/unemployment").get("data", [])[-1:],
"eurusd": fxmd_get("/forex", base="EUR", quote="USD").get("data", [])[-48:],
"gbpusd": fxmd_get("/forex", base="GBP", quote="USD").get("data", [])[-48:],
}
चरण 3: अनुसंधान एजेंट के साथ व्यापार उम्मीदवारों का निर्माण करें
क्या करें: केवल संरचित व्यापार उम्मीदवारों के लिए अनुसंधान एजेंट से पूछें। उसे निष्पादन के लिए तैयार निर्देश भेजने न दें।
{
"pair": "EUR/USD",
"bias": "long|short|flat",
"thesis": "string",
"confidence": 0.0,
"entry_zone": "string",
"invalidation": "string",
"event_risks": ["string"]
}
क्यों मायने रखता हैः एक निश्चित स्कीमा गेटकीपर को मुक्त रूप पाठ को पार्स करने की कोशिश करने के बजाय पूर्वानुमान योग्य क्षेत्रों पर नियम लागू करने की अनुमति देती है।
चरण 4: द्वारपाल एजेंट में कठिन जोखिम नियमों को लागू करें
क्या करें: प्रत्येक उम्मीदवार को एक दूसरे मॉडल या नियम-पहले सत्यापनकर्ता के माध्यम से सख्त सीमाओं के साथ चलाएं।
नीति का उदाहरणः
- व्यापार प्रति अधिकतम जोखिमः 0.50% इक्विटी का।
- उच्च प्रभाव वाली रिलीज़ के 15 मिनट के भीतर कोई नया व्यापार नहीं रिलीज कैलेंडर.
- अनिवार्य अमान्यकरण स्तर
- यदि विश्वास < 0.60 हो तो अस्वीकार करें।
पीडांतिक गेट और निर्णय आउटपुटः
from pydantic import BaseModel, Field
class Candidate(BaseModel):
pair: str
bias: str
thesis: str
confidence: float = Field(ge=0.0, le=1.0)
entry_zone: str
invalidation: str
event_risks: list[str]
class GateDecision(BaseModel):
status: str # approve, resize, reject
approved_size_pct: float
reason: str
def gate(candidate: Candidate, max_risk_pct: float = 0.50) -> GateDecision:
if candidate.confidence < 0.60:
return GateDecision(status="reject", approved_size_pct=0.0, reason="Low confidence")
if not candidate.invalidation.strip():
return GateDecision(status="reject", approved_size_pct=0.0, reason="Missing invalidation")
proposed = 0.50 if candidate.confidence >= 0.75 else 0.30
size = min(proposed, max_risk_pct)
return GateDecision(status="approve", approved_size_pct=size, reason="Within policy")
क्यों मायने रखता हैः भले ही अनुसंधान एजेंट को गलत रीडिंग हो, लेकिन गेटकीपर अभी भी ओवरसाइज़ या कमजोर सेटअप को ब्लॉक कर सकता है।
Step 5: Add MCP integration path (tool-native agent workflow)
क्या करें: FXMacroData को MCP के माध्यम से उजागर करें ताकि एजेंट फ्रेमवर्क प्रत्येक बॉट के लिए कस्टम REST गोंद बनाने के बजाय मूल रूप से टूल को कॉल कर सकें।
पायथन आधारित एमसीपी सर्वर को के माध्यम से प्रारंभ करें uvx:
uvx fxmacrodata-mcp --transport http --server-url https://fxmacrodata.com/mcp
क्लाइंट कॉन्फ़िगर उदाहरणः
{
"mcpServers": {
"fxmacrodata": {
"command": "uvx",
"args": [
"fxmacrodata-mcp",
"--transport",
"http",
"--server-url",
"https://fxmacrodata.com/mcp"
]
}
}
}
उदाहरण एमसीपी उपकरण कॉल स्कीमा आपके अनुसंधान एजेंट के लिएः
{
"name": "get_fx_calendar_and_spot",
"description": "Get upcoming macro events and current spot context for selected pairs",
"input_schema": {
"type": "object",
"properties": {
"currencies": {
"type": "array",
"items": { "type": "string" }
},
"pairs": {
"type": "array",
"items": {
"type": "object",
"properties": {
"base": { "type": "string" },
"quote": { "type": "string" }
},
"required": ["base", "quote"]
}
}
},
"required": ["currencies", "pairs"]
}
}
एजेंट को बुलाने का उदाहरण (MCP पथ):
Research Agent:
"Using the fxmacrodata MCP tools, pull today's USD/EUR/GBP calendar and spot for EUR/USD and GBP/USD.
Return up to 3 candidate setups in strict JSON schema."
Gatekeeper Agent:
"Validate each candidate against risk policy v1. Reject anything violating confidence,
size, invalidation, or event-window constraints. Return approve/resize/reject with reason."
क्यों मायने रखता हैः एमसीपी आपके स्टैक के बढ़ने के साथ एकीकरण बहाव को कम करता है, खासकर जब आप कई एजेंट या स्वैप मॉडल प्रदाताओं को चलाते हैं।
Step 6: Route outputs to human review, then broker API
क्या करें: पहले गेटकीपर निर्णय स्लैक/टेलीग्राम को भेजें। केवल मानव पुष्टि के बाद प्रारंभिक संस्करणों में निष्पादन प्रणालियों को अनुमोदित ट्रेड भेजें.
क्यों मायने रखता हैः यह एक ऑडिटेबल लूप बनाता है और आपको प्रॉम्प्ट या मॉडल परिवर्तन के दौरान बचाता है।
[FX Two-Agent Candidate]
Pair: EUR/USD
Research Bias: Long
Gatekeeper: Approve
Approved Size: 0.30%
Reason: Confidence 0.71, invalidation present, no high-impact event in 15m window.
आपने जो बनाया
अब आपके पास दो एजेंट एफएक्स आर्किटेक्चर है जो विचार जनरेशन को जोखिम अनुमोदन से अलग करता है, प्रत्यक्ष आरईएसटी एकीकरण का समर्थन करता है और एमसीपी-आधारित टूल ऑर्केस्ट्रेशन का भी समर्थन करता हैं। uvxयह एकल-एजेंट बॉट्स की तुलना में एक मजबूत आधार है क्योंकि निष्पादन से पहले व्यापार उम्मीदवारों को एक स्वतंत्र नीति गेट से बचना चाहिए।
अगला कदमः एक मार-स्विच परत जोड़ें जो स्वचालित रूप से मजबूर करता है reject असामान्य विलंबता, गायब डेटा फ़ील्ड या उच्च अस्थिरता सत्रों के दौरान दोहराई गई स्कीमा विफलताओं के बाद. आप सेशन-जागरूक बाधाओं को भी जोड़ सकते हैं विदेशी मुद्रा सत्र और से स्थिति संदर्भ सीओटी.