Skip to main content

Add your description here

Project description

Evolve: On‑the‑job learning for AI agents

Python Status Documentation arXiv License Stars

Blog posts: IBM announcement | Hugging Face blog

Coding agents repeat the same mistakes because they start fresh every session. Evolve gives agents memory — they learn from what worked and what didn't, so each session is better than the last.

Evolve is a system designed to help agents improve over time by learning from their trajectories. The Lite version is designed to effortlessly slot into existing agent assistants like Claude Code and Codex. It uses a combination of an MCP server for tool integration, vector storage for memory, and LLM-based conflict resolution to refine its knowledge base.

On the AppWorld benchmark, Evolve improved agent reliability by +8.9 points overall, with a 74% relative increase on hard multi-step tasks. Evolve is a system designed to help agents improve over time by learning from their trajectories. It uses a combination of an MCP server for tool integration, vector storage for memory, and LLM-based conflict resolution to refine its knowledge base.

[!IMPORTANT] ⭐ Star the repo: it helps others discover it.

Quick Start (Lite)

IBM Bob →

Claude Code →

Codex →

Quick Start (Evolve MCP Server)

Installation

Prerequisites:

  • Python 3.12 or higher
  • uv (recommended) or pip

From Source

# Clone the repository and install dependencies
git clone https://github.com/agenttoolkit/altk-evolve.git
cd altk-evolve
uv venv --python=3.12 && source .venv/bin/activate
uv sync
# Build the UI
cd frontend/ui
npm ci && npm run build
cd ../..

From PyPI

pip install altk-evolve

Configuration

For direct OpenAI usage:

export OPENAI_API_KEY=sk-...

For LiteLLM proxy usage and model selection (including global fallback via EVOLVE_MODEL_NAME), see the configuration guide.

Running Services

Start the Web UI and MCP server

uv run evolve-mcp

The Web UI can be accessed from: http://127.0.0.1:8000/ui/

Starting the Web UI and MCP Server

If you only want to access the Web UI and API (without the MCP server stdio blocking the terminal), you can run the FastAPI application directly using uvicorn:

uv run uvicorn altk_evolve.frontend.mcp.mcp_server:app --host 127.0.0.1 --port 8000

Then navigate to http://127.0.0.1:8000/ui/.

Starting only the MCP Server

If you're attaching Evolve to an MCP client that requires a direct command (like Claude Desktop):

uv run evolve-mcp

Or for SSE transport:

uv run evolve-mcp --transport sse --port 8201

Verify it's running:

npx @modelcontextprotocol/inspector@latest http://127.0.0.1:8201/sse --cli --method tools/list

Available tools:

  • get_entities(task: str, entity_type: str): Get relevant entities for a specific task, filtered by type (e.g., 'guideline', 'policy').
  • get_guidelines(task: str): Get relevant guidelines for a specific task (backward compatibility alias).
  • save_trajectory(trajectory_data: str, task_id: str | None): Save a conversation trajectory and generate new guidelines.
  • create_entity(content: str, entity_type: str, metadata: str | None, enable_conflict_resolution: bool): Create a single entity in the namespace.
  • delete_entity(entity_id: str): Delete a specific entity by its ID.

Features

  • Proactive: Learns how to recognize problems and their solutions, and generates guidelines that get automatically applied to new tasks.
  • Conflict Resolution: Update existing guidelines when new information contradicts them.
  • On Command: An array of tools to manage guidelines whether in the agent or through a CLI

Architecture

Evolve is built on a modular architecture which forms a feedback loop, taking conversation traces (trajectories) from an agent, extracting key insights into a database, feeding it back into the agent.

Lite Mode omits the Interaction layer. All activity is performed in-agent

Architecture

Tip Provenance

Evolve automatically tracks the origin of every guideline it generates or stores. Every tip entity contains metadata identifying its source:

  • creation_mode: Identifies how the tip was created (auto-phoenix via trace observability, auto-mcp via trajectory saving tools, or manual).
  • source_task_id: The ID of the original trace or task that inspired the tip, providing full audibility.

See the Low-Code Tracing Guide for more details.

Contributing, Community, and Feedback

Evolve is an active project, and real‑world usage helps guide its direction.

If you’re experimenting with Evolve or exploring on‑the‑job learning for agents, feel free to open an issue or discussion to share use cases, ideas, or feedback.

See the Contributing Guide to understand our development process, or how to submit changes, report bugs, or propose features.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

altk_evolve-1.0.9.tar.gz (240.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

altk_evolve-1.0.9-py3-none-any.whl (254.0 kB view details)

Uploaded Python 3

File details

Details for the file altk_evolve-1.0.9.tar.gz.

File metadata

  • Download URL: altk_evolve-1.0.9.tar.gz
  • Upload date:
  • Size: 240.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for altk_evolve-1.0.9.tar.gz
Algorithm Hash digest
SHA256 537fa56ae28d9ce9fa4e2b5c37adda8f8e08d807c73a48c28ca83878cd1f60c8
MD5 43a3a06312db9f6499193dc29919d363
BLAKE2b-256 1625d3d5a67867dc9067617467692ef227563cb559d5b14212056c2fdf603961

See more details on using hashes here.

Provenance

The following attestation bundles were made for altk_evolve-1.0.9.tar.gz:

Publisher: python-publish.yml on AgentToolkit/altk-evolve

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file altk_evolve-1.0.9-py3-none-any.whl.

File metadata

  • Download URL: altk_evolve-1.0.9-py3-none-any.whl
  • Upload date:
  • Size: 254.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for altk_evolve-1.0.9-py3-none-any.whl
Algorithm Hash digest
SHA256 d349dd4738156a39a14ccc24e6bbd6956a320af312b45dcceb451054a6d8239e
MD5 34cf25a6c119cdd1228a492631ef1ae7
BLAKE2b-256 8b7966ac19a5d3cefc973a2b79a5da61c4e54bee394b187c83c1232563dbdc09

See more details on using hashes here.

Provenance

The following attestation bundles were made for altk_evolve-1.0.9-py3-none-any.whl:

Publisher: python-publish.yml on AgentToolkit/altk-evolve

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page