> ## Documentation Index
> Fetch the complete documentation index at: https://docs.symbolica.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# v0.4.0

> Changes from v0.3.2 to v0.4.0

## Summary

Associated with our [blog post about ARC](https://www.symbolica.ai/blog/arcgentica), this release of the Agentica SDK 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](/concepts/how-it-works#the-mental-model), 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 `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

* The [Agentica Python SDK](https://github.com/symbolica-ai/agentica-python-sdk) is now licensed under the MIT License.
* The [Agentica Typescript SDK](https://github.com/symbolica-ai/agentica-typescript-sdk) is now licensed under the MIT License.
* The [Agentica Server](https://github.com/symbolica-ai/agentica-server) is now licensed under the MIT License.
* The [Agentica Internal Libraries](https://github.com/symbolica-ai/agentica-internal-libraries) are now licensed under the MIT License.
