<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.29 (Ruby 3.2.3) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-zhang-rtgwg-ai-agents-troubleshooting-00" category="info" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.31.0 -->
  <front>
    <title>Use Cases and Requirements of Communication Protocol for Troubleshooting Agents on Network Devices</title>
    <seriesInfo name="Internet-Draft" value="draft-zhang-rtgwg-ai-agents-troubleshooting-00"/>
    <author fullname="Ruyi Zhang">
      <organization>Huawei</organization>
      <address>
        <email>zhangruyi8@huawei.com</email>
      </address>
    </author>
    <author fullname="Jianwei Mao">
      <organization>Huawei</organization>
      <address>
        <email>maojianwei@huawei.com</email>
      </address>
    </author>
    <author fullname="Bing Liu">
      <organization>Huawei</organization>
      <address>
        <email>leo.liubing@huawei.com</email>
      </address>
    </author>
    <author fullname="Nan Geng">
      <organization>Huawei</organization>
      <address>
        <email>gengnan@huawei.com</email>
      </address>
    </author>
    <author fullname="Xiaotong Shang">
      <organization>Huawei</organization>
      <address>
        <email>shangxiaotong@huawei.com</email>
      </address>
    </author>
    <author fullname="Qiangzhou Gao">
      <organization>Huawei</organization>
      <address>
        <email>gaoqiangzhou@huawei.com</email>
      </address>
    </author>
    <author fullname="Zhenbin Li">
      <organization>Huawei</organization>
      <address>
        <email>robinli314@163.com</email>
      </address>
    </author>
    <date year="2025" month="November" day="03"/>
    <area>AREA</area>
    <workgroup>rtgwg</workgroup>
    <keyword>Agents</keyword>
    <keyword>Troubleshooting</keyword>
    <keyword>Communication Protocol</keyword>
    <abstract>
      <?line 59?>

<t>This document focuses on the use cases and requirements of communication protocols for troubleshooting agents on network devices.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://example.com/LATEST"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-zhang-rtgwg-ai-agents-troubleshooting/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        rtgwg Working Group mailing list (<eref target="mailto:WG@example.com"/>),
        which is archived at <eref target="https://example.com/WG"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/USER/REPO"/>.</t>
    </note>
  </front>
  <middle>
    <?line 63?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>This document focus on communication protocols and associated requirements for network troubleshooting interactions among agents on network devices. 
As modern networks evolve toward greater complexity and dynamism, traditional centralized management systems face significant challenges in real-time fault detection and resolution. 
Intelligent agents embedded within network devices represent a paradigm shift toward distributed, autonomous network operations. 
This draft addresses the need for standardized communication methodologies that enable these agents to collaboratively identify, diagnose, and recover network issues across diverse environments.</t>
      <t>The contents of this document are as follows:</t>
      <t>First, this document introduces three use cases to illustrate communication workflows between network device agents during troubleshooting.
Second, this document analyzes existing transport protocols for these interactions, highlighting the strengths and limitations for agent scenarios.
Finally, this document establishes fundamental requirements for implementing effective agent-to-agent troubleshooting systems. 
By analyzing those interoperable communication modes, this draft aims to facilitate the development of self-healing networks capable of maintaining service levels despite increasing operational complexity.</t>
      <t>The use cases and requirements outlined herein are designed to be applicable across various network domains, including data center networks, campus networks, and IoT edge networks.</t>
    </section>
    <section anchor="conventions-and-definitions">
      <name>Conventions and Definitions</name>
      <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
      <?line -18?>

<t>Troubleshooting Agent: An agent that runs on network devices to identify, diagnose, and recover from network failures.</t>
    </section>
    <section anchor="use-cases">
      <name>Use Cases</name>
      <section anchor="use-case-1-data-center-network">
        <name>Use Case 1: Data Center Network</name>
        <t>In a large-scale data center network, multiple troubleshooting agents on network devices, such as switches and routers, need to collaboratively identify and diagnose a transient latency issue affecting application performance. 
The troubleshooting workflow begins when an application performance monitoring agent detects elevated response times and assign a diagnosis task to troubleshooting agents on network devices. 
The application performance monitoring agent also can reports this issue to the agent on the network controller, which then notifies troubleshooting agents on network devices to root the cause of this performance issue. 
The ways by which troubleshooting agents on network devices receive tasks is beyond the scope of this draft.</t>
        <t>For this use case, a high-performance, low-cost communication protocol is required.
