Skip to content

Feature 1979 conversational experiences #1983

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 9 commits into
base: master
Choose a base branch
from

Conversation

rbuck23
Copy link

@rbuck23 rbuck23 commented Jun 6, 2025

This is a PR to add conversational experiences to XDM. Issue number: #1979

@rbuck23 rbuck23 force-pushed the feature-1979-conversational-experiences branch 3 times, most recently from 0552a52 to 42b24d5 Compare June 6, 2025 22:27
"type": "object",
"description": "Rating data for the feedback",
"properties": {
"xdm:score": {
Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@cluby-adobe and I have some thoughts around the scoring system we should use for feedback. A couple of options are:

Constrain it to a range of -1.0 to 1.0 as follows:

  • 👍 👎 = -1.0 and 1.0
  • ⭐ ⭐ = (num-stars / max-stars) * 2.0 - 1.0
  • enum (very-negative, negative, neutral, positive, very-positive) = -1, -0.5, 0, 0.5, 1.0

Leave it open-ended and rely on consumer of event to represent/interpret:

  • 👍 👎 = 0 and 1
  • ⭐ ⭐ = 2
  • enum (very-negative, negative, neutral, positive, very-positive) = 1, 2, 3, 4, 5

}
}
},
"xdm:feedback": {
Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's very likely that feedback will come asynchronous to the prompt+response. See the conversation-event examples.
https://github.com/adobe/xdm/pull/1983/files#diff-4ce50d36345c5de493a4373ac7350f5bc09d321bf74b5b68e83a0121f655defcR1

@rbuck23 rbuck23 marked this pull request as ready for review June 11, 2025 19:52
@@ -0,0 +1,107 @@
{
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@rbuck23 , I think it would make sense to just put these fields directly in an agentic-event fieldgroup since they aren't reused.

"$ref": "https://ns.adobe.com/xdm/common/extensible#/definitions/@context"
},
{
"$ref": "https://ns.adobe.com/xdm/datatypes/agentic"
Copy link
Member

@clubycoder clubycoder Jun 11, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@rbuck23 , If we want to support the idea of conversation events that are not agentic, it may make sense to have a second field-group that has the agentic information and leave this field-group to just conversation information.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I like this idea especially as we consider call center transcripts.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think what you would want is:
agentic-event.schema.json with properties:

{
  "xdm:agentic": {
    "$ref": "https://ns.adobe.com/xdm/datatypes/agentic",
    "title": "Agentic Properties",
    "definition": "Details for agentic event with agents and skills involved."
  }
}

conversation-event.schema.json with properties:

{
  "xdm:conversation": {
    "$ref": "https://ns.adobe.com/xdm/datatypes/agentic/conversation",
    "title": "Conversation Properties",
    "definition": "Conversation event details including prompts and signals."
  }
}

@rbuck23 rbuck23 force-pushed the feature-1979-conversational-experiences branch from b700c97 to f0a4612 Compare June 20, 2025 23:15
"description": "Object representing a conversation prompt",
"allOf": [
{ "$ref": "#/definitions/count" },
{ "$ref": "#/definitions/source" },
Copy link

@artur-ciocanu artur-ciocanu Jun 24, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could we make sure that prompt has a query property that represents the Raw Text.

"description": "Object representing a conversation response",
"allOf": [
{ "$ref": "#/definitions/count" },
{ "$ref": "#/definitions/source" },

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could we have something like content property in the response as Raw Text. Also, is the expectation here to always send "text"? There will be use cases when operators will return structured data, we could stringify, but I am just wondering if this is expected.

"description": "Object representing a conversation feedback",
"allOf": [
{ "$ref": "#/definitions/count" },
{ "$ref": "#/definitions/source" },
Copy link

@artur-ciocanu artur-ciocanu Jun 24, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same here could we have a property like content instead of raw or comment

"title": "Agentic Information",
"type": "object",
"meta:extensible": true,
"description": "Construct to represent agents, agent skills, etc.",

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@rbuck23 it would be good to add which fields are required, the examples help, but it is not clear which fields are mandatory.

"title": "Conversation",
"type": "object",
"meta:extensible": true,
"description": "Construct to represent agents, agent skills, etc.",

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@rbuck23 it would be good to add which fields are required, the examples help, but it is not clear which fields are mandatory.

"title": "Conversation Signals",
"type": "object",
"meta:extensible": true,
"description": "Conversation entity signals extracted from raw text. Raw text can be from a prompt, response, feedback, etc.",

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@rbuck23 it would be good to add which fields are required, the examples help, but it is not clear which fields are mandatory.

"type": "object",
"allOf": [
{ "$ref": "#/definitions/name" },
{ "$ref": "#/definitions/version" },

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What does a score for a skill mean?

"items": {
"type": "object",
"allOf": [
{ "$ref": "#/definitions/name" },

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What does a score for an agent mean?

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.

3 participants