n8n AI ఏజెంట్ను మీ స్వంత VPSలో ఎలా నిర్మించాలి?
n8n AI Agent నోడ్, Claude మోడల్, HTTP Request టూల్ మరియు మెమరీని ఉపయోగించి సొంతంగా AI ఏజెంట్ను ఎలా తయారు చేయాలో ఈ గైడ్ వివరిస్తుంది. ఖర్చును తగ్గించే సెట్టింగ్లను కూడా చూడండి.
n8n AI ఏజెంట్ అంటే ఏమిటి, మరియు అది చైన్ (chain) నుండి ఎలా భిన్నంగా ఉంటుంది
n8n AI ఏజెంట్ అనేది ఒకే AI Agent నోడ్, దీనికి అనుబంధంగా సబ్-నోడ్లు ఉంటాయి: ఒక చాట్ మోడల్, ఒకటి లేదా అంతకంటే ఎక్కువ టూల్స్, మరియు ఐచ్ఛికంగా మెమరీ. మీరు ఒక లక్ష్యాన్ని సాధారణ భాషలో తెలియజేస్తారు, మరియు ఆ మోడల్ సమాధానం ఇచ్చే వరకు ఏ టూల్స్ను, ఏ క్రమంలో పిలవాలో నిర్ణయిస్తుంది. కింద ఉన్నదంతా ఆ ఒక్క ఆలోచన చుట్టూ ఉన్న కాన్ఫిగరేషన్.
చైన్ దీనికి విరుద్ధంగా పనిచేస్తుంది. Basic LLM Chainలో మీరు దశలను నిర్ణయిస్తారు మరియు మోడల్ కేవలం టెక్స్ట్ను మాత్రమే పూరిస్తుంది. ఏజెంట్లో మోడల్ దశలను నిర్ణయిస్తుంది, కాబట్టి ఒకే ప్రశ్న ఈరోజు ఒక మోడల్ కాల్తో, రేపు తొమ్మిది కాల్లతో పూర్తి కావచ్చు. ఆ ఒక్క వ్యత్యాసమే ఈ గైడ్లోని ప్రతి సెట్టింగ్ను ప్రభావితం చేస్తుంది.
n8n ఇప్పటికే మీరు నియంత్రించే మెషీన్లో HTTPS వెనుక రన్ అవుతోందని ఇది భావిస్తుంది. ఒకవేళ అలా లేకపోతే, రియల్ సర్టిఫికేట్తో Dockerలో n8nను సెల్ఫ్-హోస్ట్ చేయడంతో ప్రారంభించండి, ఎందుకంటే మీరు స్టోర్ చేయబోయే API కీకి ఆ గైడ్లో సూచించిన ఎన్క్రిప్షన్-కీ బ్యాకప్ అవసరం. ఏజెంట్-యేతర పద్ధతులు, వెబ్హుక్ సమ్మరైజర్లు మరియు షెడ్యూల్డ్ క్లాసిఫైయర్ల కోసం, Claude మరియు n8n వర్క్ఫ్లో పద్ధతులు చూడండి.
ఇక్కడ ఉన్న ఏ ఫీల్డ్ పేరునైనా నమ్మే ముందు మీ వెర్షన్ను తనిఖీ చేయండి, ఎందుకంటే n8n AI నోడ్స్ను తరచుగా మారుస్తుంది.
docker compose exec n8n n8n --versionఈ గైడ్లోని పేర్లు జూలై 2026 నాటికి n8n ప్రస్తుత స్టేబుల్ వెర్షన్కు అనుగుణంగా ఉన్నాయి. వెర్షన్ 1.82.0 నుండి ప్రతి AI Agent నోడ్ Tools Agentగా రన్ అవుతుంది, కాబట్టి పాత ఏజెంట్-టైప్ డ్రాప్డౌన్ ఇప్పుడు లేదు.
Step 1: ట్రిగ్గర్ను ఎంచుకోండి
సంభాషణ ఏజెంట్ కోసం, Chat Trigger నోడ్ను జోడించండి. మీరు ఏజెంట్ను రూపొందించేటప్పుడు Make Chat Publicly Available ఆప్షన్ను ఆఫ్ చేసి ఉంచండి, తద్వారా ఎడిటర్ యొక్క చాట్ ప్యానెల్ ద్వారా మాత్రమే దీనిని యాక్సెస్ చేయవచ్చు. ఏజెంట్ పూర్తయిన తర్వాత మరియు మీరు అథెంటికేషన్ గురించి నిర్ణయం తీసుకున్న తర్వాత దీనిని ఆన్ చేయండి.
Chat Trigger ఏజెంట్కు chatInput అనే ఫీల్డ్ను అందిస్తుంది. స్టెప్ 3లో ఈ పేరు చాలా కీలకం, దీనిని తప్పుగా నమోదు చేయడం వల్ల తరచుగా మొదటి వైఫల్యం సంభవిస్తుంది.
అటెండెడ్ కాని (unattended) ఏజెంట్ కోసం, దానికి బదులుగా Schedule Trigger లేదా Webhook నోడ్ను ఉపయోగించండి. ఇవి ఏవీ chatInputని ఉత్పత్తి చేయవు, కాబట్టి మీరు ప్రాంప్ట్ను మీరే స్వయంగా వ్రాయవలసి ఉంటుంది.
Step 2: the model credential
కాన్వాస్పై ఒక AI Agent నోడ్ను ఉంచండి. n8n వెంటనే దాని కింద ఖాళీగా ఉన్న Chat Model కనెక్టర్ను చూపుతుంది. అక్కడ ఒక Anthropic Chat Model సబ్-నోడ్ను జత చేయండి.
platform.claude.com లోని Anthropic Console లో, Settings మరియు ఆ తర్వాత API Keys విభాగంలో క్రెడెన్షియల్ను సృష్టించండి. ఈ కీ ఒకసారి మాత్రమే కనిపిస్తుంది. API వినియోగానికి టోకెన్ల ప్రాతిపదికన బిల్లు పడుతుంది మరియు ఇది Claude.ai సబ్స్క్రిప్షన్కు భిన్నమైనది, కాబట్టి మొదటిసారి రన్ చేసే ముందు ఖాతాలో బిల్లింగ్ సెటప్ చేయాలి.
కంపెనీని బట్టి కాకుండా, ఏజెంట్ను బట్టి మోడల్ను ఎంచుకోండి. ఏదైనా సమాచారాన్ని వెతికి నివేదించే ఒకే టూల్ ఉన్న ఏజెంట్ Haiku పై బాగా పనిచేస్తుంది. జూలై 2026 నాటికి, దీని ధర మిలియన్ ఇన్పుట్ టోకెన్లకు $1 మరియు మిలియన్ అవుట్పుట్ టోకెన్లకు $5 గా ఉంది. ఏజెంట్కు అనేక టూల్స్ ఉండి, వాటి మధ్య ప్లాన్ చేయాల్సి వచ్చినప్పుడు, Sonnet కు మారండి. తక్కువ ధర గల మోడల్ తప్పుడు టూల్ను నాలుగుసార్లు పిలవడం వల్ల కలిగే వైఫల్యాన్ని మీరు నివారించాలి; ఎందుకంటే ఇది ఖరీదైన మోడల్ సరైన టూల్ను ఒక్కసారి పిలవడం కంటే ఎక్కువ ఖర్చు అవుతుంది.
సబ్-నోడ్ ఆప్షన్లలో Maximum Number of Tokens ను సెట్ చేయండి. ఇది మోడల్ ఇచ్చే ప్రతి సమాధానం యొక్క నిడివిని పరిమితం చేస్తుంది. దీన్ని పెద్ద డిఫాల్ట్ విలువ వద్ద వదిలేస్తే, ఒక పొరపాటు రన్ చాలా సుదీర్ఘమైన సమాధానాన్ని ఇచ్చి మీకు బిల్లు పెరిగేలా చేయవచ్చు.
n8n డాక్యుమెంటేషన్ నుండి అందరికీ ఎదురయ్యే ఒక ముఖ్యమైన విషయం: సబ్-నోడ్లోని ఎక్స్ప్రెషన్లు ఎల్లప్పుడూ మొదటి ఇన్పుట్ ఐటమ్కు అనుగుణంగానే పనిచేస్తాయి, ప్రతి ఐటమ్కు విడివిడిగా పనిచేయవు. ప్రతి ఐటమ్కు సంబంధించిన ఎక్స్ప్రెషన్లను రూట్ నోడ్ యొక్క ప్రాంప్ట్ ఫీల్డ్లలో ఉంచండి.
Step 3: ఏజెంట్ అందుకునే ప్రాంప్ట్
AI Agent నోడ్ను తెరవండి. Prompt పారామీటర్లో రెండు సెట్టింగ్లు ఉంటాయి.
- Take from previous node automatically అనేది
chatInputఅనే ఇన్కమింగ్ ఫీల్డ్ కోసం వేచి ఉంటుంది. Chat Trigger వెనుక ఇది సరైన ఎంపిక. - Define below అనేది Prompt (User Message) ఫీల్డ్ను చూపిస్తుంది, అక్కడ మీరు స్టాటిక్ టెక్స్ట్ను లేదా ఎక్స్ప్రెషన్ను వ్రాయవచ్చు. Schedule Trigger లేదా Webhook నోడ్ వెనుక ఇది సరైన ఎంపిక.
ముందు భాగంలో Webhook నోడ్ ఉన్నప్పుడు, POST బాడీ $json.body కింద చేరుతుంది, కాబట్టి ప్రాంప్ట్ ఫీల్డ్ ఈ విధంగా కనిపిస్తుంది.
Check the current status of {{ $json.body.service }} and tell me
whether it is up. If it is down, say for how long. No preamble.Step 4: ఏజెంట్కు ఒక టూల్ను అందించడం
టూల్ సబ్-నోడ్ లేని AI Agent నోడ్ రన్ అవ్వదు. ఒకే ఒక పని చేసే టూల్తో ప్రారంభించండి, ఎందుకంటే సరిగ్గా కాన్ఫిగర్ చేయని నాలుగు టూల్స్ కంటే, ఒక పని చేసే టూల్ మీకు ఎక్కువ నేర్పిస్తుంది.
ఏజెంట్ యొక్క Tool కనెక్టర్కు HTTP Request నోడ్ను జత చేయండి. సాధారణ HTTP Request నోడ్ను ఎలా కాన్ఫిగర్ చేస్తారో అలాగే దీన్ని కూడా కాన్ఫిగర్ చేయండి, ఆపై ముందుగా షెల్ నుండి ఆ ఎండ్పాయింట్ను పరీక్షించండి.
curl -s -H 'Accept: application/json' \
https://status.example.com/api/status/database | head -c 400ఒకవేళ ఆ curl కమాండ్ ఎర్రర్ను లేదా HTML లాగిన్ పేజీని ఇస్తే, ఏజెంట్ కూడా విఫలమవుతుంది. ఇది నిజానికి URL లేదా అథెంటికేషన్ సమస్య అయినప్పటికీ, మోడల్ సమస్యగా కనిపిస్తుంది. దీన్ని నోడ్లో కాకుండా షెల్లోనే సరిచేయండి.
టూల్ యొక్క Description ఫీల్డ్ మీ సహోద్యోగుల కోసం రాసే డాక్యుమెంటేషన్ కాదు. ఈ టూల్ అవసరమా కాదా అని నిర్ణయించుకునేటప్పుడు మోడల్ చదివే ఏకైక సమాచారం ఇదే. ఇది ఏమి తిరిగి ఇస్తుందో స్పష్టమైన వాక్యంగా రాయండి: "Returns the current up or down state and the downtime duration for one monitored service, as JSON."
రిక్వెస్ట్లో కొంత భాగాన్ని మోడల్ పూరించడానికి, $fromAI() ఎక్స్ప్రెషన్ను ఉపయోగించండి. ఇది AI Agent నోడ్కు అనుసంధానించబడిన టూల్స్లో మాత్రమే పనిచేస్తుంది, Code టూల్లో పనిచేయదు.
{{ $fromAI('service', 'The name of the service to look up', 'string') }}దీని ఆర్గ్యుమెంట్లు key, ఆపై ఐచ్ఛికంగా description, type మరియు defaultValue. కీ (key) తప్పనిసరిగా 1 నుండి 64 అక్షరాల మధ్య ఉండాలి, ఇందులో అక్షరాలు, అంకెలు, అండర్స్కోర్లు మరియు హైఫన్లను మాత్రమే ఉపయోగించాలి. టైప్ (type) అనేది string, number, boolean లేదా json లలో ఒకటి అయి ఉండాలి, డిఫాల్ట్గా ఇది string ఉంటుంది. పూర్తి స్థాయి కాల్ ఇలా ఉంటుంది.
{{ $fromAI('limit', 'How many records to return', 'number', 20) }}కీ అనేది ఒక సూచన మాత్రమే, ఇప్పటికే ఉన్న డేటాకు రిఫరెన్స్ కాదు. $fromAI('service') అనేది ఎక్కడి నుండైనా service అనే ఫీల్డ్ను చదవదు. ఇది మోడల్కు "ఒక విలువను సృష్టించి దానికి service అని పేరు పెట్టు" అని చెబుతుంది, అప్పుడు మోడల్ సంభాషణలో, ఇన్పుట్ డేటాలో మరియు ఇతర టూల్ ఫలితాలలో వెతికి ఒక విలువను కనుగొంటుంది. చాట్ వర్క్ఫ్లోలో అయితే, ఇది నేరుగా వినియోగదారుని అడగవచ్చు.
Step 5: మెమరీ, మరియు ఏజెంట్ ఎందుకు మర్చిపోతుంది
మెమరీ సబ్-నోడ్ లేకపోతే, ప్రతి సందేశం మొదటి నుండి మొదలవుతుంది. ఇటీవలి సంభాషణను నిల్వ చేయడానికి Simple Memory సబ్-నోడ్ను జత చేయండి.
దీనికి రెండు పారామీటర్లు ఉన్నాయి. Session Key అనేది ఇది ఏ సంభాషణో నిర్ణయిస్తుంది, కాబట్టి వేర్వేరు కీలు ఉన్న ఇద్దరు వినియోగదారులకు విడివిడి హిస్టరీలు ఉంటాయి. Context Window Length అనేది ప్రాంప్ట్లోకి ఎన్ని మునుపటి సంభాషణలు తిరిగి పంపబడతాయో నిర్ణయిస్తుంది.
Context Window Length అనేది నాణ్యతను పెంచే డయల్ మాత్రమే కాదు, ఇది ఖర్చును కూడా పెంచే డయల్. ఎందుకంటే గుర్తుంచుకున్న ప్రతి సంభాషణ, తదుపరి ప్రతి కాల్లో ఇన్పుట్ టోకెన్లుగా తిరిగి పంపబడుతుంది. చాట్ చేసే ఏజెంట్లో 20 విండో పరిమాణం ఉంటే, మీరు మొదటి సందేశాల కోసం ఇరవై సార్లు చెల్లించాల్సి ఉంటుంది.
n8n క్యూ మోడ్ (queue mode)లో రన్ అవుతున్నప్పుడు, Simple Memory యాక్టివ్ ప్రొడక్షన్ వర్క్ఫ్లోలో పనిచేయదు. ఎందుకంటే హిస్టరీ అనేది షేర్డ్ స్టోర్లో కాకుండా వర్క్ఫ్లో సొంత డేటాలోనే ఉంటుంది. క్యూ-మోడ్ ఇన్స్టన్స్లో, దానికి బదులుగా Postgres Chat Memory సబ్-నోడ్ను ఉపయోగించండి మరియు మెయిన్ ప్రాసెస్ మరియు వర్కర్లు రెండూ యాక్సెస్ చేయగల డేటాబేస్ను దానికి పాయింట్ చేయండి.
Step 6: the System Message
ఏజెంట్ యొక్క Options తెరిచి, ఒక System Messageను జోడించండి. ఇక్కడే ఉద్యోగ వివరణ (job description) ఉంటుంది, మరియు వర్క్ఫ్లోలో ఇది అత్యంత ప్రభావవంతమైన టెక్స్ట్.
You are an infrastructure status assistant. Always call the status
tool before answering a question about whether something is running.
Never guess. If the tool returns an error, say so and stop."Always call the status tool before answering" అనేది అక్కడ నిజమైన పనిని చేస్తుంది. ఇది లేకపోతే, తనకు సమాధానం తెలుసని భావించే మోడల్, టూల్ను ఉపయోగించకుండా తన జ్ఞాపకశక్తి నుండి సమాధానం ఇస్తుంది. మీ ఇన్ఫ్రాస్ట్రక్చర్ మారిన వెంటనే, ఆ సమాధానం తప్పుగా ఉండే అవకాశం ఉంది.
ఏజెంట్ ఎందుకు లూప్ అవుతుంది మరియు దానిని ఆపేది ఏమిటి
Options విభాగంలో Max Iterations కూడా ఉంటుంది, దీని డిఫాల్ట్ విలువ 10. ఒక ఇటరేషన్ అంటే ఒక మోడల్ కాల్ మరియు దానికి ప్రతిస్పందనగా వచ్చిన టూల్ ఫలితం కాంటెక్స్ట్లోకి చేర్చబడటం. కాబట్టి, ఒక ఏజెంట్ రన్ అంటే కేవలం ఒక API కాల్ కాదు, ఇది గరిష్టంగా పది కాల్స్ వరకు ఉండవచ్చు. ప్రతి కాల్లోనూ పెరుగుతున్న సంభాషణ మొత్తం ఇన్పుట్గా వెళ్తుంది.
దీనిని తగ్గించండి. చాలా సింగిల్-టూల్ ఏజెంట్లు రెండు ఇటరేషన్లలోనే పూర్తవుతాయి. 3 లేదా 4 పరిమితిని సెట్ చేయడం వల్ల, లూప్ అదుపు తప్పినప్పుడు అది ఎగ్జిక్యూషన్ లిస్ట్లో స్పష్టంగా కనిపించేలా విఫలమవుతుంది.
మీరు డీబగ్గింగ్ చేస్తున్నప్పుడు, Return Intermediate Steps ఆప్షన్ను ఆన్ చేయండి. అప్పుడు తుది అవుట్పుట్లో ఏజెంట్ చేసిన టూల్ కాల్స్ కనిపిస్తాయి. దీని ద్వారా "మోడల్ టూల్ను పిలవలేదు" అనే దానికి మరియు "టూల్ ఏమీ ఉపయోగపడని ఫలితాన్ని ఇచ్చింది" అనే దానికి మధ్య తేడాను మీరు గుర్తించవచ్చు. లైవ్ లోకి వెళ్లే ముందు దీనిని ఆఫ్ చేయండి, ఎందుకంటే ఆ దశలు తుది వినియోగదారుకు అనవసరమైన సమాచారం (noise) అవుతాయి.
షెల్ నుండి రన్ ఎలా జరుగుతుందో గమనించండి.
docker compose logs -f n8nపర్యవేక్షణ లేని ఏజెంట్ ఖర్చులను నియంత్రించడం
Chat Trigger వెనుక ఉన్న ఏజెంట్లో ఒక మనిషి ఉంటారు, సమాధానం తప్పుగా అనిపిస్తే వారు దానిని ఆపివేస్తారు. Schedule Trigger వెనుక ఉన్న ఏజెంట్ను ఎవరూ పర్యవేక్షించరు. దీనికి సంబంధించిన పూర్తి వివరాలు AI agent cost control on an always-on VPS లో ఉన్నాయి. నాలుగు సెట్టింగ్లు ఇక్కడ ప్రధాన పాత్ర పోషిస్తాయి.
- మోడల్ సబ్-నోడ్లో Maximum Number of Tokens ను పరిమితం చేయండి, తద్వారా ఏ ఒక్క ప్రతిస్పందన కూడా సుదీర్ఘంగా ఉండదు.
- Max Iterations ను పని పూర్తి కావడానికి అవసరమైన అతి తక్కువ సంఖ్యకు సెట్ చేయండి.
- టూల్ ప్రతిస్పందనలను చిన్నవిగా ఉంచండి. 4,000 లైన్ల JSON బ్లబ్ను తిరిగి ఇచ్చే టూల్, ఆ మొత్తం డేటాను తదుపరి మోడల్ కాల్లోకి, ఆపై అదే రన్లో జరిగే ప్రతి కాల్లోకి పంపుతుంది.
- ఏజెంట్కు అసలు షెడ్యూల్ అవసరమా అని ఆలోచించండి. ప్రతి ఐదు నిమిషాలకు ఒకసారి రన్ అయ్యే జాబ్ రోజుకు 288 సార్లు ట్రిగ్గర్ అవుతుంది. ఒక రన్కు అయ్యే ఖర్చును ఈ సంఖ్యతో గుణించాల్సి ఉంటుంది.
మీరు మార్పులు చేస్తున్నప్పుడు వర్క్ఫ్లోను డీయాక్టివేట్ చేయండి. Schedule Trigger ఉన్న యాక్టివ్ వర్క్ఫ్లో n8n సేవ్ చేసిన వెర్షన్పై రన్ అవుతూనే ఉంటుంది, ఇది మీరు స్క్రీన్పై చూస్తున్న వెర్షన్ కాకపోవచ్చు.
FAQ
నా AI Agent నోడ్ ఎందుకు అమలు కావట్లేదు?
AI Agent నోడ్కు ఒక chat model సబ్-నోడ్ మరియు కనీసం ఒక tool సబ్-నోడ్ అవసరం. మోడల్ ఉండి టూల్ లేని నోడ్, ఏ API కాల్ చేయకముందే విఫలమవుతుంది. ఒక టూల్ను జత చేసి, మళ్ళీ రన్ చేయండి.
ఏజెంట్ సమాధానం ఇస్తోంది, కానీ నా టూల్ను ఎందుకు పిలవడం లేదు?
ఇది దాదాపు ఎల్లప్పుడూ టూల్ యొక్క Description ఫీల్డ్ వల్ల జరుగుతుంది. మోడల్ ఆ వివరణలను చదివి టూల్స్ను ఎంచుకుంటుంది, కాబట్టి "HTTP Request" వంటి వివరణ ఆ టూల్ ఎప్పుడు ఉపయోగపడుతుందో చెప్పదు. ఏ డేటా వస్తుంది మరియు ఏ సందర్భంలో అది ఉపయోగకరంగా ఉంటుందో వివరిస్తూ దాన్ని తిరిగి రాయండి, ఆపై సమాధానం ఇచ్చే ముందు ఆ టూల్ను పిలవమని ఏజెంట్కు సూచిస్తూ System Messageలో ఒక లైన్ జోడించండి.
ఒకే ప్రశ్న ప్రతిసారీ వేర్వేరు ఖర్చుతో ఎందుకు రన్ అవుతోంది?
ఎందుకంటే మోడల్ ఎన్ని స్టెప్స్ తీసుకోవాలో నిర్ణయిస్తుంది. ప్రతి ఇటరేషన్ ఇప్పటివరకు జరిగిన సంభాషణ మొత్తాన్ని, మునుపటి టూల్ అవుట్పుట్తో సహా మళ్ళీ పంపుతుంది, కాబట్టి నాలుగు ఇటరేషన్లు తీసుకునే రన్, ఒకే కాల్ కంటే నాలుగు రెట్లు ఎక్కువ ఖర్చు అవుతుంది. Max Iterations అనేది దానికి గరిష్ట పరిమితి, మరియు Return Intermediate Steps ఒక రన్ వాస్తవానికి ఎన్ని స్టెప్స్ ఉపయోగించిందో మీకు చూపుతుంది.
ఎడిటర్లో మెమరీ పనిచేస్తోంది, కానీ ప్రొడక్షన్లో ఎందుకు పనిచేయడం లేదు?
ఇన్స్టాన్స్ queue మోడ్లో రన్ అవుతుందో లేదో తనిఖీ చేయండి. Simple Memory హిస్టరీని వర్క్ఫ్లో యొక్క ఎగ్జిక్యూషన్ డేటాలోనే నిల్వ చేస్తుంది, ఇది వేరే వర్కర్ ప్రాసెస్కు పంపబడినప్పుడు అందుబాటులో ఉండదు, కాబట్టి యాక్టివ్ ప్రొడక్షన్ వర్క్ఫ్లో దాన్ని కోల్పోతుంది. Postgres Chat Memory సబ్-నోడ్ను ఉపయోగించండి, ఇది అన్ని వర్కర్లు షేర్ చేసుకునే డేటాబేస్లో హిస్టరీని భద్రపరుస్తుంది.