In existing works, gRPC provides significant advantages for this scenario. This part takes gRPC as an example.</t>
        <t>When a troubleshooting agent on the network device receives a task to identify, diagnose, and recover from network failures, the communication flow may same as this figure.</t>
        <artwork type="ascii-art"><![CDATA[
                                                                            
+--------------------+  1. establishes connection  +-----------------+
| +----------------+ +----------------------------->  +-----------+  |
| |                | | 2. request for related data |  |           |  |
| |Initiating Agent| +----------------------------->  |   Agent   |  |
| |                | |        3. response          |  |           |  |
| +----------------+ <-----------------------------+  +-----------+  |
|                    | 4. share analysis results   |    Relevant     |
|   Network Device   +-----------------------------> Network Devices |
+--------------------+                             +-----------------+
                                                                            
]]></artwork>
        <t>Figure: Data Center Networks</t>
        <t>The communication flow includes these steps as follows. This document provides message examples for each step.</t>
        <t>Step 1, the initiating agent establishes connections with relevant network device agents. This step may include some security-related steps and description about failure.</t>
        <sourcecode type="json"><![CDATA[
{
        "Sender": "Agent-I",
        "Failure":
        {
                "Location": "Host 1",
                "Type": "Packet loss rate greater than threshold",
                "Description": "...",
        },
        "Solution":
        {
        },
        "Analysis":
        {
        },
        ...
}
]]></sourcecode>
        <t>Step 2, through bidirectional connection, the initiator requests real-time telemetry data including interface statistics, queue depths, and latency measurements.</t>
        <t>The request message of initiator could be as following.</t>
        <sourcecode type="json"><![CDATA[
{
        "Sender": "Agent-I",
        "Failure":
        {
                "Location": "Host 1",
                "Type": "Packet loss rate greater than threshold",
                "Description": "...",
        },
        "Solution":
        {
                "RelatedNetDevice1":
                {
                        "Type": "Request",
                        "Resource": "Data",
                        "Description": "Traffic patterns of the device's ingress and egress over a certain period of time.",
                        "TransMehtods": ["gRPC", "QUIC"]
                },
                "RelatedHost2":
                {
                        "Type": "Request",
                        "Resource": "Method",
                        "Description": "The device needs to send colored packets to collect path data."
                },
                ....
        },
        "Analysis":
        {
        },
        ...
}
]]></sourcecode>
        <t>Step 3, network agents respond with telemetry data in real-time.
The related network device would send this message as response.</t>
        <sourcecode type="json"><![CDATA[
{
        "Sender": "Agent-D",
        "Response":
        {
                "Resource": "Data",
                "Data":
                {
                        "Description": "Traffic patterns of this device's ingress and egress over a certain period of time.",
                        "TransMethods": "gRPC",
                        ...
                }
                ....
        },
        ...
}
]]></sourcecode>
        <t>Step 4, optionally, the initiating agent share analysis results through the same channels, enabling collaborative root cause identification.</t>
        <t>Step 5, once the root casue of the failure is identified, agents negotiate and implement traffic engineering adjustments.</t>
      </section>
      <section anchor="use-case-2-campus-network">
        <name>Use Case 2: Campus Network</name>
        <t>A network segmentation issue in an enterprise campus requires verification of consistent policy application across multiple security domains. Agents residing in firewalls, switches, and wireless controllers must collaboratively audit their configurations against intended policies to identify discrepancies causing the segmentation failure.</t>
        <t>For this use case, a configuration-oriented troubleshooting scenario, HTTP-based RESTCONF offers several benefits. This part takes RESTCONF as an example.
