DEV Community

Muhammad Mohsin
Muhammad Mohsin

Posted on Edited on

I Built 5 Local-First AI Agents as n8n Workflows — No Cloud, No Monthly Fees

Every AI tool wants $20/month and your data. I got tired of that deal.

So I built AgentKit — 5 production-ready AI agents as import-ready n8n workflows that run 100% on your own machine. No cloud. No subscriptions. Your data never leaves your server.

The 5 agents

1. Telegram AI Assistant

Chat with an AI that remembers you. Conversation memory lives in Google Sheets, the brain is Ollama (free, local) or OpenAI. Just message it on Telegram.

2. Content Repurposer

Send /repurpose <topic> on Telegram — get back an X thread, LinkedIn post, Instagram caption, and YouTube title+description+tags. One input, four platforms.

3. Lead Qualifier

Webhook receives a lead — AI scores it 1-10 with reasoning — hot leads (7+) trigger an instant Telegram alert with the details. Cold ones just get logged.

4. Daily Researcher

Fires every morning at 8AM. Pulls RSS feeds, picks the top stories, AI writes a digest (English + Roman Urdu), Telegram delivers it. Wake up informed.

5. Support Bot

FAQ-only customer support. Answers strictly from your knowledge base (Google Sheets) — it cannot hallucinate because it cannot invent.

How it's built (the honest architecture)

  • n8n as the orchestration layer (self-hosted, free)
  • Ollama for local LLM (free) or OpenAI API if you prefer
  • Telegram as the universal interface (free, everyone has it)
  • Google Sheets as the zero-setup database
  • Every workflow has a CONFIG node — all keys, prompts, and settings in ONE place
  • Every workflow has a sticky note with setup instructions right on the canvas

No custom servers. No Docker nightmares. Import JSON — fill CONFIG — hit Active. First agent runs in ~15 minutes.

Free vs paid

The Community Edition is free on GitHub — all 5 workflows, import-ready:
https://github.com/onyxailabs/Agentkit

There's a $59 commercial version (one-time, client work allowed) — link in the repo README. That's the whole business model: free value first, paid license for professionals.

Try it, break it, tell me

Tested on n8n 2.43.7. If something breaks on import, drop a comment — I'll fix it same day.

What would YOU automate first?


Update (Oct 23): a reader's data worth seeing. Ali Ilyas at NodeRecipe audited 2,030 grouped public n8n workflows for error-handling declarations and found that 84.8% declare none of the five standard signals — and only 18 workflows in the whole corpus contain an Error Trigger. It measures what the files declare, not production failure rates; the full dataset (CSV) and method are public in the n8n Error Handling Study. If you import workflows from anywhere — including mine — check their failure handling before you run them.

Top comments (5)

Collapse
 
rushdeploy profile image
Rishabh Mishra •

The CONFIG node pattern is a genuinely nice touch. Too many shared workflows make you hunt through every node to find where the credentials live.
One question: how are you handling Ollama model updates breaking existing prompts in the Support Bot? That knowledge-base-only behavior is exactly where a model swap would bite.
Solid project either way, and the sticky notes on the canvas are the kind of small thing that makes a big difference.

Collapse
 
mohsinakram91 profile image
Muhammad Mohsin •

Thanks for reading so closely, Rishabh — really appreciate it. You nailed the intent behind the CONFIG node: I got tired of digging through shared workflows trying to figure out which node holds the credentials, so now everything tunable lives in exactly one place.

Great question on the Support Bot. Honestly, the model-swap risk is the thing I watch most carefully. I pin exact Ollama model tags instead of floating on latest, and I keep a note of which model version each prompt set was validated against. When a model update lands, I re-run a small set of smoke-test questions against the knowledge base before adopting it — because as you said, with knowledge-base-only behavior, even a small shift in how the model interprets retrieved context can quietly break answers. The upside of the CONFIG pattern is that when drift does show up, there is exactly one place to adjust the system prompt and temperature, then re-validate. It is manual but deliberate — I would rather catch the break myself than hear about it from a bad answer.

And yes, the sticky notes! Glad someone noticed. They are the cheapest documentation I will ever write.

Apologies for the late reply — thank you again for the thoughtful comment.

Collapse
 
rushdeploy profile image
Rishabh Mishra •

The pinned tags plus a validated-model note is a solid habit. One thing that makes the smoke test stick: keep those questions as a small eval file next to the workflows, so drift becomes a diff instead of a memory. And running it on a schedule turns it from a discipline problem into an alerting problem.

Thread Thread
 
mohsinakram91 profile image
Comment deleted
Thread Thread
 
mohsinakram91 profile image
Muhammad Mohsin •

Rishabh — first, sorry for the late reply; this deserved an answer days ago. This is the comment I'm taking home: an eval file sitting next to the workflows, so drift shows up as a diff instead of a feeling, and running it on a schedule turns it from a discipline problem into an alarm — exactly right. I'm folding both into the kit's next update: the pinned smoke questions as a small eval file beside each workflow. Thank you for this.

Some comments may only be visible to logged-in visitors. Sign in to view all comments.