SSD Nodes Learn Hosting plans →
Mga Gabay Matt ConnorNi Matt Connor · Na-update 2026-08-26

Paano gumawa ng n8n AI agent sa sariling VPS

Gumawa ng gumaganang n8n AI agent gamit ang AI Agent node, Claude credential, HTTP Request tool, memory, trigger, at cost caps sa settings.

Ano ang n8n AI agent at paano ito naiiba sa chain

Ang n8n AI agent ay isang AI Agent node na may mga sub-node na nakakabit dito: isang chat model, isa o higit pang tool, at optional na memory. Nagbibigay ka ng goal sa plain language, at nagpapasya ang model kung aling tool ang tatawagin at kung anong pagkakasunod-sunod hanggang makapagbigay ito ng sagot. Ang lahat ng sumusunod ay configuration sa paligid ng iisang ideyang ito.

Kabaligtaran ang paraan ng pagtakbo ng chain. Sa Basic LLM Chain, ikaw ang nagtatakda ng mga hakbang at ang model ang nagbibigay lamang ng text. Sa agent, ang model ang nagpapasya sa mga hakbang. Dahil dito, maaaring isang model call lang ang kailangan para sa parehong tanong ngayon, pero siyam naman bukas. Ang pagkakaibang ito ang batayan ng bawat setting sa guide na ito.

Ipinapalagay na tumatakbo na ang n8n sa likod ng HTTPS sa isang machine na kontrolado mo. Kung hindi pa, magsimula sa self-hosting ng n8n sa Docker gamit ang totoong certificate, dahil kailangan ng API key na ise-save mo ang backup ng encryption key na ipinag-uutos ng guide na iyon. Para sa mga pattern na hindi agent, gaya ng webhook summarizers at scheduled classifiers, tingnan ang mga pattern ng Claude at n8n workflow.

Suriin muna ang version bago umasa sa anumang field name dito, dahil madalas baguhin ng n8n ang mga AI node.

docker compose exec n8n n8n --version

Ang mga pangalan sa guide na ito ay tumutugma sa kasalukuyang stable version ng n8n noong July 2026. Simula version 1.82.0, lahat ng AI Agent node ay tumatakbo bilang Tools Agent, kaya wala na ang dating agent-type dropdown.

Hakbang 1: piliin ang trigger

Para sa conversational agent, magdagdag ng Chat Trigger node. Iwanang naka-off ang Make Chat Publicly Available habang ginagawa mo ito upang editor's chat panel lamang ang makagamit nito. I-on ito kapag tapos na ang agent at nakapagpasya ka na tungkol sa authentication.

Ipinapasa ng Chat Trigger sa agent ang field na tinatawag na chatInput. Mahalaga ang pangalang ito sa step 3, at ang maling pangalan nito ang pinakakaraniwang unang sanhi ng failure.

Para sa unattended agent, gumamit na lang ng Schedule Trigger o Webhook node. Walang ibinibigay na chatInput ang alinman sa mga ito, kaya ikaw mismo ang magsusulat ng prompt.

Hakbang 2: ang model credential

Maglagay ng AI Agent node sa canvas. Agad na magpapakita ang n8n ng walang laman na Chat Model connector sa ilalim nito. I-attach doon ang Anthropic Chat Model sub-node.

Gawin ang credential sa Anthropic Console sa platform.claude.com, sa ilalim ng Settings at pagkatapos ay API Keys. Isang beses lang ipapakita ang key. Sinisingil ang API usage batay sa bawat token at hiwalay ito sa anumang Claude.ai subscription, kaya kailangang naka-set up ang billing ng account bago ang unang run.

Piliin ang model para sa bawat agent, hindi para sa buong kumpanya. Maayos na tumatakbo sa Haiku ang isang agent na gumagamit ng isang tool para maghanap ng impormasyon at mag-ulat nito. Noong July 2026, nakalista ang Haiku sa $1 bawat milyong input token at $5 bawat milyong output token. Kapag marami nang tool ang agent at kailangan nitong magplano kung paano gagamitin ang mga ito, lumipat sa Sonnet. Ang iniiwasan mong failure ay ang murang model na maling tool ang tinatawag nang apat na beses, na maaaring mas magastos kaysa sa mamahaling model na tamang tool ang tinatawag nang isang beses.

Itakda ang Maximum Number of Tokens sa options ng sub-node. Nililimitahan nito ang haba ng bawat response na ginagawa ng model. Kapag iniwan ito sa malaking default value, maaaring makagawa ng napakahabang sagot ang isang magulong run at masingil ka para rito.

May isang caveat sa n8n docs na madalas nakakaligtaan: ang expressions sa loob ng sub-node ay palaging nire-resolve batay sa unang input item, hindi bawat item. Ilagay ang mga expression na para sa bawat item sa prompt fields ng root node.

Hakbang 3: ang prompt na natatanggap ng agent