The RESTful architecture provides familiar, standardized operations (GET, PATCH, DELETE) for configuration manipulation. 
YANG data modeling ensures semantic consistency across multi-vendor environments, crucial for accurate policy verification. 
HTTP/2's header compression and request multiplexing improve efficiency when interacting with numerous agents simultaneously. 
The protocol's stateless nature simplifies error recovery, while standardized status codes and error responses enable predictable failure handling. 
Rich authentication mechanisms integrate seamlessly with existing enterprise security infrastructures.
However, RESTCONF lacks streaming capabilities for real-time telemetry exchange.</t>
        <t>In this use case, the agent who is informed to complete this task is named coordinator agent.</t>
        <artwork type="ascii-art"><![CDATA[
                     +-----------------------+                       
                     | +-------------------+ |                       
                     | |                   | |                       
                     | | Coordinator Agent | |4. process data        
                     | |                   | |                       
                     | +-------------------+ |                       
                     |                       |                       
                     |     Network Device    |                       
                     +---^------+------------+                       
                         |      |1. establishes connections          
                         |      |2. queries configuration data       
         +---------------+------++------------------------+          
         |               |       |5. pushes configuration adjustments
         |  3. response  +-------+---------------+        |          
         |        +------+       |               |        |          
+--------v--------+     ++-------v--------+     ++--------v-------+  
|   +---------+   |     |   +---------+   |     |   +---------+   |  
|   |  Agent  |   |     |   |  Agent  |   |     |   |  Agent  |   |  
|   +---------+   |     |   +---------+   |     |   +---------+   |  
|                 |     |                 |     |                 |  
| Network Device  |     | Network Device  |     | Network Device  |  
+-----------------+     +-----------------+     +-----------------+  
                
]]></artwork>
        <t>Figure: Campus Networks</t>
        <t>The communication flow includes these steps:</t>
        <ol spacing="normal" type="1"><li>
            <t>A coordinator agent establishes connections with relevant network agents.</t>
          </li>
          <li>
            <t>The coordinator queries configuration data from multiple device agents using standardized YANG data models.</t>
          </li>
          <li>
            <t>Each agent responds with structured configuration data representing its current operational state.</t>
          </li>
          <li>
            <t>The coordinator analyzes the collective configuration data, identifies inconsistencies in access control lists and routing policies, and generates remediation instructions.</t>
          </li>
          <li>
            <t>Using RESTCONF PATCH operations or other network management operations, the coordinator pushes configuration adjustments to specific agents.</t>
          </li>
          <li>
            <t>Agents respond with structured error messages if operations fail, enabling precise fault localization.</t>
          </li>
        </ol>
      </section>
      <section anchor="use-case-3-iot-edge-network">
        <name>Use Case 3: IoT Edge Network</name>
        <t>In an IoT edge network, multiple constrained devices experience intermittent connectivity issues. Lightweight agents on these devices must efficiently share fault information and coordinate recovery actions while conserving bandwidth and battery resources.</t>
        <t>In IoT network, MQTT protocol is used widely. This part takes MQTT as an example.
