Skip to content

Generic, extensible signals for the agentic Conversation Event field group#2207

Open
rbuck23 wants to merge 2 commits into
adobe:masterfrom
rbuck23:feature-generic-conversation-signals
Open

Generic, extensible signals for the agentic Conversation Event field group#2207
rbuck23 wants to merge 2 commits into
adobe:masterfrom
rbuck23:feature-generic-conversation-signals

Conversation

@rbuck23

@rbuck23 rbuck23 commented Jun 12, 2026

Copy link
Copy Markdown
Contributor

Summary

Closes #2206

Adds a generic, extensible xdm:attributesMap to the agentic Conversation Event field group so producers can emit new conversation signals without a schema change. Non-breaking / additive — the existing xdm:attributes signals (subjects/intents/tones/sentiment) are deprecated but retained for backward compatibility.

Motivation

Today xdm:signals[].xdm:attributes is a closed set of four named signal types. Every new signal (language, urgency, topic, PII detection, …) needs a schema edit. Agentic/conversational producers emit an open-ended, producer-specific set of derived signals, so a map keyed by signal id is a better fit.

Changes

  • components/fieldgroups/agentic/conversation-event.schema.json
    • Add xdm:attributesMapmeta:xdmType: "map" keyed by signal id; value is an inlined typed signal envelope (xdm:type discriminator + xdm:values[] of stringValue / numberValue / booleanValue / confidence / qualifiers). xdm:type is a hard enum, fully documented in meta:enum.
    • Deprecate the legacy xdm:attributes container (meta:status: deprecated + description), retained for backward compatibility.
  • components/fieldgroups/agentic/conversation-event.example.4.json
    • New example demonstrating the map form, including a new language signal to show extensibility.

Validation

  • npm test — 2408 passing
  • npm run lint — clean (prettier)
  • npm run validate — +1 new pass (example.4), zero new failures vs the master baseline (862/58 with this change vs 861/58 on a clean tree; the 58 are pre-existing, unrelated)
  • npm run incompatibility-check — clean

Breaking changes

None. The change is additive; the legacy xdm:attributes fields are deprecated, not removed.

@rbuck23 rbuck23 force-pushed the feature-generic-conversation-signals branch from 0927403 to a28b0d3 Compare June 15, 2026 16:51
@rbuck23 rbuck23 marked this pull request as ready for review June 15, 2026 17:55
@rbuck23

rbuck23 commented Jun 15, 2026

Copy link
Copy Markdown
Contributor Author

@anandphatak This is the PR I mentioned in slack. @clubycoder has reviewed. Can you review next?

@rbuck23 rbuck23 force-pushed the feature-generic-conversation-signals branch from a28b0d3 to 32be55e Compare June 26, 2026 16:45
Adds a sibling xdm:attributesMap (meta:xdmType: map) to the agentic
Conversation Event field group, keyed by signal id, with an inlined
typed signal value: an xdm:type discriminator plus xdm:values[] of
stringValue / numberValue / booleanValue / confidence / qualifiers.
Producers can emit new signal types without a schema change.

The legacy xdm:attributes container (subjects/intents/tones/sentiment)
is marked deprecated but retained for backward compatibility, so the
change is non-breaking / additive. Adds conversation-event.example.4
demonstrating the map form with both standard signals (subjects,
intents, tones, sentiment) and producer-defined ones (language,
keywords, topics).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@rbuck23 rbuck23 force-pushed the feature-generic-conversation-signals branch from 32be55e to 1013ecb Compare June 26, 2026 16:56
Adds an optional xdm:metadata field (meta:xdmType: map, string->string)
as a sibling of xdm:qualifiers on each xdm:values[] entry, giving
producers a place for extensible per-value metadata (e.g. context around
a signal value) that does not fit xdm:confidence or xdm:qualifiers.
Reuses XDM's xdm:experienceExtras map precedent. Additive/non-breaking.
example.4 updated to demonstrate it on the topics signal.

Co-Authored-By: Claude Opus 4.8 (1M context) <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.

Generic, extensible signals for the agentic Conversation Event field group

1 participant