Skip to content

Releases: Eigenwise/atomic-agents

v2.8.1

Choose a tag to compare

@Eigenwise Eigenwise released this 09 Jun 20:37

Patch release.

  • Rebrand to the eigenwise GitHub home (URLs, plugin manifests, package metadata)
  • MiniMax M3 set as the default MiniMax model (#257)

Full changelog: v2.8.0...v2.8.1

v2.8.0

Choose a tag to compare

@Eigenwise Eigenwise released this 29 May 07:07

What's New in v2.8.0

A feature release adding new Forge tools, a pluggable system-prompt base class, automatic context-window trimming, and a rewritten Claude plugin — plus the multi-agent deep-research example.

Core framework

Features

  • BaseSystemPromptGenerator — new abstract base class so you can build custom system-prompt generators; SystemPromptGenerator now subclasses it (fully backwards compatible).
  • Automatic context trimmingAtomicAgent gains max_context_tokens to auto-trim history and prevent context-window overruns.

Bug Fixes

  • Prevent None in MCP prompt text extraction from causing a str.join TypeError (#252).

Atomic Forge — new tools

  • arxiv_search — academic paper search via the public arXiv API
  • datetime_tool — timezone-aware now / parse / convert / shift / diff
  • hackernews_search — Hacker News search via the free Algolia API
  • pdf_reader — PDF text + metadata extraction (local file or URL, page-range support)
  • weather — current conditions and daily/hourly forecast via Open-Meteo (no key)
  • wikipedia_search — Wikipedia search in any language edition (no key)
  • fia_signals — crypto market intelligence (regime, signals, yields, gas, trending, wallet risk)

Tooling & examples

  • Claude plugin v2 — rewritten as a skills-only pack with create-atomic-* skills (agent, tool, schema, context-provider) and an atomic-explorer subagent for codebase mapping; fewer atomic-reviewer false positives.
  • deep-research example — rebuilt as a proper multi-agent research pipeline (planner, decider, extractor, reflector, writer, QA) with a restored chat loop.
  • docs — clarified tool philosophy and the two patterns for using tools.

Full Changelog

v2.7.5...v2.8.0

v2.7.5

Choose a tag to compare

@Eigenwise Eigenwise released this 31 Mar 12:44

What's Changed

Dependency Updates

  • Update instructor from 1.13.0 to 1.14.5 (#225, #226)
  • Fix deprecated import paths (instructor.client.*instructor.core.client.*, instructor.multimodalinstructor.processing.multimodal)
  • Use instructor extras for provider SDKs (instructor[anthropic], instructor[groq], instructor[google-genai]) instead of separate package installs

Documentation

  • Updated installation docs (README, FAQ, cookbook) to recommend instructor extras for provider setup
  • Removed unused provider dependencies from examples (basic-multimodal, quickstart)

No Breaking Changes

  • The public API is unchanged — no user code changes needed
  • OpenAI is included by default with instructor
  • Other providers are available via extras: pip install instructor[anthropic], pip install instructor[groq], pip install instructor[google-genai]

Full Changelog: v2.7.4...v2.7.5

v2.7.4

Choose a tag to compare

@Eigenwise Eigenwise released this 23 Mar 17:55

What's New

Bug Fixes

  • Fix enum output strictness — Use Pydantic default strictness in AtomicAgent instead of strict mode, fixing issues with enum outputs (#218)
  • Fix delete turn ID type annotation — Corrected type annotation for turn ID in delete operation (#212)
  • Fix run stream empty response guard — Added guard against empty responses in streaming runs (#214)

Full Changelog

v2.7.3...v2.7.4

v2.7.3

Choose a tag to compare

@Eigenwise Eigenwise released this 17 Mar 17:05

What's Changed

Bug Fix

  • fix: use max_input_tokens for context window size (#216)
    • TokenCounter.get_max_tokens() was using litellm.get_max_tokens() which returns the output token limit (max_tokens), not the input context window (max_input_tokens)
    • Switched to litellm.get_model_info() and reading max_input_tokens, with fallback to max_tokens if unavailable
    • Uses explicit None check instead of or operator to correctly handle falsy values like 0
    • This fixes utilization being overstated by up to 8x for models where output limits are much smaller than context windows

Closes #215

Full Changelog: v2.7.1...v2.7.3

v2.7.1

Choose a tag to compare

@Eigenwise Eigenwise released this 14 Feb 12:52

Bug Fixes

  • fix(chat_history): Support nested multimodal content in get_history() (#208, #141)
    • ChatHistory.get_history() now correctly handles multimodal objects (Image, PDF, Audio) nested inside sub-schemas, not just at the top level
    • Replaced json.dumps() with Pydantic-native model_dump_json(exclude=...) to fix TypeError when schemas contain both multimodal fields and nested Pydantic models
    • Added recursive _extract_multimodal_info() that walks the full object tree to find multimodal content at any depth
    • Handles lists, tuples, dicts, and deeply nested Pydantic models
    • All-multimodal containers (list/dict) are fully excluded from the JSON output

New Examples

  • nested-multimodal: End-to-end example demonstrating nested multimodal schemas with actual LLM calls

Full Changelog

v2.7.0...v2.7.1

v2.6.0

Choose a tag to compare

@Eigenwise Eigenwise released this 03 Jan 17:52

What's New

MCP Output Schema Support

This release adds support for typed output schemas from MCP (Model Context Protocol) tools. When an MCP server provides an outputSchema for a tool, atomic-agents now creates a properly typed Pydantic model instead of using a generic output schema.

Features

  • Typed Output Schemas: Tools with MCP-provided outputSchema now generate typed Pydantic models with proper field definitions
  • Automatic Schema Detection: The system automatically detects when an MCP tool has an output schema and creates the appropriate typed model
  • Backwards Compatible: Tools without outputSchema continue to work exactly as before with the generic result field

Improvements

  • Enhanced error handling for structured content parsing with clear error messages
  • Added debug logging for JSON parse failures to aid troubleshooting
  • Added type validation for structuredContent responses
  • Improved documentation for is_output_schema parameter explaining discriminated union usage

Bug Fixes

  • Fixed silent failure when structuredContent has unexpected type (now raises TypeError)
  • Fixed fallback to generic handling that would fail for typed schemas
  • Added type check on content arrays before indexing to prevent errors on non-list types

Full Changelog

v2.5.0...v2.6.0

v2.5.0

Choose a tag to compare

@Eigenwise Eigenwise released this 23 Dec 13:59

What's New

Features

  • Provider-agnostic token counting - New utilities for accurate token counting across different LLM providers (#197)
  • Claude Code plugin - Official plugin for Atomic Agents development workflow (#199)

Documentation

  • Comprehensive Memory Guide - New ~1200 line guide covering memory management, turns, multi-agent patterns, context providers, and troubleshooting. Includes 8 Mermaid diagrams. Addresses #58 (#200)
  • Improved Context7 benchmark documentation

Fixes

  • Token counting accuracy improvements with proper error handling
  • Python version classifiers for PyPI badge
  • Flake8 linting errors resolved

Full Changelog: v2.4.0...v2.5.0

v2.4.0

Choose a tag to compare

@Eigenwise Eigenwise released this 12 Dec 16:11

What's Changed

  • Fix #194: Sync agent.messages after run() completes by @KennyVaneetvelde in #195

Full Changelog: v2.3.0...v2.4.0

v2.3.0

Choose a tag to compare

@Eigenwise Eigenwise released this 30 Nov 10:51
a43e1bd

What's Changed

  • Fix #182: Add configurable assistant_role to support Gemini by @KennyVaneetvelde in #188
  • Add FastAPI integration example by @KennyVaneetvelde in #189
  • chore: upgrade instructor to 1.13.0 and openai to 2.x by @KennyVaneetvelde in #190
  • chore: migrate from Poetry to uv workspace by @KennyVaneetvelde in #191

Full Changelog: v2.2.2...v2.3.0