MQTT's publish-subscribe model offers distinct advantages for distributed troubleshooting scenarios. The decoupled communication pattern allows agents to exchange information without direct connections, reducing coordination overhead. Configurable QoS levels enable reliability matching for different message.
For example, types—QoS 0 for non-critical telemetry, QoS 1 for important fault notifications, and QoS 2 for critical configuration changes. The minimal protocol overhead conserves bandwidth and battery life on constrained devices. Last Will and Testament features ensure other agents are notified when a device becomes unreachable, enabling rapid detection of network partitions. The topic-based routing simplifies message filtering and delivery to interested parties only.</t>
        <artwork type="ascii-art"><![CDATA[
                                                       +----------------+  
                                                       |    +-------+   |  
                                                       |    | Agent |   |  
                                                      ++    +-------+   |  
                                                      || Network Device |  
2. Identify faiulres  3.publish a failure report      |+----------------+  
     +----------------+    +---------------+    1. Subscribe------------+  
     |    +-------+   <----++-------------+<----------+|    +-------+   |  
     |    | Agent |   |    || MQTT Broker ||          ++    | Agent |   |  
     |    +-------+   |    |+-------------+|          ||    +-------+   |  
     | Network Device |    | Network Edge  +---------->| Network Device |  
     +-------------^--+    +---------------+4. Notification-------------+  
                   |                                  |+----------------+  
                   +----------------------------------++    +-------+   |  
                 5. Offer related data and resources  ||    | Agent |   |  
                                                      ++    +-------+   |  
                                                       | Network Device |  
                                                       +----------------+     
]]></artwork>
        <t>Figure: IoT Edge Networks</t>
        <t>The communication flow includes these steps:</t>
        <ol spacing="normal" type="1"><li>
            <t>Agents subscribe to relevant fault notification topics on an MQTT broker deployed at the network edge.</t>
          </li>
          <li>
            <t>The agent on the network device which happened a network failure identifies the network failure.</t>
          </li>
          <li>
            <t>Agent publishes a structured failure report to appropriate topics.</t>
          </li>
          <li>
            <t>Subscribed agents receive the notification and contribute additional context from their perspectives.</t>
          </li>
          <li>
            <t>The subscribed agents may offer some data and resources to diagnose or recover FROM this failure.</t>
          </li>
          <li>
            <t>The agent on the network device that caused this failure recovers the failure or reports it.</t>
          </li>
        </ol>
      </section>
    </section>
    <section anchor="requirements">
      <name>Requirements</name>
      <t>According to those use cases, this draft concludes requirements of communication protocol for network troubleshooting interactions among agents on network devices.</t>
      <section anchor="data-transport-requirement">
        <name>Data Transport Requirement</name>
        <section anchor="data-format">
          <name>Data Format</name>
          <t>The interaction between Agents should use human-readable language, e.g., natural language. However, in terms of communication performance, messages delivered by agents should be encapsulated in structured format. The message sent by agent would be as follows.</t>
          <sourcecode type="json"><![CDATA[
{
        "Sender": "Agent",
        "Failure":
        {
                "Location": "..",
                "Type": "...",
                "Description": "...",
        },
        "Solution":
        {
        },
        "Analysis":
        {
        },
        ...
}
]]></sourcecode>
        </section>
        <section anchor="streaming-capabilities">
          <name>Streaming Capabilities</name>
          <t>Troubleshooting agents <bcp14>MUST</bcp14> support bidirectional streaming for real-time telemetry exchange and collaborative analysis. Streaming implementations <bcp14>SHOULD</bcp14> include flow control mechanisms to prevent resource exhaustion and <bcp14>MUST</bcp14> maintain message ordering within streams. Agents <bcp14>SHOULD</bcp14> implement priority handling for critical troubleshooting messages within streams to ensure timely delivery of urgent notifications.</t>
        </section>
        <section anchor="transaction-integrity">
          <name>Transaction Integrity</name>
          <t>For configuration modifications during troubleshooting, agents <bcp14>MUST</bcp14> implement transactional semantics to maintain network consistency. Multi-agent transactions <bcp14>SHOULD</bcp14> support two-phase commit protocols or equivalent distributed consensus mechanisms. All configuration changes <bcp14>MUST</bcp14> be idempotent to allow safe retransmission in case of delivery uncertainties.</t>
        </section>
      </section>
      <section anchor="protocol-implementation-requirements">
        <name>Protocol Implementation Requirements</name>
        <section anchor="mandatory-transport-security">
          <name>Mandatory Transport Security</name>
          <t>All inter-agent communications <bcp14>MUST</bcp14> employ transport-layer security (TLS 1.2 or higher) with mutual authentication. Certificate-based authentication is PREFERRED over pre-shared keys for scalable deployment. Agents <bcp14>MUST</bcp14> implement certificate revocation checking and <bcp14>SHOULD</bcp14> support forward secrecy cipher suites.</t>
        </section>
        <section anchor="standardized-error-handling">
          <name>Standardized Error Handling</name>
          <t>Agents <bcp14>MUST</bcp14> implement consistent error reporting mechanisms across all communication protocols. Error responses <bcp14>MUST</bcp14> include machine-readable error codes, human-readable descriptions, and suggested remediation actions. Protocol-specific error mappings <bcp14>SHOULD</bcp14> be defined to translate underlying transport errors to application-level troubleshooting semantics.</t>
        </section>
        <section anchor="message-prioritization-and-preemption">
          <name>Message Prioritization and Preemption</name>
          <t>Troubleshooting systems <bcp14>MUST</bcp14> implement message prioritization to ensure critical fault notifications receive appropriate network resources. Agents <bcp14>SHOULD</bcp14> support preemption of lower-priority communications when high-priority troubleshooting sessions require immediate attention. Quality of Service differentiation <bcp14>SHOULD</bcp14> be implemented at both transport and application layers.</t>
        </section>
      </section>
      <section anchor="operational-requirements">
        <name>Operational Requirements</name>
        <section anchor="interoperability-and-versioning">
          <name>Interoperability and Versioning</name>
          <t>Agents <bcp14>MUST</bcp14> implement protocol version negotiation to maintain backward compatibility during upgrades. Data schema evolution <bcp14>SHOULD</bcp14> follow compatibility rules that prevent communication breakdowns. Agents <bcp14>SHOULD</bcp14> support graceful degradation of functionality when communicating with older implementations.</t>
        </section>
        <section anchor="resource-management">
          <name>Resource Management</name>
          <t>Agent implementations <bcp14>MUST</bcp14> include configurable resource limits to prevent exhaustion during mass troubleshooting events. Memory, bandwidth, and processing quotas <bcp14>SHOULD</bcp14> be enforced per communication session. Agents <bcp14>MUST</bcp14> implement circuit breaker patterns to isolate misbehaving peers and maintain overall system stability.</t>
        </section>
        <section anchor="observability-and-audit">
          <name>Observability and Audit</name>
          <t>All troubleshooting communications <bcp14>MUST</bcp14> be logged with sufficient detail to reconstruct decision processes. Log entries <bcp14>SHOULD</bcp14> include message timestamps, participant identities, and semantic content summaries. Audit trails <bcp14>MUST</bcp14> be protected against tampering and available for post-incident analysis.</t>
        </section>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>TBD</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document has no IANA actions.</t>
    </section>
    <section anchor="conclusion">
      <name>Conclusion</name>
      <t>TBD</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-normative-references">
      <name>Normative References</name>
      <reference anchor="RFC2119">
        <front>
          <title>Key words for use in RFCs to Indicate Requirement Levels</title>
          <author fullname="S. Bradner" initials="S." surname="Bradner"/>
          <date month="March" year="1997"/>
          <abstract>
            <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
          </abstract>
        </front>
        <seriesInfo name="BCP" value="14"/>
        <seriesInfo name="RFC" value="2119"/>
        <seriesInfo name="DOI" value="10.17487/RFC2119"/>
      </reference>
      <reference anchor="RFC8174">
        <front>
          <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
          <author fullname="B. Leiba" initials="B." surname="Leiba"/>
          <date month="May" year="2017"/>
          <abstract>
            <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
          </abstract>
        </front>
        <seriesInfo name="BCP" value="14"/>
        <seriesInfo name="RFC" value="8174"/>
        <seriesInfo name="DOI" value="10.17487/RFC8174"/>
      </reference>
    </references>
    <?line 401?>

