Skip to content

v0.0.10

Choose a tag to compare

@vishal-bala vishal-bala released this 20 Aug 15:53
· 2 commits to main since this release
1155c66

Release 0.0.10

Semantic caching gets two operational fixes: the cache can now attach to a search index it did not create, and a cache backend failure no longer takes down the agent turn.

Added

  • Attach to a pre-provisioned index. RedisVLCacheProviderConfig.create_index=False makes the provider issue no index command at construction, so the cache runs on a credential denied FT.INFO and FT.CREATE. Requires redisvl>=0.26.0; the package floor stays at 0.18.2 and the default path is unchanged.
  • RedisVLCacheProviderConfig.overwrite exposes index overwrite as a configuration option. It cannot be combined with create_index=False; that pairing raises ValueError.
  • ignore_errors on LLMResponseCacheConfig and ToolCacheConfig, defaulting to True. Cache backend failures are logged and execution continues. Set it to False in development to raise instead.

Changed

  • Breaking: RedisVLCacheProvider no longer forces overwrite=True. The default is now False, matching RedisVL, so an existing index is reused rather than dropped and recreated on every construction. If the index schema no longer matches the provider config, construction raises a ValueError naming overwrite, where it previously rebuilt the index silently and left entries embedded by the old model unindexed.
  • Cache failures no longer abort an invocation. A failed lookup falls through to the model or tool, and a failed write returns the response unchanged. Both are logged. Previously any provider exception propagated out of the ADK callback and ended the invocation with no events emitted.
  • Index setup errors name the field that resolves them. A credential denied FT.INFO points at create_index; a drifted schema points at overwrite.
  • clear() under create_index=False deletes entries by scanning the cache key prefix, since RedisVL refuses index-wide destructive calls for an index it does not manage. The external index is never dropped.

Fixed

  • RedisVLCacheProvider.close() no longer raises AttributeError when the provider never opened a connection, reachable with create_index=False because construction sends nothing to Redis.
  • RedisVLCacheProvider.clear() escapes the cache name in its key scan. A name containing a glob metacharacter, such as cache[ab], previously matched and deleted unrelated keys while leaving the cache's own entries in place.
  • Loggers are no longer named with a doubled package prefix. Modules built their logger as "adk_redis." + __name__ while __name__ already began with adk_redis, so configuring adk_redis.cache had no effect. Filtering on the top-level adk_redis logger is unchanged.
  • Integration tests now run in CI against a Redis 8.4 service. The suite previously skipped every test requiring Redis.

Documentation and examples

  • New managed memory quickstart example: the smallest memory agent on the managed redis-agent-memory backend, with no Docker or Agent Memory Server required.
  • The examples index now labels each example with its memory backend and its runner (python main.py or adk web .), making clear which examples require the self-hosted backend.
  • Caching guides cover create_index, overwrite, and ignore_errors.

Upgrade notes

Existing RedisVLCacheProvider deployments are affected by the overwrite default change. If your index schema has drifted from your provider config, construction will now raise instead of rebuilding. To migrate, either set overwrite=True for one deployment to rebuild the index, or drop it out of band with FT.DROPINDEX <name>.