Skip to content

Architecture

Maki architecture diagram

Four layers on top of a shared infrastructure layer:

  • Public API: maki/__init__.py lazy-loads all exports on first access.
  • LLM backends: MakiLLama, MakiOpenAI, MakiAnthropic, MakiOpenRouter, MakiLlamaCpp and HFBackend all implement the abstract LLMBackend contract.
  • Agent system: Agent composes PluginHandler and ReasoningEngine mixins; AgentManager orchestrates agents via WorkflowTask and WorkflowState.
  • Distributed layer: AgentServer (FastAPI) exposes agents over HTTP; AgentProxy is the remote-agent client with circuit breaking; DistributedAgentManager mixes local and remote agents.
  • Infrastructure: Connector (hardened HTTP: URL validation, connect-time IP pinning), shared data classes, typed exceptions, runtime config and logging.

Plugins sit alongside the agent layer. They are loaded on demand and invoked when the model emits a TOOL: directive or through native tool-calling APIs.

Public API

Top-level imports from maki:

  • MakiLLama, MakiOpenAI, MakiAnthropic, MakiOpenRouter, MakiLlamaCpp, HFBackend
  • LLMBackend, BackendType
  • Agent, AgentManager
  • GenerationConfig, LLMResponse, Message, ToolCall
  • ConversationMemory, RateLimiter
  • Connector, Utils
  • config

Desktop app

The repository includes a PySide6/QML desktop shell. Install maki-framework[gui] and run maki-gui.

Contributing

Bug fixes, documentation, new plugins and suggestions are welcome. Open an issue or pull request on GitHub.

pip install -e ".[dev]"
pytest          # tests marked @pytest.mark.network are excluded by default

Maki is part of Bowl of Data, an open-source AI research community. Licensed under MIT.