Skip to content

Monterey Bay Tech OtterBot: Local AI Agent for the Community

Posted on:April 19, 2026

OtterBot is a new bot for the Monterey Bay Tech Meetup Discord community. Running a community Discord takes real time and attention. Could $750 in hardware running in my home power a bot that could meaningfully help us care for and serve our members?

Enter Hermes Agent, the self-improving AI agent built by Nous Research. What makes it interesting is the built-in learning loop - it creates skills from experience, improves them during use, nudges itself to persist knowledge, and builds a deepening model of who you are across sessions. That sounded like exactly what a community bot needs: something that gets better the more our members interact with it. OtterBot runs locally on a single machine in my home with no subscription fees.

If you’re interested in building your own bot, I have some suggestions and links for you at the end.

What OtterBot Does

Three core goals in mind for now:

  1. Connect People - Help community members find others with shared interests
  2. Localize Info - Surface relevant local tech news and resources for the Monterey Bay area
  3. Community Management tasks - Posting our events in discord from natural language requests (which then is posted to our calendar website for those not in discord), keeping track of what members are working on and proactively suggesting relevant opportunities.
OtterBot introducing itself and explaining its three goals: Connect People, Localize Info, and Community Management
OtterBot

Community Interactions

A community member asks OtterBot how it's doing and OtterBot responds warmly
A community member says Good bot. A lil dumb. But good.
“Good bot. A lil dumb. But good.”

Role-Based Permissions

Not every request should be handled the same way. OtterBot has a permission system tied to Discord roles. Members with the “Local Confirmed” role - people who’ve been verified as part of the local community - can access more meaningful actions.

OtterBot explaining that meaningful work requests require the Local Confirmed role
OtterBot checks permissions before handling sensitive requests
A Discord user profile showing the Local Confirmed role
The “Local Confirmed” role

Smart Community Knowledge

One of the most useful features is OtterBot’s ability to recall member interests and suggest connections. When someone asks about putting together a meetup around a specific topic, OtterBot can pull from what it knows about members and suggest a shortlist of people who might be interested.

OtterBot suggesting community members who might be interested in a VR and AR meetup
OtterBot suggests members for a VR/AR meetup based on their interests

This is the “Connect People” goal in action, OtterBot could even take the next step and post the event directly in Discord and ping the suggested members a reminder.
Members can proactively share their interests with OtterBot and OtterBot will keep it in mind. It might suggest they submit their project to the Startups Monterey competition or make other connections with local groups like the Monterey Makers or Monterey Game Devs.

Automated Tasks

OtterBot can also handle recurring tasks. Here it’s setting up a daily local tech news digest - a cron job that automatically curates and posts relevant news for the Monterey Bay area.

OtterBot setting up a daily local tech news digest as an automated cron job
OtterBot configuring a daily local tech news digest
OtterBot posting a local news update with tech hub grants, local news, podcasts, and UCSC updates
A real OtterBot local news update in action

What’s Next

We’re going to continue to iterate together and I hope more of the local confirmed members will continue to work on it with me. The idea here is that every prompt should work to improve the actual system and collectively we can build a bot that will serve our local community well. The system should adapt and respond to our members’ needs.

I also want OtterBot to be able to work meaningfully on our website and contribute changes. So I plan to use cloud services for these kinds of heavy lifts and I want our members to have access to this compute as well.

If you’re in the Monterey Bay area and interested in tech, come join us on Discord and say hi to OtterBot.

Want to Create Your Own Community Bot?

If you’re inspired to build something like OtterBot for your own community, here are the tools we used and some alternatives worth checking out.

OpenClaw is an open-source personal AI assistant that runs on any platform. It’s a great starting point for building your own agent - it handles tool use, memory, and can connect to messaging platforms like Discord and Telegram. OtterBot actually started as an OpenClaw agent.

NemoClaw is NVIDIA’s take on running OpenClaw more securely inside their OpenShell infrastructure with managed inference. If you have NVIDIA hardware and want a more sandboxed environment for your agent, NemoClaw is worth a look.

We ended up migrating to Hermes Agent by Nous Research and have been happy with the results. What sets it apart is the self-improving learning loop - it creates skills from experience, improves them during use, and builds a deepening model of your community across sessions. It also has a built-in Discord gateway, cron scheduling, and can migrate your existing OpenClaw setup with hermes claw migrate. Check out the full documentation to get started.

Understanding the Structure

These agents are configured primarily through markdown files, which makes them surprisingly approachable. Two files are worth understanding early:

The fact that these are just markdown files means anyone on your team can read and contribute to how the bot behaves - no code changes needed. Hermes Agent’s memory documentation and OpenClaw’s guides both cover best practices for writing these files.

A Word on Security

Be aware that prompt injection is a real concern with any AI agent connected to a public channel. Members (or bad actors) can craft messages that try to manipulate your bot into doing things it shouldn’t. Don’t connect your bot to anything important - databases, admin APIs, financial services - unless you really know what you’re doing and have proper safeguards in place. Start small, keep permissions tight, and use role-based access (like our “Local Confirmed” system) to limit what the bot can do and for whom.

Running Models Locally

Ollama is the easiest way to get started hosting models locally. It handles downloading, running, and managing models with simple commands - just ollama run gemma4 and you’re up. It’s what we use for OtterBot.

Once you’re comfortable with Ollama, you might want to explore more advanced options. llama.cpp gives you lower-level control over inference and is great for squeezing performance out of your hardware. If you’re running NVIDIA GPUs, vLLM is worth checking out for its high-throughput serving and efficient memory management.