Extending SDF and CoAP for AI Agent Interaction with IoT Devices
draft-corneo-t2trg-sdf-coap-agents-00
This document is an Internet-Draft (I-D).
Anyone may submit an I-D to the IETF.
This I-D is not endorsed by the IETF and has no formal standing in the
IETF standards process.
| Document | Type | Active Internet-Draft (individual) | |
|---|---|---|---|
| Authors | Lorenzo Corneo , Jaime Jimenez , Ari Keränen | ||
| Last updated | 2026-07-06 | ||
| RFC stream | (None) | ||
| Intended RFC status | (None) | ||
| Formats | |||
| Stream | Stream state | (No stream defined) | |
| Consensus boilerplate | Unknown | ||
| RFC Editor Note | (None) | ||
| IESG | IESG state | I-D Exists | |
| Telechat date | (None) | ||
| Responsible AD | (None) | ||
| Send notices to | (None) |
draft-corneo-t2trg-sdf-coap-agents-00
Thing-to-Thing Research Group (T2TRG) L. Corneo
Internet-Draft J. Jiménez
Intended status: Informational A. Keränen
Expires: 7 January 2027 Ericsson
6 July 2026
Extending SDF and CoAP for AI Agent Interaction with IoT Devices
draft-corneo-t2trg-sdf-coap-agents-00
Abstract
This document proposes extensions to the Semantic Definition Format
(SDF) and the Constrained Application Protocol (CoAP) to better
support AI agent interaction with Internet of Things (IoT) devices.
It covers two aspects: identifying AI agents in CoAP transactions,
and making SDF device descriptions readily consumable by large
language models (LLMs) and autonomous agents. The document is
intended to stimulate discussion within T2TRG on these topics.
Discussion Venues
This note is to be removed before publishing as an RFC.
Discussion of this document takes place on the Thing-to-Thing
Research Group mailing list (t2trg@irtf.org), which is archived at
https://mailarchive.ietf.org/arch/browse/t2trg.
Source for this draft and an issue tracker can be found at
https://gitlab.internal.ericsson.com/ietf/t2trg-iot-agents.
Status of This Memo
This Internet-Draft is submitted in full conformance with the
provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet-
Drafts is at https://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress."
This Internet-Draft will expire on 7 January 2027.
Corneo, et al. Expires 7 January 2027 [Page 1]
Internet-Draft SDF CoAP Agents July 2026
Copyright Notice
Copyright (c) 2026 IETF Trust and the persons identified as the
document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents (https://trustee.ietf.org/
license-info) in effect on the date of publication of this document.
Please review these documents carefully, as they describe your rights
and restrictions with respect to this document.
Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2
2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3
3. AI Agent Identification for CoAP . . . . . . . . . . . . . . 3
3.1. Approach . . . . . . . . . . . . . . . . . . . . . . . . 4
3.1.1. Step 1: Agent-ID CoAP Option . . . . . . . . . . . . 4
3.1.2. Step 2: Key Discovery via Resource Directory . . . . 5
3.1.3. Step 3: Agent-Aware Server Behavior . . . . . . . . . 5
4. SDF Content Negotiation for AI Agents . . . . . . . . . . . . 5
4.1. Approach: Signaling Agent Intent . . . . . . . . . . . . 5
5. LLM-Friendly SDF Descriptions . . . . . . . . . . . . . . . . 7
5.1. Approach 1: Developer-Defined Templates . . . . . . . . . 7
5.2. Approach 2: Structured Examples for Language Models . . . 8
6. Security Considerations . . . . . . . . . . . . . . . . . . . 9
7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 10
8. References . . . . . . . . . . . . . . . . . . . . . . . . . 10
8.1. Normative References . . . . . . . . . . . . . . . . . . 10
8.2. Informative References . . . . . . . . . . . . . . . . . 10
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 11
1. Introduction
AI agents — software systems that combine large language models with
tool use and autonomous decision-making — are increasingly used to
interact with networked services on behalf of users. In the IoT
domain, devices expose their capabilities through machine-readable
descriptions such as SDF [RFC9880]. Agents that want to discover,
understand, and actuate IoT devices need to consume these
descriptions and communicate with the devices, often over CoAP
[RFC7252].
Two gaps exist in the current protocol landscape:
Corneo, et al. Expires 7 January 2027 [Page 2]
Internet-Draft SDF CoAP Agents July 2026
1. CoAP has no mechanism for a client to declare that it is an AI
agent, nor to carry an authenticated agent identity. Servers
cannot distinguish an autonomous agent from a human-operated
application, limiting their ability to apply agent-specific
policies.
2. SDF documents are JSON-based and machine-readable, but they lack
explicit guidance for LLM consumption. Missing or terse
descriptions can cause agents to misinterpret device
capabilities, leading to incorrect actions — a problem that
ranges from wasted API calls to safety hazards when physical
actuators are involved.
This document outlines approaches to address both gaps. It is
informational and intended to frame discussion; it does not define
protocol extensions or registrations.
2. Terminology
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
"OPTIONAL" in this document are to be interpreted as described in
BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all
capitals, as shown here.
SDF: Semantic Definition Format, a JSON-based language for
describing IoT device capabilities [RFC9880].
AI Agent: A software system that uses a large language model in a
loop with external tools to achieve a goal autonomously.
LLM: Large Language Model; a neural network trained on text that
generates token sequences given an input context.
Resource Directory (RD): A CoAP-based directory where endpoints
register their resources [RFC9176].
3. AI Agent Identification for CoAP
On the web, work is underway to authenticate automated clients
through HTTP Message Signatures [RFC9421] and related mechanisms such
as [I-D.meunier-web-bot-auth-architecture]. These approaches let
servers verify what software is making a request and apply
appropriate policies.
In parallel, the IETF WIMSE (Workload Identity in Multi-System
Environments) working group is defining identity credentials for
workloads, including autonomous agents. The Workload Identity Token
Corneo, et al. Expires 7 January 2027 [Page 3]
Internet-Draft SDF CoAP Agents July 2026
(WIT) [I-D.ietf-wimse-workload-creds] is a signed token that
represents a workload's identity, and the Workload Proof Token (WPT)
[I-D.ietf-wimse-wpt] lets a workload prove possession of the key
bound to its WIT on a per-request basis. Together these represent
the current state of the art for authenticated agent identity, but
they are defined for HTTP and JSON-based environments.
CoAP has no equivalent. The protocol authenticates devices via DTLS
or OSCORE [RFC8613], but these mechanisms establish device identity,
not the nature of the client software. A CoAP server receiving a GET
request cannot tell whether the client is a firmware update agent, a
user's mobile app, or an autonomous AI agent exploring device
capabilities.
3.1. Approach
The approach proposed in this draft consists of a workflow in three
steps.
3.1.1. Step 1: Agent-ID CoAP Option
This approach leverages an elective CoAP option that carries agent
identification information. Being elective, servers that do not
understand it simply ignore it, preserving backward compatibility.
The option would carry:
* An agent identifier string (analogous to HTTP User-Agent but
structured for constrained environments).
* A cryptographic signature over relevant message fields, allowing
the server to verify the agent's claimed identity.
* A reference to where the agent's public key can be retrieved.
The signature and key material would use CBOR encoding to remain
compact for constrained links. An agent reading a sensor might then
send:
GET /sensors/temperature
Agent-ID: h'a4012667...' (COSE_Sign1, keyid "sig1")
Accept: 60 (application/cbor)
2.05 Content
Content-Format: 60 (application/cbor)
22.5
Corneo, et al. Expires 7 January 2027 [Page 4]
Internet-Draft SDF CoAP Agents July 2026
The Agent-ID value is a CBOR-encoded COSE_Sign1 structure; it is
shown here as a hexadecimal item with an inline comment. A server
that does not understand the elective option ignores it and answers
as usual.
3.1.2. Step 2: Key Discovery via Resource Directory
Rather than defining a new key distribution mechanism, agent public
keys can be registered in a CoAP Resource Directory [RFC9176]. The
RD already serves as a discovery mechanism for IoT endpoints;
extending it to host agent key material (or links to externally
hosted keys) reuses existing infrastructure.
A server receiving an Agent-ID option with an unknown key identifier
would query the RD once to retrieve the key, then cache it for
subsequent interactions with that agent.
3.1.3. Step 3: Agent-Aware Server Behavior
Once a server has verified an agent's identity, it can adjust its
responses. Examples include:
* Returning richer descriptions alongside sensor data.
* Indicating content usage restrictions (e.g., data not to be used
for model training).
* Applying rate limiting or access restrictions specific to
automated clients.
These policy decisions remain simple — appropriate for constrained
devices with limited processing budgets.
4. SDF Content Negotiation for AI Agents
SDF documents are designed for toolchains and developers. An AI
agent requesting an SDF model receives a JSON structure that it can
parse, but may not correctly interpret — particularly when optional
description fields are absent or terse. The agent has no way to
signal that it would prefer a representation optimized for language
model consumption.
4.1. Approach: Signaling Agent Intent
A content type such as text/sdf could indicate that the client wants
a natural-language rendering of the SDF model rather than the raw
JSON. In HTTP, this maps to the Accept header:
Corneo, et al. Expires 7 January 2027 [Page 5]
Internet-Draft SDF CoAP Agents July 2026
GET /models/thermometer
Accept: text/sdf
In CoAP, the same intent could be expressed through a Content-Format
option. SDF already has a registered CoAP Content-Format (434) for
application/sdf+json [RFC9880], so a representation for agents would
be a new, second format. The intent could alternatively be expressed
through resource type filtering using the CoRE Link Format [RFC6690]:
GET /sdf?rt=ai
In MQTT v5, the Content Type property in a SUBSCRIBE or PUBLISH
packet can carry the same media type string (e.g., text/sdf) to
signal the desired representation. An MQTT broker or bridge that
also serves SDF models can use this field to select the appropriate
representation before forwarding the payload to the subscriber.
A server (or intermediary) receiving such a request would return a
text representation assembled from the SDF model's descriptive
content, rather than the raw JSON document.
Requesting the registered format returns the JSON model:
GET /sdf/thermometer
Accept: 434 (application/sdf+json)
2.05 Content
Content-Format: 434 (application/sdf+json)
{
"sdfObject": {
"thermometer": {
"sdfProperty": {
"temperature": { "type": "number", "unit": "Cel" }
}
}
}
}
Requesting the agent-oriented format returns the natural-language
rendering. Its content-format has no assigned code point, shown here
as TBD:
Corneo, et al. Expires 7 January 2027 [Page 6]
Internet-Draft SDF CoAP Agents July 2026
GET /sdf/thermometer
Accept: TBD (text/sdf)
2.05 Content
Content-Format: TBD (text/sdf)
Temperature sensor. Property @T is the reading in Celsius.
GET /temperature to read it.
5. LLM-Friendly SDF Descriptions
Even when an AI agent successfully retrieves and parses an SDF
document, it may misinterpret the semantics. Tests show that agents
make errors when critical optional fields (like description) are
missing, or when the relationship between properties, actions, and
events is not obvious from the JSON structure alone.
5.1. Approach 1: Developer-Defined Templates
A new SDF quality (working name: sdfBot) would allow model developers
to embed natural-language instructions directly in the SDF document.
These instructions tell agents how to interpret and use the described
capabilities.
The quality can appear at the document root (providing an overview)
and within individual affordances (providing usage instructions for
specific properties, actions, or events). A short reference
mechanism allows the root template to incorporate per-affordance
descriptions by reference.
Example SDF fragment:
{
"sdfBot": "Temperature sensor. @T is the reading in Celsius.",
"sdfObject": {
"thermometer": {
"sdfProperty": {
"temperature": {
"description": "Measured temperature",
"type": "number",
"unit": "Cel",
"botRef": "T",
"sdfBot": "Read-only. GET /temperature (Celsius)."
}
}
}
}
}
Corneo, et al. Expires 7 January 2027 [Page 7]
Internet-Draft SDF CoAP Agents July 2026
When an agent requests the text/sdf representation, the server
assembles the sdfBot strings into a coherent natural-language
description. When a non-agent client requests application/sdf+json,
it receives the standard JSON model (with or without the sdfBot
fields, depending on implementation).
SDF already has a description field for human-readable text. The
sdfBot quality differs in intent: it targets automated consumers and
can include explicit usage instructions (endpoints to call, expected
value ranges, sequencing constraints) that would be unusual in a
human-facing description.
5.2. Approach 2: Structured Examples for Language Models
LLMs can be guided to perform tasks more accurately when the prompt
includes concrete examples of similar interactions. By showing the
model what a successful request looks like, it can generalize to new
tasks in the same context.
This approach proposes a new SDF quality sdfStructuredExamples for
including such usage examples in the LLM-friendly representation.
For simple cases, the value of the quality is an array of JSON
objects, each with three members:
* "task": describing the example task
* "action": the resulting action the agent would take to achieve the
goals of the task
* "parameters": giving associated parameter values needed for the
action
The "parameters" member can be omitted if the invocation of the
affordance does not need any parameters or they are obvious from the
context. Similarly, "action" can be omitted if the required
interaction is obvious from the context (e.g., reading the value of
the property the example describes).
For SDF documents, such examples can be on object level to describe
the use of the capabilities of the object in general, or at the
affordance level to show how the affordance can be used to achieve a
goal.
Example of a structured example for a simple task:
Corneo, et al. Expires 7 January 2027 [Page 8]
Internet-Draft SDF CoAP Agents July 2026
{
"sdfStructuredExamples": [
{
"task": "Get temperature notifications every 3s for 60s.",
"action": "Execute sdfAction/startMonitor",
"parameters": {
"interval": 3,
"duration": 60
}
}
]
}
For more complex interactions, a set of steps with actions and
optional parameters can be given. A step can also include a
"readyWhen" member describing the end state the agent should look for
before considering the step (or the overall task) complete. For
example:
{
"sdfStructuredExamples": [
{
"task": "Update firmware of the device to version 2",
"steps": [
{
"action": "Set sdfProperty/firmware to v2 image",
"parameters": "<new firmware file>"
},
{
"action": "Execute sdfAction/startFirmwareUpdate"
},
{
"action": "Observe sdfProperty/firmwareVersion",
"readyWhen": "sdfProperty/firmwareVersion has version 2"
}
]
}
]
}
6. Security Considerations
Agent identification introduces the question of trust: a server must
decide which agent identities to accept and what policies to
associate with them. The cryptographic signature in the Agent-ID
option prevents impersonation but does not establish authorization.
Servers need a policy framework to map verified agent identities to
permitted actions.
Corneo, et al. Expires 7 January 2027 [Page 9]
Internet-Draft SDF CoAP Agents July 2026
The sdfBot and sdfStructuredExamples qualities expose instructions
that agents will follow. Malicious or poorly written content could
cause agents to perform unintended actions, and structured examples
are especially risky because they name concrete actions and
parameters, so an agent may execute them with little further
reasoning. Developers should treat both qualities as security-
relevant, similar to API documentation that automated systems act on
without human review. A server or intermediary that assembles the
text/sdf representation should only incorporate content from trusted
SDF sources.
Content usage restrictions signaled via agent-aware responses are
advisory. Enforcement depends on the agent honoring them; a
malicious agent can ignore any declared restrictions. Servers
holding sensitive data should not rely solely on declared agent
identity for access control.
7. IANA Considerations
This document requests no IANA actions. If the mechanisms discussed
here were pursued, they would require registrations for a CoAP option
number for Agent-ID, a media type and CoAP Content-Format for the
agent-oriented SDF representation, and a resource type value.
8. References
8.1. Normative References
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119,
DOI 10.17487/RFC2119, March 1997,
<https://www.rfc-editor.org/rfc/rfc2119>.
[RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC
2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174,
May 2017, <https://www.rfc-editor.org/rfc/rfc8174>.
8.2. Informative References
[I-D.ietf-wimse-workload-creds]
Campbell, B., Salowey, J. A., Schwenkschuster, A.,
Sheffer, Y., and Y. Rosomakho, "WIMSE Workload
Credentials", Work in Progress, Internet-Draft, draft-
ietf-wimse-workload-creds-02, 2 July 2026,
<https://datatracker.ietf.org/doc/html/draft-ietf-wimse-
workload-creds-02>.
Corneo, et al. Expires 7 January 2027 [Page 10]
Internet-Draft SDF CoAP Agents July 2026
[I-D.ietf-wimse-wpt]
Campbell, B. and A. Schwenkschuster, "WIMSE Workload Proof
Token", Work in Progress, Internet-Draft, draft-ietf-
wimse-wpt-01, 2 March 2026,
<https://datatracker.ietf.org/doc/html/draft-ietf-wimse-
wpt-01>.
[I-D.meunier-web-bot-auth-architecture]
Meunier, T. and S. Major, "HTTP Message Signatures for
automated traffic Architecture", Work in Progress,
Internet-Draft, draft-meunier-web-bot-auth-architecture-
05, 2 March 2026, <https://datatracker.ietf.org/doc/html/
draft-meunier-web-bot-auth-architecture-05>.
[RFC6690] Shelby, Z., "Constrained RESTful Environments (CoRE) Link
Format", RFC 6690, DOI 10.17487/RFC6690, August 2012,
<https://www.rfc-editor.org/rfc/rfc6690>.
[RFC7252] Shelby, Z., Hartke, K., and C. Bormann, "The Constrained
Application Protocol (CoAP)", RFC 7252,
DOI 10.17487/RFC7252, June 2014,
<https://www.rfc-editor.org/rfc/rfc7252>.
[RFC8613] Selander, G., Mattsson, J., Palombini, F., and L. Seitz,
"Object Security for Constrained RESTful Environments
(OSCORE)", RFC 8613, DOI 10.17487/RFC8613, July 2019,
<https://www.rfc-editor.org/rfc/rfc8613>.
[RFC9176] Amsüss, C., Ed., Shelby, Z., Koster, M., Bormann, C., and
P. van der Stok, "Constrained RESTful Environments (CoRE)
Resource Directory", RFC 9176, DOI 10.17487/RFC9176, April
2022, <https://www.rfc-editor.org/rfc/rfc9176>.
[RFC9421] Backman, A., Ed., Richer, J., Ed., and M. Sporny, "HTTP
Message Signatures", RFC 9421, DOI 10.17487/RFC9421,
February 2024, <https://www.rfc-editor.org/rfc/rfc9421>.
[RFC9880] Koster, M., Ed., Bormann, C., Ed., and A. Keränen,
"Semantic Definition Format (SDF) for Data and
Interactions of Things", RFC 9880, DOI 10.17487/RFC9880,
January 2026, <https://www.rfc-editor.org/rfc/rfc9880>.
Authors' Addresses
Lorenzo Corneo
Ericsson
Finland
Email: lorenzo.corneo@ericsson.com
Corneo, et al. Expires 7 January 2027 [Page 11]
Internet-Draft SDF CoAP Agents July 2026
Jaime Jiménez
Ericsson
Finland
Email: jaime.jimenez@ericsson.com
Ari Keränen
Ericsson
Finland
Email: ari.keranen@ericsson.com
Corneo, et al. Expires 7 January 2027 [Page 12]