Buksan ang AI Agent node. May dalawang setting ang Prompt parameter.

  • Awtomatikong Take from previous node ang inaasahan ay may incoming field na pinangalanang chatInput. Ito ang tamang piliin kapag nasa likod ito ng Chat Trigger.
  • Ipinapakita ng Define below ang field na Prompt (User Message) kung saan maaari kang magsulat ng static text o expression. Ito ang tamang piliin kapag nasa likod ito ng Schedule Trigger o Webhook node.

Kapag may Webhook node sa unahan, napupunta ang POST body sa ilalim ng $json.body, kaya ganito ang hitsura ng prompt field.

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.

Hakbang 4: bigyan ang agent ng isang tool

Ayaw tumakbo ng AI Agent node na walang tool sub-node. Magsimula sa isa, dahil mas marami kang matututuhan sa isang tool na gumagana kaysa sa apat na hindi kumpleto ang configuration.

Ikabit ang HTTP Request node sa Tool connector ng agent. I-configure ito eksakto gaya ng regular na HTTP Request node, pagkatapos ay subukan muna ang endpoint mula sa shell.

curl -s -H 'Accept: application/json' \
  https://status.example.com/api/status/database | head -c 400

Kung error o HTML login page ang ibinalik ng curl na iyon, mabibigo rin ang agent. Magmumukhang problema sa model ang failure kahit URL o authentication problem talaga ito. Ayusin ito sa shell, hindi sa node.

Ang Description field ng tool ay hindi dokumentasyon para sa mga katrabaho mo. Ito lamang ang binabasa ng model kapag nagpapasya kung relevant ang tool na ito. Isulat ito bilang malinaw na pahayag tungkol sa ibinabalik nito: "Ibinabalik ang kasalukuyang up o down state at tagal ng downtime ng isang mino-monitor na service, bilang JSON."

Para hayaang punan ng model ang bahagi ng request, gamitin ang $fromAI() expression. Gumagana lamang ito sa mga tool na nakakonekta sa AI Agent node, at hindi ito gumagana sa Code tool.

{{ $fromAI('service', 'The name of the service to look up', 'string') }}

Ang mga argument ay key, kasunod ang optional na description, type at defaultValue. Dapat 1 hanggang 64 character ang key, gamit ang mga letra, digit, underscore at hyphen. Isa sa string, number, boolean o json ang type, at ang default nito ay string. Ganito ang mas kumpletong call.

{{ $fromAI('limit', 'How many records to return', 'number', 20) }}

Hint lamang ang key, hindi ito reference sa umiiral na data. Hindi naghahanap ang $fromAI('service') ng field na service saanman. Sinasabi nito sa model na "gumawa ng value at tawagin itong service", at naghahanap ang model ng value sa conversation, input data, at iba pang tool results. Sa chat workflow, maaari nitong direktang tanungin ang user.

Karaniwang pangalawang tool ang web search. Dahil isa lamang itong HTTP endpoint, maaari mong ituro ang node na ito sa sarili mong SearXNG instance sa halip na paid search API, basta ituring mong untrusted text ang bawat page na ibinabalik nito dahil napapasok na ito sa prompt.

Hakbang 5: memory, at kung bakit nakakalimot ang agent

Kung walang memory sub-node, nagsisimula sa wala ang bawat message. Mag-attach ng Simple Memory sub-node upang panatilihin ang kamakailang conversation.

Mayroon itong dalawang parameter. Tinutukoy ng Session Key kung aling conversation ito, kaya magkahiwalay ang history ng dalawang user na magkaiba ang key. Tinutukoy ng Context Window Length kung ilang naunang interaction ang muling isasama sa prompt.

Ang Context Window Length ay parehong cost dial at quality dial, dahil ipinapadala muli bilang input tokens ang bawat naalalang turn sa bawat kasunod na call. Sa isang chatty agent, ang window na 20 ay nangangahulugang babayaran mo nang dalawampung beses ang parehong mga naunang message.

Hindi gumagana ang Simple Memory sa active production workflow kapag tumatakbo ang n8n sa queue mode, dahil nasa sariling data ng workflow ang history at wala ito sa shared store. Sa queue-mode instance, gamitin sa halip ang Postgres Chat Memory sub-node at ituro ito sa database na parehong maaabot ng main process at ng workers.

Hakbang 6: ang System Message

Buksan ang Options ng agent at magdagdag ng System Message. Dito ilalagay ang job description, at ito ang text na may pinakamalaking epekto sa workflow.

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.

May aktuwal na silbi ang “Always call the status tool before answering.” Kung wala ito, lalaktawan ng model na naniniwalang alam na nito ang sagot ang tool at sasagot mula sa memorya. Magiging mali ito nang may kumpiyansa kapag nagbago ang iyong infrastructure.

Bakit naglo-loop ang agent, at ano ang pumipigil dito

