Skip to content

feat(services): track the tool-kin-registry protocol across every service (DEV-686) - #216

Merged
GuillaumeSachet merged 1 commit into
devfrom
feat/amp-tool-kin-registry
Sep 1, 2026
Merged

feat(services): track the tool-kin-registry protocol across every service (DEV-686)#216
GuillaumeSachet merged 1 commit into
devfrom
feat/amp-tool-kin-registry

Conversation

@GuillaumeSachet

Copy link
Copy Markdown
Contributor

Brings the SDK up to agentic-mesh-protocol at proto commit 0238092. Most of that branch already landed with the registry refactor; these are the fields and RPCs that were still being dropped on the floor.

Filesystem gains the visibility scope it never carried: on the record, on uploads, on updates, and as a filter. Registry gains tags on modules and setups plus the sort_by/descending knobs, so a caller can order a page instead of taking whatever the backend hands back. GetUserProfileResponse.mission_cost rides on the response rather than the profile, and was being discarded by the proto-to-dict conversion; it is now folded into the dict callers already read. Storage records carry their service-assigned storage_id, and listing gained a record filter with limit/offset. Setup gains ListSetupVersions and SetCurrentSetupVersion, with the local strategy keeping a real version history so both are meaningful off-platform.

UpdateSetup cuts a new version rather than editing one in place, so omitting set_as_current left the setup serving its old content. It is now sent, defaulting to true, which is what every existing caller already assumed.

The agno registry toolkit also accepts the discriminated action union flattened or as a JSON string, since models routinely send both readings of a nested schema; a setup whose backing module the registry can no longer resolve is now deletable, while a transient registry error still fails closed. Adds version rollback to the kins manager.

fix(redis): enhance error handling and logging for Redis connectivity issues

This update improves the resilience of the Redis client by explicitly setting socket timeouts and implementing retry logic for transient errors in the blocking pool. It also enhances logging to provide clearer diagnostics by specifying the type of Redis error encountered, aiding in troubleshooting. Additionally, the AgnoHitlRunner class has been updated to better manage tool resolution during continued runs, ensuring that tools are correctly restored after a pause.

The changes include:

  • Added socket timeout configuration to Redis client settings.
  • Implemented retry logic for blocking Redis operations.
  • Enhanced error logging in the GatewayServicer to specify the type of Redis error.
  • Updated AgnoHitlRunner to handle tool resolution more effectively during continued runs.

feat(module): implement mission-scoped persistence for dynamically loaded tools

This update introduces a new mechanism to ensure that tools loaded at runtime persist across turns within the same mission, while preventing them from leaking into other missions. Key changes include:

  • Added LoadedToolStore to manage the persistence of loaded tool IDs in a mission-scoped storage collection.
  • Enhanced ModuleContext with methods to persist loaded tools and rehydrate them at the start of each mission turn.
  • Updated ToolCache to differentiate between declared and dynamically loaded tools, ensuring that dynamic loads are scoped to individual missions.
  • Refactored LoadToolAction to handle duplicate outcomes and conflicts more effectively during tool loading.

These changes improve the reliability and isolation of tool loading in the agent's runtime environment.

chore(release): bump version to 1.0.3

…vice (DEV-686)

Brings the SDK up to `agentic-mesh-protocol` at proto commit 0238092. Most of that
branch already landed with the registry refactor; these are the fields and RPCs that
were still being dropped on the floor.

Filesystem gains the visibility scope it never carried: on the record, on uploads, on
updates, and as a filter. Registry gains `tags` on modules and setups plus the
`sort_by`/`descending` knobs, so a caller can order a page instead of taking whatever
the backend hands back. `GetUserProfileResponse.mission_cost` rides on the response
rather than the profile, and was being discarded by the proto-to-dict conversion; it is
now folded into the dict callers already read. Storage records carry their
service-assigned `storage_id`, and listing gained a record filter with limit/offset.
Setup gains ListSetupVersions and SetCurrentSetupVersion, with the local strategy
keeping a real version history so both are meaningful off-platform.

UpdateSetup cuts a new version rather than editing one in place, so omitting
`set_as_current` left the setup serving its old content. It is now sent, defaulting to
true, which is what every existing caller already assumed.

The agno registry toolkit also accepts the discriminated `action` union flattened or as
a JSON string, since models routinely send both readings of a nested schema; a setup
whose backing module the registry can no longer resolve is now deletable, while a
transient registry error still fails closed. Adds version rollback to the kins manager.

Requires agentic-mesh-protocol 1.0.1.dev5, which is not published yet: the pin makes
every `uv`-based pre-commit hook unresolvable, so this was committed with --no-verify.
`ruff check src/digitalkin` passes; `mypy src/digitalkin` reports 9 errors, all of them
the new proto fields (storage_id, set_as_current, ListSetupVersions, …) missing from the
older agentic-mesh-protocol currently installed in the local venv — they clear once dev5
is published and installed.

fix(redis): enhance error handling and logging for Redis connectivity issues

This update improves the resilience of the Redis client by explicitly setting socket timeouts and implementing retry logic for transient errors in the blocking pool. It also enhances logging to provide clearer diagnostics by specifying the type of Redis error encountered, aiding in troubleshooting. Additionally, the AgnoHitlRunner class has been updated to better manage tool resolution during continued runs, ensuring that tools are correctly restored after a pause.

The changes include:
- Added socket timeout configuration to Redis client settings.
- Implemented retry logic for blocking Redis operations.
- Enhanced error logging in the GatewayServicer to specify the type of Redis error.
- Updated AgnoHitlRunner to handle tool resolution more effectively during continued runs.

feat(module): implement mission-scoped persistence for dynamically loaded tools

This update introduces a new mechanism to ensure that tools loaded at runtime persist across turns within the same mission, while preventing them from leaking into other missions. Key changes include:

- Added `LoadedToolStore` to manage the persistence of loaded tool IDs in a mission-scoped storage collection.
- Enhanced `ModuleContext` with methods to persist loaded tools and rehydrate them at the start of each mission turn.
- Updated `ToolCache` to differentiate between declared and dynamically loaded tools, ensuring that dynamic loads are scoped to individual missions.
- Refactored `LoadToolAction` to handle duplicate outcomes and conflicts more effectively during tool loading.

These changes improve the reliability and isolation of tool loading in the agent's runtime environment.

chore(release): bump version to 1.0.3
@linear-code

linear-code Bot commented Sep 1, 2026

Copy link
Copy Markdown

DEV-686

@GuillaumeSachet
GuillaumeSachet merged commit ed815ae into dev Sep 1, 2026
19 checks passed
@GuillaumeSachet
GuillaumeSachet deleted the feat/amp-tool-kin-registry branch September 1, 2026 08:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants