Skip to main content

Summary

Associated with our blog post about ARC, this release of Agentica allows a wider variety of Python objects to be exchanged between your Python session and agent REPLs. This brings us one step closer to the vision of agents and humans collaborating in a unified Python environment. You can pass agents data-heavy or stateful objects like numpy.ndarray, pandas.DataFrame, and sqlite3.Connection. Agents can use the normal APIs provided by these objects. These objects are warped by reference, meaning that the agent can modify them in-place, and the changes will be reflected in your local Python session. Agents can be warped entire Python modules, such as numpy, scipy, sympy, sqlite3 and pandas, to gain access to the full APIs of these libraries. Commonly used Python standard libraries types are also now supported, including NamedTuple, TypedDict, date, time, timedelta, IPv4Address, etc.

Improvements

  • Improvements to warping of Python objects to agents:
    • Warped by reference:
      • Path objects, which confer the ability to read and write files
      • subclasses of builtin classes like list, dict, set, etc.
      • NamedTuple, TypedDict, BaseModel instances
      • data containers like numpy.ndarray, pandas.DataFrame, etc.
      • user modules (ModuleType objects)
      • stateful built-in system iterator objects
    • Warped by value:
      • lambda functions
      • temporal: date, datetime, time, timedelta, etc.
      • numeric: complex, and big int numeric values
      • regexes: Pattern, Match
      • stateless system iterators: zip, map, filter, slice, range, enumerate, iter(seq), iter(fn, stop).
    • Agents can catch and raise client-side exceptions
    • Support for C-implemented class and instance properties
    • More accurate warping of Python function and method signatures
      • positional-only, keyword-only, variadic, and default arguments
      • signatures of C-implemented functions via __text_signature__
      • low-overhead support for @overload signatures
  • Additional options to Agent.spawn:
    • reasoning_effort to set the thinking budget for reasoning models
    • cache_ttl to control Anthropic prompt cache duration
  • Improvement to streaming and logging:
    • StreamLogger takes on_chunk callback and include_usage filter
    • Chunk.type field: reasoning, output_text, usage, etc.
    • reasoning traces now visible in StandardLogger output
    • ResponseUsage replaces Usage in Python, and includes new usage stats (cached tokens, reasoning tokens)
  • Performance improvements:
    • Reduced excessive blocking in asyncio event loop
  • Improvements to inference:
    • OpenAI/Anthropic models routed to native APIs; others via OpenRouter
    • 128-agent concurrency cap removed

Bug Fixes

  • Fixed possible deadlocks associated with spawning multiple calls to the same agentic function concurrently
  • Reduced cases of classes that warp incorrectly due to their metaclass

Licensing