Makikita rin sa Options ang Max Iterations, na may default na 10. Ang isang iteration ay isang model call kasama ang isang tool result na ibinabalik sa context. Kaya ang isang agent run ay hindi isang API call lamang. Maaari itong umabot sa sampung call, at dala ng bawat isa ang buong lumalaking conversation bilang input.

Ibaba ang value nito. Kadalasang natatapos ang mga single-tool agent sa dalawang iteration. Ang limit na 3 o 4 ay nagiging malinaw na failure ang runaway loop na makikita mo sa execution list.

Habang nagde-debug, i-enable ang Return Intermediate Steps. Isasama ng final output ang mga tool call na ginawa ng agent habang tumatakbo ito. Sa ganitong paraan, matutukoy mo kung “hindi kailanman tinawag ng model ang tool” o “walang kapaki-pakinabang na ibinalik ang tool.” I-disable itong muli bago mag-live, dahil ingay lamang ang mga step na ito para sa end user.

Panoorin ang isang run mula sa shell.

docker compose logs -f n8n

Pagpigil sa tahimik na labis na paggastos ng unattended agent

Ang agent sa likod ng Chat Trigger ay may taong sumusubaybay dito, at ihihinto ng taong iyon ang agent kapag mukhang mali ang sagot. Walang nagbabantay sa agent sa likod ng Schedule Trigger. Ang mino-monitor mo rito ay gastusin sa model, hindi gastusin sa lisensya, dahil gumagana ang mga node ng agent, tool, at memory sa libreng self-hosted edition, at ang mga feature na nangangailangan ng paid key ay kadalasang para sa team at governance. Nasa AI agent cost control sa always-on VPS ang buong talakayan. Apat na setting ang karaniwang sapat para rito.

  • Magtakda ng limit sa Maximum Number of Tokens sa model sub-node, para walang iisang response na tumakbo nang masyadong mahaba.
  • Itakda ang Max Iterations sa pinakamaliit na bilang na nakakakumpleto pa rin sa task.
  • Panatilihing maliit ang tool responses. Kapag nagbalik ang isang tool ng 4,000-line na JSON blob, lahat nito ay isasama sa susunod na model call, at sa bawat kasunod na call sa parehong run.
  • Tanungin kung kailangan ba talaga ng agent ang schedule. Ang job na tumatakbo bawat limang minuto ay umaandar nang 288 beses bawat araw. Anuman ang gastos ng isang run, iyon ang bilang na dapat mong i-multiply.

I-deactivate ang workflow habang nag-i-iterate. Ang active na workflow na may Schedule Trigger ay patuloy na tumatakbo gamit ang bersyong na-save ng n8n, na hindi palaging kapareho ng bersyong nasa screen mo.

FAQ

Bakit ayaw mag-execute ng AI Agent node ko?

Nangangailangan ang AI Agent node ng chat model sub-node at kahit isang tool sub-node. Mabibigo ang node na may model pero walang tool bago pa ito gumawa ng anumang API call. Mag-attach ng isang tool, kahit simple lang, at patakbuhin itong muli.

Sumasagot ang agent, pero hindi nito kailanman tinatawag ang tool ko. Ano ang problema?

Halos palaging nasa Description field ng tool ang problema. Pinipili ng model ang mga tool sa pamamagitan ng pagbasa sa mga description ng mga ito. Kaya walang sinasabi rito ang description na gaya ng "HTTP Request" tungkol sa kung kailan gagamitin ang tool. Isulat itong muli upang ipaliwanag kung anong data ang ibinabalik nito at sa anong sitwasyon ito kapaki-pakinabang. Pagkatapos, magdagdag ng linya sa System Message na nagtuturo sa agent na tawagin muna ang tool bago sumagot.

Bakit magkaiba ang gastos sa parehong tanong sa bawat run?

Dahil ang model ang pumipili ng bilang ng mga step. Sa bawat iteration, ipinapadalang muli ang buong conversation hanggang sa puntong iyon, kasama ang dating tool output. Kaya ang run na umabot sa apat na iteration ay maaaring gumastos nang higit na malaki kaysa apat na beses ng isang tawag. Ang Max Iterations ang nagtatakda ng pinakamataas na bilang nito, at ipinapakita ng Return Intermediate Steps kung ilang step ang aktuwal na ginamit ng isang run.

Gumagana ang memory ko sa editor pero hindi sa production. Ano ang nagbago?

Tingnan kung tumatakbo ang instance sa queue mode. Iniimbak ng Simple Memory ang history sa execution data mismo ng workflow. Hindi ito nananatili kapag ipinasa ang workflow sa hiwalay na worker process, kaya nawawala ito sa aktibong production workflow. Gamitin sa halip ang Postgres Chat Memory sub-node. Iniimbak nito ang history sa database na ginagamit ng bawat worker.