alfredfrancis/ai-chatbot-framework

A python chatbot framework with Natural Language Understanding and Artificial Intelligence.

What it solves

This project provides a private, self-hosted AI assistant environment. It solves the problem of managing an AI agent's access to your personal files, custom skills, and external application data while ensuring that your interactions remain contained within a secure, isolated workspace.

How it works

Each user is assigned a private Docker container that acts as a sandbox for the agent. The agent uses a set of core tools—reading, writing, editing, and executing bash commands—to interact with your workspace. It manages its own memory and context through plain text files (context.md and memory.md) that it can read and update. You can extend the agent's capabilities by uploading custom skills or connecting external services via the Model Context Protocol (MCP), which supports OAuth for secure authentication.

Who it’s for

It is for individuals who want a personal AI assistant that has persistent access to their own files and tools, and for developers who want to self-host an agentic environment that supports the Agent Client Protocol (ACP) for integration with other apps and editors.

Highlights

  • Private Sandboxing: Every user gets a dedicated, isolated Docker container for their agent, files, and tools.
  • Flexible Model Support: Works with any LangChain-compatible provider, including Claude, OpenAI, and local models via Ollama.
  • File-Based Memory: Uses simple Markdown files for agent memory and user context, making it easy to review or edit what the agent knows.
  • MCP Integration: Supports Claude-style MCP servers to connect with apps like GitHub, Linear, and Notion.
  • Steering: Allows you to send messages while the agent is actively working, which it will incorporate into its current task.
  • External Access: Exposes an ACP-compliant WebSocket API, allowing external editors and applications to interact with your agent.

Related

  • Project
  • Project
  • Project
  • Project
  • Project