Skip to content

Break skills out of agents in agentic event field group; Expand Skills Schema - #2248

Draft
sandersonb wants to merge 3 commits into
adobe:masterfrom
sandersonb:feature-2246-agentic-skills-breakout
Draft

Break skills out of agents in agentic event field group; Expand Skills Schema#2248
sandersonb wants to merge 3 commits into
adobe:masterfrom
sandersonb:feature-2246-agentic-skills-breakout

Conversation

@sandersonb

Copy link
Copy Markdown

Summary

Closes #2246

Non-breaking (additive + deprecation-only). Breaks skills out of agents in the agentic event field group: deprecates the per-agent xdm:agents[].xdm:skills array and adds a parallel top-level xdm:agenticExperience.xdm:skills[] (marked experimental) that owns the full, ordered list of skill invocations, with keys for downstream de-duplication and ordering. Draft for design review — see "Still open" below.

Motivation

Skills are moving to a first-class, skills-centric model shared by Brand Concierge, the AO quality pipeline, and future consumers. The nested per-agent array can't express an ordered cross-agent call list, per-call reasoning, or the ordering/dedupe keys downstream blending needs — and nested arrays aren't addressable by the Dataset Blender (one [] per path), so flattening is a prerequisite for blending.

Changes

  • components/fieldgroups/agentic/agentic-event.schema.json
    • Deprecate xdm:agents[].xdm:skills (retained; meta:status: deprecated).
    • Add top-level xdm:agenticExperience.xdm:skills[] (meta:status: experimental) with:
      • identity: skillID, skillInvocationID, name, version
      • attribution: agentID (-> xdm:agents[].agentID), score, failed
      • ordering/dedup: sequenceNumber (primary order), timestamp (secondary); dedupe key is skillInvocationID
      • classification: skillSource, executionContext (soft enums with meta:enum)
      • reasoning object carrying free-text narration
  • components/fieldgroups/agentic/agentic-event.example.1.json — models the parallel structure.

Decisions

  • Consumers order by sequenceNumber then timestamp; de-duplicate by skillInvocationID (confirmed with the Dataset Blender owner).
  • reasoning is narration-only (string). Turn-level thinking metrics (token count / duration) stay turn-level — they don't belong per-skill.
  • executionContext values are inline / forked.
  • timestamp is required-by-convention (documented), not a hard schema constraint, so partially-instrumented producers are not dropped at ingestion.

See Slack room #tmp-coworker-reasoning-naration-schema (ask bsanders to be invited if not, and desired)

Still open (feedback welcome)

  • Upstream source/consistency of reasoning.narration (derived from thinking output; a truncated preview today)
  • Producer population (transformer + telemetry SDK) lands after this schema merges.

Validation

  • npm test - 2413 passing
  • npm run lint - clean
  • npm run validate - zero new failures vs master baseline
  • npm run incompatibility-check - clean (exit 0)

Breaking changes

None.

Brian Sanderson and others added 3 commits August 26, 2026 18:07
Deprecate the per-agent xdm:agenticExperience.xdm:agents[].xdm:skills[]
array and add a parallel top-level xdm:agenticExperience.xdm:skills[]
that owns the full, ordered list of skill invocations. Non-breaking:
additive plus deprecation-only; the nested array is retained and marked
meta:status deprecated. The new skills[] array is marked meta:status
experimental while its shape settles.

Each skill entry carries:
- identity: skillID, skillInvocationID (unique per call), name, version
- attribution: agentID (links to xdm:agents[].agentID), score, failed
- blend keys: timestamp (order), sequenceNumber (optional explicit order);
  skillInvocationID is the de-dupe key
- classification: skillSource, executionContext (soft enums w/ meta:enum)
- reasoning: object with narration (free text); object form leaves room
  for structured reasoning members later

Update agentic-event.example.1.json to model the parallel structure.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Address subagent-attribution feedback on adobe#2248:
- Add xdm:invocationSource (main | subagent) so consumers can tell
  harness main-loop skills from subagent-invoked skills.
- Clarify xdm:agentID: always the invoking agent (root/orchestrator for
  main loop, the subagent otherwise); it is the grouping key for ordering
  under parallel subagents. Drop the ambiguous "absent = none" wording.
- Re-scope xdm:sequenceNumber to be monotonic within a single agent
  execution (not turn-global), since subagents run in parallel; consumers
  group by agentID then order by sequenceNumber, then timestamp.
- Deliberately omit a task id: dedupe is skillInvocationID and branch
  grouping/ordering is agentID, so a task id is non-consumable noise in
  the customer-facing schema (kept in OTEL).

Update example to show both invocationSource values and per-execution
sequence numbering.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
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.

Decouple Agentic Experience Skills from Agents

1 participant