# Blades

A multimodal AI agent framework for Go, supporting custom models, tools, memory and middleware for multi-turn conversation, chain-of-thought reasoning and structured output.

Blades is a multimodal AI agent framework for Go, built for multi-turn conversations, chain-of-thought reasoning and structured output, among other use cases, with custom models, tools, memory and middleware. It is built around a small set of core components: an Agent that invokes models and tools, a Prompt for templated text with variable substitution, a Chain that connects agents or other chains into workflows, a pluggable ModelProvider, external Tools such as APIs, databases or the file system, Memory for continuous conversation context, and Middleware for cross-cutting concerns.

Its middleware design draws on the Kratos framework's middleware philosophy, letting capabilities such as observability and guardrails be added to an agent without changing the agent's own code, and its interfaces are meant to make swapping between different LLM providers straightforward.

Website: https://go-kratos.dev/blades/