<section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>TODO acknowledge.</t>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA+1c63IbR3b+P0/R4f7Y3RCATUnrOCzHa5qkJKZIUSahON6t
3arGTANoazANT8+Qgk258hB5gDxLHiVPku+cvswFA4q0la39Ef6QiMH06dPn
fmuOx+MkqXSVq0Ox98YqcSytskIWmbhSP9S6VCtVVFaYuTg2q1Vd6FRW2hTi
dWkqk5pczE0ppqWpZ7myS2MqXSzE0cItKsQrVd2a8q04UTc6VXYvwXK1MOXm
UOhibpIkM2khV9g9K+W8Gv+4lMViXFaL28VY6rFkQOOqC3/86aeJrWcrbS1Q
qTZrLD87nT4XIinq1UyVh0mGbQ6T1BRWFba2h6Iqa5XcHIqniSyVPBRHV6dH
CaG2AOz1oeAtk7dqg2fZYSLG/hD0W+949GiYGMmNKmrsK0QHqhAOx2+xHZHn
BX2Jpyupczx98ZV6J1frXE1Ss8JjWabLQ7GsqrU9/OST1neffPuCQOtqWc8O
xZvr06tPrk5fX+JZjuPaanjR+dH09HqaJLKulqako2GBEPM6zx3lr+qNFn8i
wvMXplzIQv/IJzsUL2t5qzTOOxmJ8yrjN5RDnHlVYvHnXy35LYd/H/y/alkQ
iAtpHgd/Jc33bu298L8mkp7r+nHAc2Umua5nWHwv9FeyEC/UY0kD0VkUsrgX
8r9rCakB7tePJ72lJe88gHt3+QYUXPy4NLV48Vj6L6T5Iay+d48/LVUBQoIJ
j9ugNFiV66cHz746+Owpwy5MucLCGyhRQgai+TQej4Wc2aqUaZUk06W2Araj
JvMEG5TWZLagitVSCfwu0mjHyp4dSzuqu/aqa9mQ9QyNkNGQFd6QZc6QTRxC
K51luUqS34izAmuzOiWgg+gRkF1bE5rSWpNq6HEPY0IrbN5HTxeVInoAGoCs
zL0Yi+TIipXJVBm/s0LdmPxGicrcyjKD1VJAoCQ8YT3e6WrDqGUb8Fnb1QgI
yEzTdjIXKTYqZa5/BMYrWWBjPqzd2EqtgLdMlbB6Ueg5Dowv0qXMc+gF2AJZ
wU75uNIrhRfrvAKWleKDeJ5Zk9f0EWiDtCrPNR0sHE/BymcZNr6FMdRbZ8X6
NUDwArGWhPRiBaXR8yocNdMQJT2rQe+RgGk0hVkZcClAMmtQlgkLDBw7yUEJ
mWWATLJFklYo4EAcshXQBlymRpfNKwW7m5ncLDSvkpVQhQQbCQIk1R+pMliX
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
AA==

-->

</rfc>
