Maxwell is an experimental project designed to play with and explore the capabilities of the Microsoft Agent Framework. It provides a structured environment (workspaces) to orchestrate multiple agents, manage their skills, and maintain persistent chat sessions with specific configurations.
This repository serves as a playground for testing agent orchestration, skill implementation, and workspace management within the Microsoft Agent Framework ecosystem. It demonstrates how to define agents with specific roles, attach shared or agent-specific skills, and manage connections to various LLM providers (like OpenAI or local endpoints).
To use Maxwell, you must set up a workspace following the structure defined in the project. A workspace is located within your home directory under .maxwell/ws/.
Each workspace is identified by a unique GUID. Below is the required directory structure:
{HOME_DIR}/.maxint/.maxwell/
βββ ws/
βββ [WORKSPACE_GUID]/ # Create a directory with a unique GUID
βββ connections.json # Configuration for LLM connections (e.g., OpenAI, Local)
βββ agents.json # Definition of agents, their models, and roles
βββ chats.json # Registry of chat sessions
βββ instructions/ # Markdown files containing system instructions for agents
β βββ [agent-name].md
β βββ ...
βββ skills/ # Reusable skills for the workspace
β βββ agents-skills/ # Skills specific to individual agents
β β βββ [agent-name]/
β β βββ [skill-name]/
β β βββ SKILL.md
β βββ shared-skills/ # Skills shared across the entire workspace
β βββ [skill-name]/
β βββ SKILL.md
βββ chats/ # Directory for chat-specific data/logs
Maxwell relies on JSON configuration files to define its operational environment. You can use the templates provided in the src/Maxwell/templates directory to create your own workspace files.
Define your agents here. Each entry includes the model to be used, the connection name, a description, and the agent's role (e.g., Leader, Assistant, ToolSelector).
- Template available:
src/Maxwell/templates/agents.json
Specify how agents connect to LLM providers. You can define local endpoints (e.g., openai-local) or production APIs.
- Template available:
src/Maxwell/templates/connections.json
Manage your chat session history and metadata.
- Template available:
src/Maxwell/templates/chats.json
- Multi-Agent Orchestration: Define a hierarchy of agents, including leaders and specialized assistants.
- Modular Skills: Implement skills that can be either private to an agent or shared across the workspace.
- Flexible Connections: Easily switch between local LLM providers and cloud-based APIs.
- Structured Instructions: Use Markdown files within the workspace to provide clear, versionable instructions to your agents.
Feel free to:
Report issues
Suggest improvements
Add examples
A special thanks to Rasmus Wulff Jensen for the amazing AgentFrameworkToolkit and for the videos on his YouTube channel.
This project is provided as-is for educational and research purposes.