# lovia

A restrained Python framework for building AI agents, covering tools, sessions, events, context compaction, and serving with a small set of composable primitives rather than a large platform.

lovia is a Python framework for developers who want to own the agent loop without rebuilding tools, sessions, events, context compaction, and serving from scratch, while avoiding a large stack of abstractions. Its core depends only on httpx, pydantic, and pyyaml, and installs everything else on demand.

An `Agent` is immutable configuration, typically varied with `clone()`; a `Runner` executes one run; the `@tool` decorator wraps a typed callable; and handoff or agent-as-tool patterns compose multiple agents, with skills, MCP, a todo list, and memory implemented as plugins on the same extension point. OpenAI, Anthropic, and OpenAI-compatible endpoints are built in, and context compaction changes only the next model view without rewriting the stored conversation, keeping prompt prefixes stable for caching.

Installing the `web` extra serves a full chat UI with memory, skills, and scheduling in one command.

Website: https://cymoo.github.io/lovia
