Break skills out of agents in agentic event field group; Expand Skills Schema - #2248
Open
sandersonb wants to merge 4 commits into
Open
Break skills out of agents in agentic event field group; Expand Skills Schema#2248sandersonb wants to merge 4 commits into
sandersonb wants to merge 4 commits into
Conversation
sandersonb
pushed a commit
to sandersonb/xdm
that referenced
this pull request
Aug 29, 2026
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>
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>
sandersonb
force-pushed
the
feature-2246-agentic-skills-breakout
branch
from
September 1, 2026 00:21
a188ea5 to
f247bf7
Compare
Reconcile with adobe#2243 (merged), which added contextMode/errorReason/source to the now-deprecated nested agents[].skills[]: - Add xdm:errorReason to the top-level skills[] so the failure reason survives once the deprecated nested array is removed. - Generalize its scope to any skill failure ("Skill Error Reason" / "Reason the skill failed") rather than load-only, so failed (boolean flag) + errorReason (string detail) form a clean, non-redundant pair. Update the example to carry a general failure reason. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
sandersonb
marked this pull request as ready for review
September 1, 2026 00:32
Author
|
Note, this PR has relation to #2243 , which was released recently. #2243 added contextMode, errorReason, and source to the nested xdm:agenticExperience.xdm:agents[].xdm:skills[]. This PR deprecates that nested per-agent array (kept, meta:status: deprecated) and moves skills to a parallel top-level xdm:agenticExperience.xdm:skills[], so skills are a first-class, ordered, cross-agent, etc. I believe this preserves the same functionality, but will have some different mappings, besides the new locations for skills: contextMode (string) -> executionContext (enum inline/forked, meta:enum) cc: @railway0289 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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:skillsarray and adds a parallel top-levelxdm:agenticExperience.xdm:skills[](markedexperimental) 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.jsonxdm:agents[].xdm:skills(retained;meta:status: deprecated).xdm:agenticExperience.xdm:skills[](meta:status: experimental) with:skillID,skillInvocationID,name,versionagentID(->xdm:agents[].agentID),score,failedsequenceNumber(primary order),timestamp(secondary); dedupe key isskillInvocationIDskillSource,executionContext(soft enums withmeta:enum)reasoningobject carrying free-textnarrationcomponents/fieldgroups/agentic/agentic-event.example.1.json— models the parallel structure.Decisions
sequenceNumberthentimestamp; de-duplicate byskillInvocationID(confirmed with the Dataset Blender owner).reasoningis narration-only (string). Turn-level thinking metrics (token count / duration) stay turn-level — they don't belong per-skill.executionContextvalues areinline/forked.timestampis 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
bsandersto be invited if not, and desired)Still open (feedback welcome)
reasoning.narration(derived from thinking output; a truncated preview today)Validation
npm test- 2413 passingnpm run lint- cleannpm run validate- zero new failures vsmasterbaselinenpm run incompatibility-check- clean (exit 0)Breaking changes
None.