Skip to content

feat(agno): sub-agent event labelling — release 1.0.3.dev0 - #215

Merged
GuillaumeSachet merged 1 commit into
devfrom
feat/subagent-event-labelling
Aug 27, 2026
Merged

feat(agno): sub-agent event labelling — release 1.0.3.dev0#215
GuillaumeSachet merged 1 commit into
devfrom
feat/subagent-event-labelling

Conversation

@GuillaumeSachet

@GuillaumeSachet GuillaumeSachet commented Aug 27, 2026

Copy link
Copy Markdown
Contributor

Summary

Brings feat/subagent-event-labelling onto dev, cut as version 1.0.3.dev0.

Agno drains parallel member runs through a single asyncio.Queue, so two members streaming at once interleave their deltas on the wire. The adapter tracked one text-message slot and one reasoning slot for the whole stream, splicing both speakers into a single bubble under a single name. Both sequences are now tracked per run, and every event a delegated run produces carries AG-UI's subagent_run_id, so a client attributes output by id instead of by matching a display name.

  • Surface delegations as SUBAGENT_STARTED / SUBAGENT_FINISHED / SUBAGENT_ERROR
  • Forward event metadata through to AG-UI, namespaced under digitalkin
  • Label a member's bubble with its author via TEXT_MESSAGE_START.name, replacing the --- name --- header previously injected into the message text
  • Close events carry the metadata of whoever opened the sequence, so a consumer filtering on parent_run_id keeps start and end together
  • A member's failure emits SUBAGENT_ERROR rather than RUN_ERROR, which AG-UI treats as terminal for the whole stream
  • Force-close every open message, reasoning block and delegation before RUN_FINISHED, which AG-UI rejects while any is still active

Pins ag-ui-protocol to the dev build carrying subagent events and event-level metadata; move to >=0.1.21 once that ships stable. Version bumped 1.0.2 -> 1.0.3.dev0 across .bumpversion.toml, pyproject.toml, src/digitalkin/__version__.py and uv.lock.

Test plan

  • Pre-commit suite (ruff-check, ruff-format, mypy) passes.
  • Full pytest run on the squashed commit: 1512 passed, 10 skipped.

…it (DEV-670)

Agno drains parallel member runs through a single asyncio.Queue, so two members
streaming at once interleave their deltas on the wire. The adapter tracked one
text-message slot and one reasoning slot for the whole stream, which spliced both
speakers into a single bubble under a single name.

Track both sequences per run, and carry AG-UI's subagent_run_id on every event a
delegated run produces, so a client attributes output by id instead of matching a
display name.

- Surface delegations as SUBAGENT_STARTED / SUBAGENT_FINISHED / SUBAGENT_ERROR
- Forward event metadata through to AG-UI, namespaced under "digitalkin"
- Label a member's bubble with its author via TEXT_MESSAGE_START.name, replacing
  the "--- name ---" header previously injected into the message text
- Close events carry the metadata of whoever opened the sequence, so a consumer
  filtering on parent_run_id keeps start and end together
- A member's failure emits SUBAGENT_ERROR rather than RUN_ERROR, which AG-UI
  treats as terminal for the whole stream
- Force-close every open message, reasoning block and delegation before
  RUN_FINISHED, which AG-UI rejects while any is still active

Pins ag-ui-protocol to the dev build carrying subagent events and event-level
metadata; move to >=0.1.21 once that ships stable.

Bumps the dev version to 1.0.3.dev0.
@GuillaumeSachet
GuillaumeSachet force-pushed the feat/subagent-event-labelling branch from 353c235 to 50a7302 Compare August 27, 2026 12:41
@GuillaumeSachet
GuillaumeSachet merged commit cce49ff into dev Aug 27, 2026
19 checks passed
@GuillaumeSachet
GuillaumeSachet deleted the feat/subagent-event-labelling branch August 27, 2026 14:11
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