Shipped AI Project

A user-facing AI agent that bridges Discord and a local LLM, demonstrating how prompt design and system constraints shape autonomous behavior in production.


What It Does

This project is a Discord AI chatbot that connects Discord to a locally hosted large language model through Ollama. Users can mention the bot in a channel, ask questions, or interact with it directly, and the bot generates responses based on a defined personality and conversation context. The system maintains a short conversation history to create more natural interactions and provide continuity between messages. I originally created the bot to encourage more interaction within my Discord server. The goal was to give members something entertaining and dynamic to engage with, whether that meant asking questions, experimenting with prompts, or simply seeing what kind of responses the AI would generate.

The Agentic AI Angle

What interested me most about this project was the balance between autonomy and control. Rather than building a bot with predefined responses, I wanted users to interact with a system capable of generating unique responses on its own. The challenge was finding the right balance. Giving the model complete freedom could lead to inconsistent behavior, while over-constraining it would make the experience feel scripted and repetitive. The goal was to create a system that could respond dynamically while still maintaining a recognizable personality and behavior.

How I Shaped It

The core of the project was prompt engineering. Instead of scripting responses manually, I defined a personality through descriptive keywords, traits, and behavioral instructions that were injected into the model prompt. Rather than writing hundreds of canned responses, I created a coherent character and allowed the model to improvise within those constraints. This allowed the AI to make its own decisions about how to respond while remaining recognizable as the same character.

The bot also maintains a short conversation history to provide context between messages. This helps create more natural interactions and allows responses to feel connected rather than completely isolated from previous exchanges. Through this process, I learned how small changes in prompts and constraints can significantly influence model behavior, consistency, and user experience. It demonstrated how AI systems can be guided through carefully designed boundaries rather than explicit programming.

What I Learned

This project gave me hands-on experience integrating a local large language model through Ollama, managing conversational context, and deploying an AI-powered application that real users could interact with.

More importantly, it showed me that building AI applications is often less about creating complex algorithms and more about designing systems that balance flexibility, reliability, and user experience. The project reinforced the importance of testing, iteration, and thoughtful prompt design when building user-facing AI tools.

Project Resources

GitHub Repository:

LarsonA3/DiscordAIChatbot-Ollama