Repository navigation
v0.0.10
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=Falsemakes the provider issue no index command at construction, so the cache runs on a credential deniedFT.INFOandFT.CREATE. Requiresredisvl>=0.26.0; the package floor stays at0.18.2and the default path is unchanged. RedisVLCacheProviderConfig.overwriteexposes index overwrite as a configuration option. It cannot be combined withcreate_index=False; that pairing raisesValueError.ignore_errorsonLLMResponseCacheConfigandToolCacheConfig, defaulting toTrue. Cache backend failures are logged and execution continues. Set it toFalsein development to raise instead.
Changed
- Breaking:
RedisVLCacheProviderno longer forcesoverwrite=True. The default is nowFalse, 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 aValueErrornamingoverwrite, 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.INFOpoints atcreate_index; a drifted schema points atoverwrite. clear()undercreate_index=Falsedeletes 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 raisesAttributeErrorwhen the provider never opened a connection, reachable withcreate_index=Falsebecause construction sends nothing to Redis.RedisVLCacheProvider.clear()escapes the cache name in its key scan. A name containing a glob metacharacter, such ascache[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 withadk_redis, so configuringadk_redis.cachehad no effect. Filtering on the top-leveladk_redislogger 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-memorybackend, with no Docker or Agent Memory Server required. - The examples index now labels each example with its memory backend and its runner (
python main.pyoradk web .), making clear which examples require the self-hosted backend. - Caching guides cover
create_index,overwrite, andignore_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>.