A2A JS Sample: Movie Agent

स्रोत कोड
परियोजना अवलोकन
यह परियोजना A2A (Agent2Agent) फ्रेमवर्क के साथ निर्मित एक व्यापक मूवी जानकारी एजेंट का प्रदर्शन करती है। यह एजेंट विस्तृत मूवी जानकारी, खोज कार्यक्षमता और OpenRouter एकीकरण के माध्यम से AI-संचालित बातचीत क्षमताएं प्रदान करने के लिए TMDB (The Movie Database) API का लाभ उठाता है।
मुख्य विशेषताएं
- उन्नत TMDB API एकीकरण: Bearer टोकन प्रमाणीकरण का उपयोग करके आधुनिक कार्यान्वयन
- व्यापक मूवी खोज: वर्ष, वयस्क सामग्री आदि जैसे फिल्टर के साथ मूवी खोजें
- मल्टी-खोज क्षमताएं: मूवी, टीवी शो और लोगों को एक साथ खोजें
- AI-संचालित बातचीत: बुद्धिमान मूवी प्रश्नों के लिए OpenRouter API का उपयोग करता है
- प्रॉक्सी समर्थन: नेटवर्क अनुरोधों के लिए अंतर्निहित SOCKS5/HTTP प्रॉक्सी समर्थन
- A2A फ्रेमवर्क: Agent2Agent संचार प्रोटोकॉल को लागू करता है
- CLI इंटरफेस: परीक्षण के लिए इंटरैक्टिव कमांड-लाइन इंटरफेस
- Express सर्वर: एजेंट संचार के लिए RESTful API एंडपॉइंट्स
परियोजना आर्किटेक्चर
परियोजना चिंताओं के स्पष्ट पृथक्करण के साथ एक मॉड्यूलर आर्किटेक्चर का पालन करती है:
src/
├── index.ts # मुख्य सर्वर प्रवेश बिंदु
├── cli.ts # कमांड-लाइन इंटरफेस
├── config/
│ └── env.ts # पर्यावरण कॉन्फ़िगरेशन
└── movie-agent/
├── index.ts # मुख्य एजेंट निष्पादक
├── tools.ts # TMDB API उपकरण
├── tmdb.ts # TMDB API क्लाइंट
└── openai.ts # OpenRouter एकीकरण
चरणबद्ध सेटअप और चलाना
1. पूर्वापेक्षाएं
- Node.js (v18 या उच्चतर)
- Bun पैकेज मैनेजर
- TMDB API खाता
- OpenRouter API खाता
2. निर्भरताएं स्थापित करें
# रिपॉजिटरी क्लोन करें
git clone https://github.com/sing1ee/a2a-js-movie-agent.git
cd a2a-js-movie-agent
# Bun का उपयोग करके निर्भरताएं स्थापित करें
bun install
3. पर्यावरण कॉन्फ़िगरेशन
परियोजना रूट में एक .env
फ़ाइल बनाएं:
# TMDB API कुंजी (Bearer टोकन)
TMDB_API_TOKEN=your_tmdb_api_token_here
# AI सुविधाओं के लिए OpenRouter API कुंजी
OPENROUTER_API_KEY=your_openrouter_api_key_here
# प्रॉक्सी कॉन्फ़िगरेशन (वैकल्पिक)
USE_PROXY=true
PROXY_URL=socks5://127.0.0.1:7890
# सर्वर कॉन्फ़िगरेशन
NODE_ENV=development
PORT=3000
4. एजेंट सर्वर चलाना
# विकास सर्वर शुरू करें
bun dev
# या उत्पादन में बिल्ड और चलाएं
bun run build
bun start
सर्वर http://localhost:3000
(या आपकी .env
फ़ाइल में निर्दिष्ट पोर्ट) पर शुरू होगा।
5. CLI इंटरफेस के साथ परीक्षण
# इंटरैक्टिव CLI चलाएं
bun cli
# या कस्टम सर्वर URL निर्दिष्ट करें
bun cli http://localhost:3000
6. एजेंट जानकारी तक पहुंच
एक बार सर्वर चलने के बाद, आप निम्नलिखित तक पहुंच सकते हैं:
- एजेंट कार्ड:
http://localhost:3000/.well-known/agent.json
- API दस्तावेज़ीकरण: A2A फ्रेमवर्क एंडपॉइंट्स के माध्यम से उपलब्ध
परियोजना तर्क स्पष्टीकरण
मुख्य घटक
- MovieAgentExecutor: मुख्य एजेंट तर्क जो उपयोगकर्ता प्रश्नों को संसाधित करता है
- TMDB उपकरण: मूवी डेटा पुनर्प्राप्ति के लिए पांच विशेष उपकरण
- OpenAI एकीकरण: OpenRouter के माध्यम से AI-संचालित बातचीत को संभालता है
- A2A फ्रेमवर्क: एजेंट संचार प्रोटोकॉल का प्रबंधन करता है
उपलब्ध उपकरण
एजेंट मूवी जानकारी के लिए पांच मुख्य उपकरण प्रदान करता है:
- searchMovies: वैकल्पिक फिल्टर (वर्ष, वयस्क सामग्री) के साथ बुनियादी मूवी खोज
- searchPeople: अभिनेताओं, निर्देशकों और अन्य फिल्म उद्योग व्यक्तित्वों की खोज
- getMovieDetails: किसी विशिष्ट मूवी के बारे में विस्तृत जानकारी प्राप्त करें
- searchMoviesWithDetails: एक कॉल में संयुक्त खोज और विवरण (अनुशंसित)
- multiSearch: सभी सामग्री प्रकारों (मूवी, टीवी शो, लोग) में एक साथ खोजें
वर्कफ़्लो प्रक्रिया
एजेंट इस सामान्य वर्कफ़्लो का पालन करता है:
- अनुरोध प्रसंस्करण: A2A फ्रेमवर्क के माध्यम से उपयोगकर्ता प्रश्न प्राप्त करता है
- संदर्भ प्रबंधन: बातचीत इतिहास और संदर्भ बनाए रखता है
- AI विश्लेषण: उपयोगकर्ता के इरादे को समझने के लिए OpenRouter का उपयोग करता है
- उपकरण निष्पादन: प्रश्न के आधार पर उपयुक्त TMDB उपकरण कॉल करता है
- प्रतिक्रिया उत्पादन: व्यापक मूवी जानकारी को प्रारूपित और वापस करता है
- राज्य प्रबंधन: कार्य स्थिति को ट्रैक करता है और वास्तविक समय अपडेट प्रदान करता है
Mermaid अनुक्रम आरेख
sequenceDiagram
participant U as User
participant CLI as CLI Client
participant A as A2A Server
participant MA as Movie Agent
participant AI as OpenRouter API
participant TMDB as TMDB API
U->>CLI: Enter movie query
CLI->>A: Send message via A2A protocol
A->>MA: Execute task
MA->>A: Publish "working" status
A->>CLI: Stream status update
CLI->>U: Show "Processing..." message
MA->>AI: Send query with available tools
AI->>MA: Respond with tool calls
MA->>TMDB: Execute tool calls (searchMovies, getMovieDetails, etc.)
TMDB->>MA: Return movie data
MA->>AI: Send tool results
AI->>MA: Generate final response
MA->>A: Publish "completed" status with response
A->>CLI: Stream final response
CLI->>U: Display movie information
Note over MA,TMDB: Tools available:<br/>- searchMovies<br/>- searchPeople<br/>- getMovieDetails<br/>- searchMoviesWithDetails<br/>- multiSearch
तकनीकी मुख्य बातें
AI-संचालित बुद्धिमत्ता
एजेंट बुद्धिमान प्रतिक्रियाएं प्रदान करने के लिए OpenRouter का उपयोग करता है, उपयोगकर्ता प्रश्नों के आधार पर स्वचालित रूप से निर्धारित करता है कि कौन से उपकरण का उपयोग करना है। यह "टॉम क्रूज़ अभिनीत 2023 की एक्शन फिल्में खोजें" जैसे जटिल अनुरोधों को कई उपकरण कॉल्स को संयोजित करके संभाल सकता है।
उन्नत TMDB एकीकरण
बुनियादी TMDB कार्यान्वयन के विपरीत, यह एजेंट:
- आधुनिक Bearer टोकन प्रमाणीकरण का उपयोग करता है
- कुशल API उपयोग के लिए "append to response" लागू करता है
- स्वचालित रूप से पूर्ण छवि URL उत्पन्न करता है
- व्यापक त्रुटि हैंडलिंग प्रदान करता है
A2A प्रोटोकॉल अनुपालन
एजेंट A2A (Agent2Agent) प्रोटोकॉल को पूर्ण रूप से लागू करता है, जो निम्नलिखित को सक्षम बनाता है:
- एजेंट कार्ड के माध्यम से मानकीकृत एजेंट खोज
- प्रसंस्करण के दौरान वास्तविक समय स्थिति अपडेट
- उचित कार्य जीवनचक्र प्रबंधन
- बेहतर उपयोगकर्ता अनुभव के लिए स्ट्रीमिंग प्रतिक्रियाएं
प्रॉक्सी समर्थन
अंतर्निहित प्रॉक्सी समर्थन सुनिश्चित करता है कि एजेंट प्रतिबंधित नेटवर्क वातावरण में काम कर सकता है, निम्नलिखित का समर्थन करता है:
- SOCKS5 प्रॉक्सी
- HTTP/HTTPS प्रॉक्सी
- कॉन्फ़िगरेबल प्रॉक्सी सेटिंग्स
उपयोग उदाहरण
बुनियादी मूवी खोज
उपयोगकर्ता: "मुझे इंसेप्शन फिल्म के बारे में बताएं"
एजेंट: [इंसेप्शन की खोज करता है, विवरण, कलाकार और कथानक प्राप्त करता है]
जटिल प्रश्न
उपयोगकर्ता: "क्रिस्टोफर नोलन द्वारा निर्देशित 2020 की साइंस-फाई फिल्में खोजें"
एजेंट: [परिणामों को खोजने और फिल्टर करने के लिए कई उपकरणों का उपयोग करता है]
अभिनेता जानकारी
उपयोगकर्ता: "लियोनार्डो डिकैप्रियो हाल ही में किन फिल्मों में रहे हैं?"
एजेंट: [अभिनेता की खोज करता है और हाल की फिल्मोग्राफी सूचीबद्ध करता है]
विकास और परिनियोजन
परियोजना में व्यापक विकास उपकरण शामिल हैं:
- TypeScript: पूरे कोडबेस में पूर्ण प्रकार सुरक्षा
- ESLint & Prettier: कोड गुणवत्ता और स्वरूपण
- Bun: तेज़ पैकेज प्रबंधन और निष्पादन
- मॉड्यूलर आर्किटेक्चर: विस्तार और रखरखाव में आसान
निष्कर्ष
यह A2A JS मूवी एजेंट Agent2Agent फ्रेमवर्क के एक परिष्कृत कार्यान्वयन का प्रदर्शन करता है, एक शक्तिशाली मूवी जानकारी सिस्टम बनाने के लिए आधुनिक वेब तकनीकों को AI क्षमताओं के साथ जोड़ता है। यह परियोजना बुद्धिमान, बातचीत करने वाले एजेंट बनाने का एक उत्कृष्ट उदाहरण है जो बाहरी API के साथ बातचीत कर सकते हैं और उपयोगकर्ता प्रश्नों के लिए समृद्ध, संदर्भित प्रतिक्रियाएं प्रदान कर सकते हैं।
मॉड्यूलर डिज़ाइन, व्यापक त्रुटि हैंडलिंग और A2A प्रोटोकॉल का पालन इस परियोजना को सीखने के उद्देश्यों और उत्पादन परिनियोजन परिदृश्यों दोनों के लिए उपयुक्त बनाता है।