IETF Draft Analyzer v0.1.0 — track, categorize, and rate AI/agent drafts
Python CLI tool that fetches AI/agent-related Internet-Drafts from the IETF Datatracker, rates them using Claude, generates embeddings via Ollama for similarity/clustering, and produces markdown reports. Features: - Fetch drafts by keyword from Datatracker API with full text download - Batch analysis with Claude (token-optimized, responses cached in SQLite) - Embedding-based similarity search and overlap cluster detection - Reports: overview, landscape by category, overlap clusters, weekly digest - SQLite with FTS5 for full-text search across 260 tracked drafts Initial analysis of 260 drafts reveals OAuth agent auth (13 drafts) and agent gateway/collaboration (10 drafts) as the most crowded clusters, while AI safety/alignment is underserved with the highest quality scores. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
8
.gitignore
vendored
Normal file
8
.gitignore
vendored
Normal file
@@ -0,0 +1,8 @@
|
||||
__pycache__/
|
||||
*.pyc
|
||||
*.egg-info/
|
||||
dist/
|
||||
build/
|
||||
data/drafts.db
|
||||
data/config.json
|
||||
.claude/
|
||||
28
data/reports/digest.md
Normal file
28
data/reports/digest.md
Normal file
@@ -0,0 +1,28 @@
|
||||
# Weekly Digest — IETF AI/Agent Drafts
|
||||
*Generated 2026-02-27 22:54 UTC — showing drafts fetched in last 30 days*
|
||||
|
||||
**260 drafts** in this period
|
||||
|
||||
|
||||
## Awaiting Analysis (260 drafts)
|
||||
|
||||
- [draft-mw-wimse-transitive-attestation](https://datatracker.ietf.org/doc/draft-mw-wimse-transitive-attestation/) — Transitive Attestation for Sovereign Workloads: A WIMSE Profile
|
||||
- [draft-luan-rtgwg-sdaf](https://datatracker.ietf.org/doc/draft-luan-rtgwg-sdaf/) — Symmetry-Driven Asynchronous Forwarding with Fast Reroute for LEO Satellite Networks (SDAF)
|
||||
- [draft-templin-manet-inet-omni](https://datatracker.ietf.org/doc/draft-templin-manet-inet-omni/) — MANET Internetworking with AERO/OMNI
|
||||
- [draft-kartha-grd](https://datatracker.ietf.org/doc/draft-kartha-grd/) — Geospatial Resource Discovery (GRD): Problem Statement and Conceptual Architecture
|
||||
- [draft-cui-nmrg-auto-test](https://datatracker.ietf.org/doc/draft-cui-nmrg-auto-test/) — Framework and Automation Levels for AI-Assisted Network Protocol Testing
|
||||
- [draft-architect-cittamarket](https://datatracker.ietf.org/doc/draft-architect-cittamarket/) — The CITTAMARKET Protocol: Decentralized AGI Identity Anchoring via Bitcoin
|
||||
- [draft-jeong-opsawg-intent-based-sdv-framework](https://datatracker.ietf.org/doc/draft-jeong-opsawg-intent-based-sdv-framework/) — An Intent-Based Management Framework for Software-Defined Vehicles in Intelligent Transportation Systems
|
||||
- [draft-ietf-pim-zeroconf-mcast-addr-alloc-ps](https://datatracker.ietf.org/doc/draft-ietf-pim-zeroconf-mcast-addr-alloc-ps/) — Zeroconf Multicast Address Allocation Problem Statement and Requirements
|
||||
- [draft-ietf-netconf-configuration-tracing](https://datatracker.ietf.org/doc/draft-ietf-netconf-configuration-tracing/) — External Trace ID for Configuration Tracing
|
||||
- [draft-ahn-nmrg-5g-security-i2nsf-framework](https://datatracker.ietf.org/doc/draft-ahn-nmrg-5g-security-i2nsf-framework/) — An Integrated Security Service System for 5G Networks using an I2NSF Framework
|
||||
- [draft-yue-moq-transporting-sensing-data](https://datatracker.ietf.org/doc/draft-yue-moq-transporting-sensing-data/) — Challenges in Transporting Sensing Data with Media Over QUIC
|
||||
- [draft-moreno-lisp-uberlay](https://datatracker.ietf.org/doc/draft-moreno-lisp-uberlay/) — Uberlay Interconnection of Multiple LISP overlays
|
||||
- [draft-sogomonian-aiip-architecture](https://datatracker.ietf.org/doc/draft-sogomonian-aiip-architecture/) — Architecture for the Artificial Intelligence Internet Protocol (AIIP)
|
||||
- [draft-pbs-sidrops-roaanycast](https://datatracker.ietf.org/doc/draft-pbs-sidrops-roaanycast/) — Route Origin Authorization (ROA) Governance for Anycasted Services with Unique Origin ASNs
|
||||
- [draft-bernardos-green-isac-uc](https://datatracker.ietf.org/doc/draft-bernardos-green-isac-uc/) — Integrated Sensing and Communications (ISAC) use case for GREEN
|
||||
- [draft-sogomonian-ai-uri-scheme](https://datatracker.ietf.org/doc/draft-sogomonian-ai-uri-scheme/) — AI URI Scheme
|
||||
- [draft-templin-manet-inet](https://datatracker.ietf.org/doc/draft-templin-manet-inet/) — MANET Internetworking: Problem Statement and Gap Analysis
|
||||
- [draft-fu-cats-flow-lb](https://datatracker.ietf.org/doc/draft-fu-cats-flow-lb/) — Flow-Level Load Balancing of Computing-Aware Traffic Steering (CATS)
|
||||
- [draft-ahn-opsawg-5g-security-i2nsf-framework](https://datatracker.ietf.org/doc/draft-ahn-opsawg-5g-security-i2nsf-framework/) — An Integrated Security Service System for 5G Networks using an I2NSF Framework
|
||||
- [draft-bernardos-cats-isac-uc](https://datatracker.ietf.org/doc/draft-bernardos-cats-isac-uc/) — Integrated Sensing and Communications (ISAC) for CATS
|
||||
21
data/reports/draft-narvaneni-agent-uri.md
Normal file
21
data/reports/draft-narvaneni-agent-uri.md
Normal file
@@ -0,0 +1,21 @@
|
||||
# The agent:// Protocol -- A URI-Based Framework for Interoperable Agents
|
||||
**draft-narvaneni-agent-uri** rev 02
|
||||
|
||||
- **Date:** 2025-10-16
|
||||
- **Pages:** 29
|
||||
- **Group:** individual
|
||||
- **Datatracker:** https://datatracker.ietf.org/doc/draft-narvaneni-agent-uri/
|
||||
- **Text:** https://www.ietf.org/archive/id/draft-narvaneni-agent-uri-02.txt
|
||||
|
||||
## Abstract
|
||||
This document defines the agent:// protocol, a URI template-based
|
||||
framework as described in RFC 6570 for addressing, invoking, and
|
||||
interoperating with autonomous and semi-autonomous software agents.
|
||||
It introduces a layered architecture that supports minimal
|
||||
implementations (addressing and transport) and extensible features
|
||||
(capability discovery, contracts, orchestration). The protocol aims
|
||||
to foster interoperability among agents across ecosystems, platforms,
|
||||
and modalities, enabling composable and collaborative intelligent
|
||||
systems.
|
||||
|
||||
*Not yet rated — run `ietf analyze` to generate a rating.*
|
||||
575
data/reports/landscape.md
Normal file
575
data/reports/landscape.md
Normal file
@@ -0,0 +1,575 @@
|
||||
# IETF AI/Agent Draft Landscape
|
||||
*Generated 2026-02-27 23:29 UTC*
|
||||
|
||||
|
||||
## A2A protocols (77 drafts)
|
||||
|
||||
- **[draft-guy-bary-stamp-protocol](https://datatracker.ietf.org/doc/draft-guy-bary-stamp-protocol/)** (score: 4.6) — Defines STAMP protocol for cryptographic delegation and proof in AI agent systems. Provides task-bou
|
||||
- **[draft-chang-agent-token-efficient](https://datatracker.ietf.org/doc/draft-chang-agent-token-efficient/)** (score: 4.5) — Defines ADOL (Agentic Data Optimization Layer) to address token bloat in agent communication protoco
|
||||
- **[draft-chen-oauth-rar-agent-extensions](https://datatracker.ietf.org/doc/draft-chen-oauth-rar-agent-extensions/)** (score: 4.2) — Extends OAuth RAR with policy_context and lifecycle_binding members for AI agent environments. Enabl
|
||||
- **[draft-mallick-muacp](https://datatracker.ietf.org/doc/draft-mallick-muacp/)** (score: 4.2) — Resource-efficient messaging protocol specifically designed for constrained IoT/Edge devices with de
|
||||
- **[draft-narajala-ans](https://datatracker.ietf.org/doc/draft-narajala-ans/)** (score: 4.2) — Introduces Agent Name Service (ANS) as a DNS-based universal directory for AI agent discovery and ve
|
||||
- **[draft-oauth-transaction-tokens-for-agents](https://datatracker.ietf.org/doc/draft-oauth-transaction-tokens-for-agents/)** (score: 4.2) — Extends OAuth Transaction Tokens framework to support agent context propagation with actor and princ
|
||||
- **[draft-zhang-dmsc-mas-communication](https://datatracker.ietf.org/doc/draft-zhang-dmsc-mas-communication/)** (score: 4.2) — Analyzes security risks in multi-agent communication and limitations of existing protocols like TLS
|
||||
- **[draft-li-dmsc-macp](https://datatracker.ietf.org/doc/draft-li-dmsc-macp/)** (score: 4.2) — Specifies a comprehensive multi-agent collaboration protocol suite using Agent Gateways for registra
|
||||
- **[draft-yue-anima-agent-recovery-networks](https://datatracker.ietf.org/doc/draft-yue-anima-agent-recovery-networks/)** (score: 4.1) — Defines task-oriented multi-agent framework for fault recovery in converged mobile networks. Targets
|
||||
- **[draft-nederveld-adl](https://datatracker.ietf.org/doc/draft-nederveld-adl/)** (score: 4.1) — Defines ADL, a JSON-based standard for describing AI agents including their capabilities, tools, per
|
||||
- **[draft-mw-spice-actor-chain](https://datatracker.ietf.org/doc/draft-mw-spice-actor-chain/)** (score: 4.1) — Extends OAuth 2.0 Token Exchange with cryptographically verifiable actor chains to provide tamper-ev
|
||||
- **[draft-ietf-lisp-nexagon](https://datatracker.ietf.org/doc/draft-ietf-lisp-nexagon/)** (score: 4.0) — Combines LISP with H3 spatial indexing to create geospatial intelligence network for physical-world
|
||||
- **[draft-barney-caam](https://datatracker.ietf.org/doc/draft-barney-caam/)** (score: 4.0) — Specifies Contextual Agent Authorization Mesh for runtime authorization of agents after discovery, p
|
||||
- **[draft-nennemann-wimse-ect](https://datatracker.ietf.org/doc/draft-nennemann-wimse-ect/)** (score: 4.0) — Defines Execution Context Tokens as JWT extension to WIMSE for tracking task execution in distribute
|
||||
- **[draft-ainp-protocol](https://datatracker.ietf.org/doc/draft-ainp-protocol/)** (score: 3.9) — Defines semantic communication protocol for AI agents using intent-based routing and negotiation. Re
|
||||
- **[draft-agent-gw](https://datatracker.ietf.org/doc/draft-agent-gw/)** (score: 3.9) — Proposes an Intelligent Agent Communication Gateway for large-scale multi-agent collaboration. Featu
|
||||
- **[draft-mp-agntcy-ads](https://datatracker.ietf.org/doc/draft-mp-agntcy-ads/)** (score: 3.9) — Describes Agent Directory Service for storing and discovering AI agent metadata based on skills. Fea
|
||||
- **[draft-rosenberg-aiproto-cheq](https://datatracker.ietf.org/doc/draft-rosenberg-aiproto-cheq/)** (score: 3.9) — Proposes CHEQ protocol for human confirmation of AI agent decisions before execution. Protects again
|
||||
- **[draft-zeng-opsawg-llm-netconf-gap](https://datatracker.ietf.org/doc/draft-zeng-opsawg-llm-netconf-gap/)** (score: 3.9) — Analyzes gaps in existing network configuration protocols for LLM-driven intent-based networking. Id
|
||||
- **[draft-akhavain-moussa-ai-network](https://datatracker.ietf.org/doc/draft-akhavain-moussa-ai-network/)** (score: 3.9) — Proposes Data and Agent Aware-Inference and Training Network (DA-ITN) architecture. Comprehensive mu
|
||||
- **[draft-rosenberg-aiproto-a2t](https://datatracker.ietf.org/doc/draft-rosenberg-aiproto-a2t/)** (score: 3.9) — Defines Agent-to-Tool (A2T) protocol for integrating third-party APIs into AI agent operations. Prov
|
||||
- **[draft-cui-ai-agent-discovery-invocation](https://datatracker.ietf.org/doc/draft-cui-ai-agent-discovery-invocation/)** (score: 3.9) — Proposes standardized protocol for AI agent discovery and invocation with common metadata format and
|
||||
- **[draft-ravikiran-clawdentity-protocol](https://datatracker.ietf.org/doc/draft-ravikiran-clawdentity-protocol/)** (score: 3.9) — Specifies Clawdentity protocol for cryptographic identity and trust in AI agent communication. Provi
|
||||
- **[draft-jurkovikj-httpapi-agentic-state](https://datatracker.ietf.org/doc/draft-jurkovikj-httpapi-agentic-state/)** (score: 3.9) — Defines Agentic State Transfer (AST) HTTP profile for managing canonical resource state across multi
|
||||
- **[draft-tejido-swp-core](https://datatracker.ietf.org/doc/draft-tejido-swp-core/)** (score: 3.9) — Specifies SlimWire Protocol Core, a binary framing layer for agent/tool messaging with profile-based
|
||||
- **[draft-luan-rtgwg-sdaf](https://datatracker.ietf.org/doc/draft-luan-rtgwg-sdaf/)** (score: 3.8) — Proposes symmetry-driven forwarding mechanism for LEO satellite networks to avoid routing loops and
|
||||
- **[draft-zhao-nmop-network-management-agent](https://datatracker.ietf.org/doc/draft-zhao-nmop-network-management-agent/)** (score: 3.8) — Defines AI-driven Network Management Agent concept for Level 4 autonomous networks. Specifies integr
|
||||
- **[draft-eckert-anima-acp-free-ani](https://datatracker.ietf.org/doc/draft-eckert-anima-acp-free-ani/)** (score: 3.8) — Describes lightweight variation of Autonomic Networking Infrastructure without expensive ACP impleme
|
||||
- **[draft-rosenberg-aiproto-framework](https://datatracker.ietf.org/doc/draft-rosenberg-aiproto-framework/)** (score: 3.7) — Provides framework and requirements for AI agent protocols on the Internet. Surveys existing approac
|
||||
- **[draft-an-nmrg-i2icf-cits](https://datatracker.ietf.org/doc/draft-an-nmrg-i2icf-cits/)** (score: 3.7) — Defines framework for orchestrating In-Network Computing Functions in Cooperative Intelligent Transp
|
||||
- **[draft-melnikov-sasl2](https://datatracker.ietf.org/doc/draft-melnikov-sasl2/)** (score: 3.7) — Updates SASL framework to support modern authentication requirements including multi-factor authenti
|
||||
- **[draft-sogomonian-aiip-architecture](https://datatracker.ietf.org/doc/draft-sogomonian-aiip-architecture/)** (score: 3.7) — Defines architectural model for Artificial Intelligence Internet Protocol (AIIP) enabling stateless,
|
||||
- **[draft-rosenberg-aiproto](https://datatracker.ietf.org/doc/draft-rosenberg-aiproto/)** (score: 3.7) — Defines N-ACT protocol for AI agents to discover and invoke third-party tools and APIs. Focuses on e
|
||||
- **[draft-rosenberg-aiproto-nact](https://datatracker.ietf.org/doc/draft-rosenberg-aiproto-nact/)** (score: 3.7) — Defines N-ACT protocol for AI agents to discover and invoke third-party tools and APIs. Focuses on e
|
||||
- **[draft-pocero-authkem-edhoc](https://datatracker.ietf.org/doc/draft-pocero-authkem-edhoc/)** (score: 3.7) — Extends EDHOC with KEM-based authentication for post-quantum resistance. Enables signature-free quan
|
||||
- **[draft-zyyhl-agent-networks-framework](https://datatracker.ietf.org/doc/draft-zyyhl-agent-networks-framework/)** (score: 3.6) — Defines comprehensive framework for AI agent networks based on Agent Network Protocol (ANP). Provide
|
||||
- **[draft-kotecha-agentic-dispute-protocol](https://datatracker.ietf.org/doc/draft-kotecha-agentic-dispute-protocol/)** (score: 3.6) — Defines a protocol for autonomous agents to file and resolve disputes through structured automated p
|
||||
- **[draft-mao-rtgwg-agent-comm-protocol-gap-analysis](https://datatracker.ietf.org/doc/draft-mao-rtgwg-agent-comm-protocol-gap-analysis/)** (score: 3.6) — Analyzes gaps in existing networking and AI protocols for cross-device communication between AI agen
|
||||
- **[draft-zlgsgl-rtgwg-agents-networking-framework](https://datatracker.ietf.org/doc/draft-zlgsgl-rtgwg-agents-networking-framework/)** (score: 3.6) — Introduces a comprehensive agents networking framework for enterprise and broadband environments. De
|
||||
- **[draft-han-rtgwg-agent-gateway-intercomm-framework](https://datatracker.ietf.org/doc/draft-han-rtgwg-agent-gateway-intercomm-framework/)** (score: 3.6) — Defines framework for intercommunication between Agent Gateways in Agent Internet ecosystem. Address
|
||||
- **[draft-yang-ioa-protocol](https://datatracker.ietf.org/doc/draft-yang-ioa-protocol/)** (score: 3.6) — Defines the Internet of Agents Protocol for distributed collaboration among heterogeneous AI agents.
|
||||
- **[draft-rosenberg-cheq](https://datatracker.ietf.org/doc/draft-rosenberg-cheq/)** (score: 3.6) — Proposes CHEQ protocol for human-in-the-loop confirmation of AI agent decisions before execution. Us
|
||||
- **[draft-mozleywilliams-dnsop-bandaid](https://datatracker.ietf.org/doc/draft-mozleywilliams-dnsop-bandaid/)** (score: 3.6) — Proposes using DNS with SVCB records to enable AI agent discovery and capability advertisement. Leve
|
||||
- **[draft-li-semantic-routing-architecture](https://datatracker.ietf.org/doc/draft-li-semantic-routing-architecture/)** (score: 3.6) — Introduces semantic routing architecture using intent vectors and trust scores for AI agent communic
|
||||
- **[draft-vandoulas-aidp](https://datatracker.ietf.org/doc/draft-vandoulas-aidp/)** (score: 3.6) — Defines a comprehensive control-plane protocol for secure agent interactions with delegation, author
|
||||
- **[draft-ietf-ace-edhoc-oscore-profile](https://datatracker.ietf.org/doc/draft-ietf-ace-edhoc-oscore-profile/)** (score: 3.6) — Defines ACE framework profile using EDHOC for mutual authentication and OSCORE for secure communicat
|
||||
- **[draft-liu-oauth-a2a-profile](https://datatracker.ietf.org/doc/draft-liu-oauth-a2a-profile/)** (score: 3.6) — Specifies OAuth Transaction Token profile for Agent-to-Agent communication. Embeds call chain contex
|
||||
- **[draft-liu-dmsc-acps-arc](https://datatracker.ietf.org/doc/draft-liu-dmsc-acps-arc/)** (score: 3.6) — Proposes Agent Collaboration Protocols architecture for Internet of Agents, covering agent lifecycle
|
||||
- **[draft-liang-agentdns](https://datatracker.ietf.org/doc/draft-liang-agentdns/)** (score: 3.5) — Proposes a DNS-inspired naming and service discovery system for LLM agents to enable autonomous disc
|
||||
- **[draft-song-oauth-ai-agent-collaborate-authz](https://datatracker.ietf.org/doc/draft-song-oauth-ai-agent-collaborate-authz/)** (score: 3.5) — Proposes OAuth 2.0 extension for multi-AI agent collaboration with applier-on-behalf-of authorizatio
|
||||
- **[draft-mozley-aidiscovery](https://datatracker.ietf.org/doc/draft-mozley-aidiscovery/)** (score: 3.5) — Defines requirements and considerations for AI agent-to-agent discovery mechanisms. Addresses the fu
|
||||
- **[draft-wang-hjs-accountability](https://datatracker.ietf.org/doc/draft-wang-hjs-accountability/)** (score: 3.5) — Defines HJS accountability layer for AI agents using blockchain-anchored timestamps to create immuta
|
||||
- **[draft-meta-layer-overview](https://datatracker.ietf.org/doc/draft-meta-layer-overview/)** (score: 3.5) — Introduces Meta-layer concept as coordination substrate for presence, annotation, and governance on
|
||||
- **[draft-zhang-rvp-problem-statement](https://datatracker.ietf.org/doc/draft-zhang-rvp-problem-statement/)** (score: 3.5) — Proposes Real-Virtual Agent Protocol for coordinating physical entities with digital agents through
|
||||
- **[draft-zeng-opsawg-applicability-mcp-a2a](https://datatracker.ietf.org/doc/draft-zeng-opsawg-applicability-mcp-a2a/)** (score: 3.5) — Analyzes NETCONF limitations for advanced scenarios and proposes MCP and A2A protocols as complement
|
||||
- **[draft-li-dmsc-mcps-agw](https://datatracker.ietf.org/doc/draft-li-dmsc-mcps-agw/)** (score: 3.5) — Defines a protocol suite using Agent Gateways as control-plane entities for multi-agent collaboratio
|
||||
- **[draft-jiang-seat-dynamic-attestation](https://datatracker.ietf.org/doc/draft-jiang-seat-dynamic-attestation/)** (score: 3.4) — Defines dynamic attestation mechanisms for AI agents to convey runtime posture changes during long-l
|
||||
- **[draft-romanchuk-normative-admissibility](https://datatracker.ietf.org/doc/draft-romanchuk-normative-admissibility/)** (score: 3.4) — Establishes a framework for evaluating whether autonomous agent speech acts are admissible based on
|
||||
- **[draft-yan-a2a-device-agent-applicability](https://datatracker.ietf.org/doc/draft-yan-a2a-device-agent-applicability/)** (score: 3.4) — Discusses applying Agent-to-Agent (A2A) Protocol to network management for communication between Con
|
||||
- **[draft-stephan-ai-agent-6g](https://datatracker.ietf.org/doc/draft-stephan-ai-agent-6g/)** (score: 3.4) — Examines AI agent communication protocols specifically for 6G systems based on 3GPP requirements. Ex
|
||||
- **[draft-cosmos-protocol-specification](https://datatracker.ietf.org/doc/draft-cosmos-protocol-specification/)** (score: 3.3) — Defines comprehensive badge-based identity and communication system with trust scoring, post-quantum
|
||||
- **[draft-sz-dmsc-iaip](https://datatracker.ietf.org/doc/draft-sz-dmsc-iaip/)** (score: 3.3) — Defines Intent-based Agent Interconnection Protocol (IAIP) for dynamic agent discovery and routing a
|
||||
- **[draft-liu-rtgwg-agent-gateway-requirements](https://datatracker.ietf.org/doc/draft-liu-rtgwg-agent-gateway-requirements/)** (score: 3.2) — Discusses requirements for Agent Gateways in agent-to-agent communications to improve scalability, e
|
||||
- **[draft-pioli-agent-discovery](https://datatracker.ietf.org/doc/draft-pioli-agent-discovery/)** (score: 3.2) — Specifies ARDP, a lightweight protocol for agent registration and discovery in distributed environme
|
||||
- **[draft-gaikwad-woa](https://datatracker.ietf.org/doc/draft-gaikwad-woa/)** (score: 3.2) — Specifies Web of Agents (WoA) format using JSON Schema to describe AI agent inputs/outputs served fr
|
||||
- **[draft-mao-rtgwg-apn-framework-for-ioa](https://datatracker.ietf.org/doc/draft-mao-rtgwg-apn-framework-for-ioa/)** (score: 3.2) — Applies Application-aware Performance Network framework to Internet of Agents scenario. Addresses ne
|
||||
- **[draft-zhang-dmsc-ioa-semantic-interaction](https://datatracker.ietf.org/doc/draft-zhang-dmsc-ioa-semantic-interaction/)** (score: 3.2) — Specifies a semantic layer for Internet of Agents using ontology models and JSON-LD serialization. D
|
||||
- **[draft-sun-zhang-iaip](https://datatracker.ietf.org/doc/draft-sun-zhang-iaip/)** (score: 3.2) — Defines Intent-based Agent Interconnection Protocol for Agent Gateways, focusing on semantic intent
|
||||
- **[draft-yao-agent-auth-considerations](https://datatracker.ietf.org/doc/draft-yao-agent-auth-considerations/)** (score: 3.1) — Extends OAuth model for AI agent authentication and authorization in Agent Communication Networks. P
|
||||
- **[draft-li-dmsc-inf-architecture](https://datatracker.ietf.org/doc/draft-li-dmsc-inf-architecture/)** (score: 3.1) — Proposes a network infrastructure architecture for large-scale multi-agent collaboration. Focuses on
|
||||
- **[draft-a2a-moqt-transport](https://datatracker.ietf.org/doc/draft-a2a-moqt-transport/)** (score: 3.1) — Specifies transport of Agent-to-Agent protocol over Media over QUIC Transport. Leverages MOQT's publ
|
||||
- **[draft-nandakumar-a2a-moqt-transport](https://datatracker.ietf.org/doc/draft-nandakumar-a2a-moqt-transport/)** (score: 3.0) — Identical specification to draft-a2a-moqt-transport for transporting Agent-to-Agent protocol over MO
|
||||
- **[draft-hong-nmrg-agenticai-ps](https://datatracker.ietf.org/doc/draft-hong-nmrg-agenticai-ps/)** (score: 3.0) — Presents problem statement and motivations for applying Agentic AI to network management. Emphasizes
|
||||
- **[draft-fu-nmop-agent-communication-framework](https://datatracker.ietf.org/doc/draft-fu-nmop-agent-communication-framework/)** (score: 3.0) — Proposes a multi-agent communication framework for network AIOps with AI gateway, Agent Name Service
|
||||
- **[draft-cui-dmsc-agent-cdi](https://datatracker.ietf.org/doc/draft-cui-dmsc-agent-cdi/)** (score: 3.0) — Defines comprehensive framework for cross-domain AI agent interoperability including identity federa
|
||||
- **[draft-yang-dmsc-ioa-task-protocol](https://datatracker.ietf.org/doc/draft-yang-dmsc-ioa-task-protocol/)** (score: 3.0) — Defines a protocol for distributed collaboration among heterogeneous AI agents, enabling dynamic tea
|
||||
- **[draft-ramakrishna-satp-data-sharing](https://datatracker.ietf.org/doc/draft-ramakrishna-satp-data-sharing/)** (score: 2.9) — Defines a DLT-neutral protocol for sharing asset views and metadata across blockchain networks via g
|
||||
|
||||
## AI safety / guardrails / alignment (1 drafts)
|
||||
|
||||
- **[draft-chen-agent-decoupled-authorization-model](https://datatracker.ietf.org/doc/draft-chen-agent-decoupled-authorization-model/)** (score: 3.5) — This draft proposes a decoupled authorization framework for AI agents that enables dynamic, intent-b
|
||||
|
||||
## AI safety/alignment (35 drafts)
|
||||
|
||||
- **[draft-aylward-daap-v2](https://datatracker.ietf.org/doc/draft-aylward-daap-v2/)** (score: 4.8) — Defines comprehensive protocol for AI agent accountability including authentication, monitoring, and
|
||||
- **[draft-guy-bary-stamp-protocol](https://datatracker.ietf.org/doc/draft-guy-bary-stamp-protocol/)** (score: 4.6) — Defines STAMP protocol for cryptographic delegation and proof in AI agent systems. Provides task-bou
|
||||
- **[draft-drake-email-tpm-attestation](https://datatracker.ietf.org/doc/draft-drake-email-tpm-attestation/)** (score: 4.6) — Defines hardware attestation for email using TPM verification chains to prevent spam and provide Syb
|
||||
- **[draft-goswami-agentic-jwt](https://datatracker.ietf.org/doc/draft-goswami-agentic-jwt/)** (score: 4.5) — Extends OAuth 2.0 with Agentic JWT to address authorization challenges in autonomous AI systems. Int
|
||||
- **[draft-birkholz-verifiable-agent-conversations](https://datatracker.ietf.org/doc/draft-birkholz-verifiable-agent-conversations/)** (score: 4.5) — Defines CDDL-based data format for verifiable agent conversation records using COSE signing. Support
|
||||
- **[draft-aylward-aiga-2](https://datatracker.ietf.org/doc/draft-aylward-aiga-2/)** (score: 4.5) — Comprehensive AI governance framework with tiered risk model, federated authority network, and econo
|
||||
- **[draft-mw-wimse-transitive-attestation](https://datatracker.ietf.org/doc/draft-mw-wimse-transitive-attestation/)** (score: 4.3) — Defines WIMSE profile for cryptographically binding workload identities to their execution environme
|
||||
- **[draft-aylward-aiga-1](https://datatracker.ietf.org/doc/draft-aylward-aiga-1/)** (score: 4.2) — Specifies AI Governance and Accountability Protocol with tiered risk-based governance model. Include
|
||||
- **[draft-aap-oauth-profile](https://datatracker.ietf.org/doc/draft-aap-oauth-profile/)** (score: 4.2) — Defines an OAuth 2.0 authorization profile specifically for autonomous AI agents, extending existing
|
||||
- **[draft-zhang-dmsc-mas-communication](https://datatracker.ietf.org/doc/draft-zhang-dmsc-mas-communication/)** (score: 4.2) — Analyzes security risks in multi-agent communication and limitations of existing protocols like TLS
|
||||
- **[draft-jewell-aibdp](https://datatracker.ietf.org/doc/draft-jewell-aibdp/)** (score: 4.2) — Defines AI Boundary Declaration Protocol for expressing content usage boundaries for AI systems. Pro
|
||||
- **[draft-liu-agent-operation-authorization](https://datatracker.ietf.org/doc/draft-liu-agent-operation-authorization/)** (score: 4.1) — Specifies framework for verifiable delegation of actions from humans to AI agents using JWT tokens.
|
||||
- **[draft-cui-nmrg-llm-nm](https://datatracker.ietf.org/doc/draft-cui-nmrg-llm-nm/)** (score: 4.1) — Defines framework for collaborative network management between LLM agents and human operators. Intro
|
||||
- **[draft-schulze-ecap](https://datatracker.ietf.org/doc/draft-schulze-ecap/)** (score: 4.1) — ECAP defines a cryptographically-verified protocol for web crawlers to obtain consent from hosts bef
|
||||
- **[draft-mw-spice-actor-chain](https://datatracker.ietf.org/doc/draft-mw-spice-actor-chain/)** (score: 4.1) — Extends OAuth 2.0 Token Exchange with cryptographically verifiable actor chains to provide tamper-ev
|
||||
- **[draft-barney-caam](https://datatracker.ietf.org/doc/draft-barney-caam/)** (score: 4.0) — Specifies Contextual Agent Authorization Mesh for runtime authorization of agents after discovery, p
|
||||
- **[draft-rosenberg-aiproto-cheq](https://datatracker.ietf.org/doc/draft-rosenberg-aiproto-cheq/)** (score: 3.9) — Proposes CHEQ protocol for human confirmation of AI agent decisions before execution. Protects again
|
||||
- **[draft-berlinai-vera](https://datatracker.ietf.org/doc/draft-berlinai-vera/)** (score: 3.9) — Introduces VERA, a zero-trust architecture for AI agent security with five enforcement pillars and c
|
||||
- **[draft-chen-ai-agent-auth-new-requirements](https://datatracker.ietf.org/doc/draft-chen-ai-agent-auth-new-requirements/)** (score: 3.8) — Identifies new authentication and authorization requirements for AI agents that go beyond traditiona
|
||||
- **[draft-ni-a2a-ai-agent-security-requirements](https://datatracker.ietf.org/doc/draft-ni-a2a-ai-agent-security-requirements/)** (score: 3.7) — Establishes security requirements for AI agents across their operational lifecycle. Covers provision
|
||||
- **[draft-kotecha-agentic-dispute-protocol](https://datatracker.ietf.org/doc/draft-kotecha-agentic-dispute-protocol/)** (score: 3.6) — Defines a protocol for autonomous agents to file and resolve disputes through structured automated p
|
||||
- **[draft-rosenberg-oauth-aauth](https://datatracker.ietf.org/doc/draft-rosenberg-oauth-aauth/)** (score: 3.6) — Extends OAuth 2.1 for AI agents operating through PSTN/SMS channels to obtain access tokens using PI
|
||||
- **[draft-rosenberg-cheq](https://datatracker.ietf.org/doc/draft-rosenberg-cheq/)** (score: 3.6) — Proposes CHEQ protocol for human-in-the-loop confirmation of AI agent decisions before execution. Us
|
||||
- **[draft-messous-eat-ai](https://datatracker.ietf.org/doc/draft-messous-eat-ai/)** (score: 3.6) — Defines an Entity Attestation Token profile for remote attestation of autonomous AI agents, specifyi
|
||||
- **[draft-wang-hjs-accountability](https://datatracker.ietf.org/doc/draft-wang-hjs-accountability/)** (score: 3.5) — Defines HJS accountability layer for AI agents using blockchain-anchored timestamps to create immuta
|
||||
- **[draft-ietf-sml-trust](https://datatracker.ietf.org/doc/draft-ietf-sml-trust/)** (score: 3.5) — Provides trust and security recommendations for handling structured data in email messages. Addresse
|
||||
- **[draft-yuan-rtgwg-security-agent-usecase](https://datatracker.ietf.org/doc/draft-yuan-rtgwg-security-agent-usecase/)** (score: 3.4) — Proposes AI Network Security Agents for routers to provide intelligent, adaptive security capabiliti
|
||||
- **[draft-huang-rats-agentic-eat-cap-attest](https://datatracker.ietf.org/doc/draft-huang-rats-agentic-eat-cap-attest/)** (score: 3.4) — Extends Entity Attestation Token (EAT) to support capability attestation for agentic AI systems. Ena
|
||||
- **[draft-jiang-seat-dynamic-attestation](https://datatracker.ietf.org/doc/draft-jiang-seat-dynamic-attestation/)** (score: 3.4) — Defines dynamic attestation mechanisms for AI agents to convey runtime posture changes during long-l
|
||||
- **[draft-romanchuk-normative-admissibility](https://datatracker.ietf.org/doc/draft-romanchuk-normative-admissibility/)** (score: 3.4) — Establishes a framework for evaluating whether autonomous agent speech acts are admissible based on
|
||||
- **[draft-diaconu-agents-authz-info-sharing](https://datatracker.ietf.org/doc/draft-diaconu-agents-authz-info-sharing/)** (score: 3.2) — Addresses authorization challenges in distributed multi-agent systems across multiple domains. Cover
|
||||
- **[draft-kale-agntcy-federated-privacy](https://datatracker.ietf.org/doc/draft-kale-agntcy-federated-privacy/)** (score: 3.2) — Specifies architecture for privacy-preserving federated learning across multi-tenant AI agent system
|
||||
- **[draft-mvieuille-kerpass-ephemsec](https://datatracker.ietf.org/doc/draft-mvieuille-kerpass-ephemsec/)** (score: 3.1) — Specifies EPHEMSEC algorithm for generating one-time passwords using public key cryptography instead
|
||||
- **[draft-contario-totp-secure-enrollment](https://datatracker.ietf.org/doc/draft-contario-totp-secure-enrollment/)** (score: 3.1) — Extends TOTP enrollment to prevent key compromise through QR code capture or key persistence in exte
|
||||
- **[draft-architect-cittamarket](https://datatracker.ietf.org/doc/draft-architect-cittamarket/)** (score: 3.1) — Specifies protocol for immutable AGI system identification using Bitcoin blockchain anchoring. Defin
|
||||
|
||||
## Agent discovery / registration (9 drafts)
|
||||
|
||||
- **[draft-nandakumar-agent-sd-jwt](https://datatracker.ietf.org/doc/draft-nandakumar-agent-sd-jwt/)** (score: 3.9) — This draft defines SD-Card, a Selective Disclosure JWT encoding of Agent Cards that enables privacy-
|
||||
- **[draft-wahl-scim-agent-schema](https://datatracker.ietf.org/doc/draft-wahl-scim-agent-schema/)** (score: 3.9) — This draft extends the SCIM (System for Cross-domain Identity Management) protocol to support AI age
|
||||
- **[draft-huang-acme-scalable-agent-enrollment](https://datatracker.ietf.org/doc/draft-huang-acme-scalable-agent-enrollment/)** (score: 3.5) — This draft proposes two scalable models for certificate enrollment of AI agents: one using Zero-Know
|
||||
- **[draft-zheng-dispatch-agent-identity-management](https://datatracker.ietf.org/doc/draft-zheng-dispatch-agent-identity-management/)** (score: 3.3) — This draft proposes an identity management framework for agents in an Internet of Agents (IOA) syste
|
||||
- **[draft-narvaneni-agent-uri](https://datatracker.ietf.org/doc/draft-narvaneni-agent-uri/)** (score: 3.3) — This draft defines the agent:// URI scheme for addressing and interoperating with software agents ac
|
||||
- **[draft-hw-ai-agent-6g](https://datatracker.ietf.org/doc/draft-hw-ai-agent-6g/)** (score: 3.1) — This draft analyzes requirements for agent protocols specifically tailored to 6G mobile networks, ex
|
||||
- **[draft-cui-ai-agent-task](https://datatracker.ietf.org/doc/draft-cui-ai-agent-task/)** (score: 3.0) — This draft proposes requirements for standardized AI agent protocols to enable task-oriented coordin
|
||||
- **[draft-yl-agent-id-requirements](https://datatracker.ietf.org/doc/draft-yl-agent-id-requirements/)** (score: 2.9) — This draft proposes requirements for digital identity management in AI agent communication protocols
|
||||
- **[draft-wang-nmrg-magent-im](https://datatracker.ietf.org/doc/draft-wang-nmrg-magent-im/)** (score: 2.9) — This draft proposes a protocol-agnostic data model for multi-agent communication in autonomous netwo
|
||||
|
||||
## Agent discovery/reg (50 drafts)
|
||||
|
||||
- **[draft-narajala-ans](https://datatracker.ietf.org/doc/draft-narajala-ans/)** (score: 4.2) — Introduces Agent Name Service (ANS) as a DNS-based universal directory for AI agent discovery and ve
|
||||
- **[draft-li-dmsc-macp](https://datatracker.ietf.org/doc/draft-li-dmsc-macp/)** (score: 4.2) — Specifies a comprehensive multi-agent collaboration protocol suite using Agent Gateways for registra
|
||||
- **[draft-cui-dns-native-agent-naming-resolution](https://datatracker.ietf.org/doc/draft-cui-dns-native-agent-naming-resolution/)** (score: 4.1) — Specifies DNS-native naming and resolution for AI agents using FQDNs and SVCB records. Emphasizes DN
|
||||
- **[draft-nederveld-adl](https://datatracker.ietf.org/doc/draft-nederveld-adl/)** (score: 4.1) — Defines ADL, a JSON-based standard for describing AI agents including their capabilities, tools, per
|
||||
- **[draft-ainp-protocol](https://datatracker.ietf.org/doc/draft-ainp-protocol/)** (score: 3.9) — Defines semantic communication protocol for AI agents using intent-based routing and negotiation. Re
|
||||
- **[draft-ietf-lake-authz](https://datatracker.ietf.org/doc/draft-ietf-lake-authz/)** (score: 3.9) — Specifies lightweight authorization using EDHOC for zero-touch device onboarding. Enables secure enr
|
||||
- **[draft-agent-gw](https://datatracker.ietf.org/doc/draft-agent-gw/)** (score: 3.9) — Proposes an Intelligent Agent Communication Gateway for large-scale multi-agent collaboration. Featu
|
||||
- **[draft-mp-agntcy-ads](https://datatracker.ietf.org/doc/draft-mp-agntcy-ads/)** (score: 3.9) — Describes Agent Directory Service for storing and discovering AI agent metadata based on skills. Fea
|
||||
- **[draft-rosenberg-aiproto-a2t](https://datatracker.ietf.org/doc/draft-rosenberg-aiproto-a2t/)** (score: 3.9) — Defines Agent-to-Tool (A2T) protocol for integrating third-party APIs into AI agent operations. Prov
|
||||
- **[draft-cui-ai-agent-discovery-invocation](https://datatracker.ietf.org/doc/draft-cui-ai-agent-discovery-invocation/)** (score: 3.9) — Proposes standardized protocol for AI agent discovery and invocation with common metadata format and
|
||||
- **[draft-sogomonian-ai-uri-scheme](https://datatracker.ietf.org/doc/draft-sogomonian-ai-uri-scheme/)** (score: 3.8) — Defines experimental AI URI scheme for dedicated AI resource access. Enables native connectivity for
|
||||
- **[draft-abbey-scim-agent-extension](https://datatracker.ietf.org/doc/draft-abbey-scim-agent-extension/)** (score: 3.8) — Extends SCIM 2.0 protocol to manage AI agents and agentic applications across domains. Adds new sche
|
||||
- **[draft-eckert-anima-acp-free-ani](https://datatracker.ietf.org/doc/draft-eckert-anima-acp-free-ani/)** (score: 3.8) — Describes lightweight variation of Autonomic Networking Infrastructure without expensive ACP impleme
|
||||
- **[draft-zheng-agent-identity-management](https://datatracker.ietf.org/doc/draft-zheng-agent-identity-management/)** (score: 3.7) — Defines comprehensive agent identity management for Internet of Agents systems. Covers agent registr
|
||||
- **[draft-an-nmrg-i2icf-cits](https://datatracker.ietf.org/doc/draft-an-nmrg-i2icf-cits/)** (score: 3.7) — Defines framework for orchestrating In-Network Computing Functions in Cooperative Intelligent Transp
|
||||
- **[draft-rosenberg-aiproto](https://datatracker.ietf.org/doc/draft-rosenberg-aiproto/)** (score: 3.7) — Defines N-ACT protocol for AI agents to discover and invoke third-party tools and APIs. Focuses on e
|
||||
- **[draft-rosenberg-aiproto-nact](https://datatracker.ietf.org/doc/draft-rosenberg-aiproto-nact/)** (score: 3.7) — Defines N-ACT protocol for AI agents to discover and invoke third-party tools and APIs. Focuses on e
|
||||
- **[draft-zyyhl-agent-networks-framework](https://datatracker.ietf.org/doc/draft-zyyhl-agent-networks-framework/)** (score: 3.6) — Defines comprehensive framework for AI agent networks based on Agent Network Protocol (ANP). Provide
|
||||
- **[draft-zlgsgl-rtgwg-agents-networking-framework](https://datatracker.ietf.org/doc/draft-zlgsgl-rtgwg-agents-networking-framework/)** (score: 3.6) — Introduces a comprehensive agents networking framework for enterprise and broadband environments. De
|
||||
- **[draft-han-rtgwg-agent-gateway-intercomm-framework](https://datatracker.ietf.org/doc/draft-han-rtgwg-agent-gateway-intercomm-framework/)** (score: 3.6) — Defines framework for intercommunication between Agent Gateways in Agent Internet ecosystem. Address
|
||||
- **[draft-yang-ioa-protocol](https://datatracker.ietf.org/doc/draft-yang-ioa-protocol/)** (score: 3.6) — Defines the Internet of Agents Protocol for distributed collaboration among heterogeneous AI agents.
|
||||
- **[draft-mozleywilliams-dnsop-bandaid](https://datatracker.ietf.org/doc/draft-mozleywilliams-dnsop-bandaid/)** (score: 3.6) — Proposes using DNS with SVCB records to enable AI agent discovery and capability advertisement. Leve
|
||||
- **[draft-li-semantic-routing-architecture](https://datatracker.ietf.org/doc/draft-li-semantic-routing-architecture/)** (score: 3.6) — Introduces semantic routing architecture using intent vectors and trust scores for AI agent communic
|
||||
- **[draft-mozleywilliams-dnsop-dnsaid](https://datatracker.ietf.org/doc/draft-mozleywilliams-dnsop-dnsaid/)** (score: 3.6) — Uses existing DNS infrastructure for AI agent discovery through structured namespace and metadata ex
|
||||
- **[draft-eggert-mailmaint-uaautoconf](https://datatracker.ietf.org/doc/draft-eggert-mailmaint-uaautoconf/)** (score: 3.6) — Specifies automatic configuration mechanism for email, calendar, and contact applications. Enables s
|
||||
- **[draft-liu-dmsc-acps-arc](https://datatracker.ietf.org/doc/draft-liu-dmsc-acps-arc/)** (score: 3.6) — Proposes Agent Collaboration Protocols architecture for Internet of Agents, covering agent lifecycle
|
||||
- **[draft-liang-agentdns](https://datatracker.ietf.org/doc/draft-liang-agentdns/)** (score: 3.5) — Proposes a DNS-inspired naming and service discovery system for LLM agents to enable autonomous disc
|
||||
- **[draft-mozley-aidiscovery](https://datatracker.ietf.org/doc/draft-mozley-aidiscovery/)** (score: 3.5) — Defines requirements and considerations for AI agent-to-agent discovery mechanisms. Addresses the fu
|
||||
- **[draft-ye-problems-and-requirements-of-dns-for-ioa](https://datatracker.ietf.org/doc/draft-ye-problems-and-requirements-of-dns-for-ioa/)** (score: 3.5) — Analyzes DNS challenges for Internet of Agents scenarios and identifies technical requirements. Expl
|
||||
- **[draft-li-dmsc-mcps-agw](https://datatracker.ietf.org/doc/draft-li-dmsc-mcps-agw/)** (score: 3.5) — Defines a protocol suite using Agent Gateways as control-plane entities for multi-agent collaboratio
|
||||
- **[draft-kartha-grd](https://datatracker.ietf.org/doc/draft-kartha-grd/)** (score: 3.4) — Defines architectural framework for discovering network resources based on physical location and con
|
||||
- **[draft-stephan-ai-agent-6g](https://datatracker.ietf.org/doc/draft-stephan-ai-agent-6g/)** (score: 3.4) — Examines AI agent communication protocols specifically for 6G systems based on 3GPP requirements. Ex
|
||||
- **[draft-zeng-nmrg-mcp-usecases-requirements](https://datatracker.ietf.org/doc/draft-zeng-nmrg-mcp-usecases-requirements/)** (score: 3.4) — Presents problem statement for integrating Model Context Protocol into network management for AI age
|
||||
- **[draft-sz-dmsc-iaip](https://datatracker.ietf.org/doc/draft-sz-dmsc-iaip/)** (score: 3.3) — Defines Intent-based Agent Interconnection Protocol (IAIP) for dynamic agent discovery and routing a
|
||||
- **[draft-jeong-opsawg-intent-based-sdv-framework](https://datatracker.ietf.org/doc/draft-jeong-opsawg-intent-based-sdv-framework/)** (score: 3.3) — Proposes intent-based management framework for Software-Defined Vehicles in ITS environments. Covers
|
||||
- **[draft-liu-rtgwg-agent-gateway-requirements](https://datatracker.ietf.org/doc/draft-liu-rtgwg-agent-gateway-requirements/)** (score: 3.2) — Discusses requirements for Agent Gateways in agent-to-agent communications to improve scalability, e
|
||||
- **[draft-pioli-agent-discovery](https://datatracker.ietf.org/doc/draft-pioli-agent-discovery/)** (score: 3.2) — Specifies ARDP, a lightweight protocol for agent registration and discovery in distributed environme
|
||||
- **[draft-gaikwad-woa](https://datatracker.ietf.org/doc/draft-gaikwad-woa/)** (score: 3.2) — Specifies Web of Agents (WoA) format using JSON Schema to describe AI agent inputs/outputs served fr
|
||||
- **[draft-tong-network-agent-use-cases-in-6g](https://datatracker.ietf.org/doc/draft-tong-network-agent-use-cases-in-6g/)** (score: 3.2) — Introduces network AI agent use cases in 6G focusing on connectivity services and third-party applic
|
||||
- **[draft-meunier-webbotauth-registry](https://datatracker.ietf.org/doc/draft-meunier-webbotauth-registry/)** (score: 3.2) — Defines a JSON format for web bot signature agent cards to advertise identity, purpose, and cryptogr
|
||||
- **[draft-mao-rtgwg-apn-framework-for-ioa](https://datatracker.ietf.org/doc/draft-mao-rtgwg-apn-framework-for-ioa/)** (score: 3.2) — Applies Application-aware Performance Network framework to Internet of Agents scenario. Addresses ne
|
||||
- **[draft-zhang-dmsc-ioa-semantic-interaction](https://datatracker.ietf.org/doc/draft-zhang-dmsc-ioa-semantic-interaction/)** (score: 3.2) — Specifies a semantic layer for Internet of Agents using ontology models and JSON-LD serialization. D
|
||||
- **[draft-sun-zhang-iaip](https://datatracker.ietf.org/doc/draft-sun-zhang-iaip/)** (score: 3.2) — Defines Intent-based Agent Interconnection Protocol for Agent Gateways, focusing on semantic intent
|
||||
- **[draft-a2a-moqt-transport](https://datatracker.ietf.org/doc/draft-a2a-moqt-transport/)** (score: 3.1) — Specifies transport of Agent-to-Agent protocol over Media over QUIC Transport. Leverages MOQT's publ
|
||||
- **[draft-levy-llm-uri-scheme](https://datatracker.ietf.org/doc/draft-levy-llm-uri-scheme/)** (score: 3.1) — Defines a URI scheme for identifying LLM endpoints with embedded configuration parameters. Creates a
|
||||
- **[draft-vinaysingh-awp-wellknown](https://datatracker.ietf.org/doc/draft-vinaysingh-awp-wellknown/)** (score: 3.1) — Defines well-known URI and link relation for exposing website workflows to automated agents. Provide
|
||||
- **[draft-nandakumar-a2a-moqt-transport](https://datatracker.ietf.org/doc/draft-nandakumar-a2a-moqt-transport/)** (score: 3.0) — Identical specification to draft-a2a-moqt-transport for transporting Agent-to-Agent protocol over MO
|
||||
- **[draft-fu-nmop-agent-communication-framework](https://datatracker.ietf.org/doc/draft-fu-nmop-agent-communication-framework/)** (score: 3.0) — Proposes a multi-agent communication framework for network AIOps with AI gateway, Agent Name Service
|
||||
- **[draft-yang-dmsc-ioa-task-protocol](https://datatracker.ietf.org/doc/draft-yang-dmsc-ioa-task-protocol/)** (score: 3.0) — Defines a protocol for distributed collaboration among heterogeneous AI agents, enabling dynamic tea
|
||||
- **[draft-ietf-roll-enrollment-priority](https://datatracker.ietf.org/doc/draft-ietf-roll-enrollment-priority/)** (score: 2.9) — Provides mechanism for RPL Root to control enrollment announcements and adjust enrollment priorities
|
||||
|
||||
## Agent identity/auth (86 drafts)
|
||||
|
||||
- **[draft-aylward-daap-v2](https://datatracker.ietf.org/doc/draft-aylward-daap-v2/)** (score: 4.8) — Defines comprehensive protocol for AI agent accountability including authentication, monitoring, and
|
||||
- **[draft-guy-bary-stamp-protocol](https://datatracker.ietf.org/doc/draft-guy-bary-stamp-protocol/)** (score: 4.6) — Defines STAMP protocol for cryptographic delegation and proof in AI agent systems. Provides task-bou
|
||||
- **[draft-drake-email-tpm-attestation](https://datatracker.ietf.org/doc/draft-drake-email-tpm-attestation/)** (score: 4.6) — Defines hardware attestation for email using TPM verification chains to prevent spam and provide Syb
|
||||
- **[draft-ietf-lake-app-profiles](https://datatracker.ietf.org/doc/draft-ietf-lake-app-profiles/)** (score: 4.6) — Defines canonical CBOR representation for EDHOC application profiles and coordination mechanisms for
|
||||
- **[draft-goswami-agentic-jwt](https://datatracker.ietf.org/doc/draft-goswami-agentic-jwt/)** (score: 4.5) — Extends OAuth 2.0 with Agentic JWT to address authorization challenges in autonomous AI systems. Int
|
||||
- **[draft-aylward-aiga-2](https://datatracker.ietf.org/doc/draft-aylward-aiga-2/)** (score: 4.5) — Comprehensive AI governance framework with tiered risk model, federated authority network, and econo
|
||||
- **[draft-ietf-anima-constrained-voucher](https://datatracker.ietf.org/doc/draft-ietf-anima-constrained-voucher/)** (score: 4.3) — Adapts BRSKI secure device onboarding for constrained IoT environments using CBOR vouchers and CoAP/
|
||||
- **[draft-ietf-hpke-hpke](https://datatracker.ietf.org/doc/draft-ietf-hpke-hpke/)** (score: 4.3) — Comprehensive specification for hybrid public key encryption supporting arbitrary-sized plaintexts.
|
||||
- **[draft-mw-wimse-transitive-attestation](https://datatracker.ietf.org/doc/draft-mw-wimse-transitive-attestation/)** (score: 4.3) — Defines WIMSE profile for cryptographically binding workload identities to their execution environme
|
||||
- **[draft-dhir-http-agent-profile](https://datatracker.ietf.org/doc/draft-dhir-http-agent-profile/)** (score: 4.2) — Defines HTTP Agent Profile for authenticating agent traffic, separating human from agent traffic, an
|
||||
- **[draft-chen-oauth-rar-agent-extensions](https://datatracker.ietf.org/doc/draft-chen-oauth-rar-agent-extensions/)** (score: 4.2) — Extends OAuth RAR with policy_context and lifecycle_binding members for AI agent environments. Enabl
|
||||
- **[draft-aylward-aiga-1](https://datatracker.ietf.org/doc/draft-aylward-aiga-1/)** (score: 4.2) — Specifies AI Governance and Accountability Protocol with tiered risk-based governance model. Include
|
||||
- **[draft-aap-oauth-profile](https://datatracker.ietf.org/doc/draft-aap-oauth-profile/)** (score: 4.2) — Defines an OAuth 2.0 authorization profile specifically for autonomous AI agents, extending existing
|
||||
- **[draft-narajala-ans](https://datatracker.ietf.org/doc/draft-narajala-ans/)** (score: 4.2) — Introduces Agent Name Service (ANS) as a DNS-based universal directory for AI agent discovery and ve
|
||||
- **[draft-oauth-transaction-tokens-for-agents](https://datatracker.ietf.org/doc/draft-oauth-transaction-tokens-for-agents/)** (score: 4.2) — Extends OAuth Transaction Tokens framework to support agent context propagation with actor and princ
|
||||
- **[draft-zhang-dmsc-mas-communication](https://datatracker.ietf.org/doc/draft-zhang-dmsc-mas-communication/)** (score: 4.2) — Analyzes security risks in multi-agent communication and limitations of existing protocols like TLS
|
||||
- **[draft-li-dmsc-macp](https://datatracker.ietf.org/doc/draft-li-dmsc-macp/)** (score: 4.2) — Specifies a comprehensive multi-agent collaboration protocol suite using Agent Gateways for registra
|
||||
- **[draft-lake-pocero-authkem-ikr-edhoc](https://datatracker.ietf.org/doc/draft-lake-pocero-authkem-ikr-edhoc/)** (score: 4.2) — Specifies an optimized KEM-based authentication variant for EDHOC protocol in scenarios where the in
|
||||
- **[draft-cui-dns-native-agent-naming-resolution](https://datatracker.ietf.org/doc/draft-cui-dns-native-agent-naming-resolution/)** (score: 4.1) — Specifies DNS-native naming and resolution for AI agents using FQDNs and SVCB records. Emphasizes DN
|
||||
- **[draft-liu-agent-operation-authorization](https://datatracker.ietf.org/doc/draft-liu-agent-operation-authorization/)** (score: 4.1) — Specifies framework for verifiable delegation of actions from humans to AI agents using JWT tokens.
|
||||
- **[draft-schulze-ecap](https://datatracker.ietf.org/doc/draft-schulze-ecap/)** (score: 4.1) — ECAP defines a cryptographically-verified protocol for web crawlers to obtain consent from hosts bef
|
||||
- **[draft-mw-spice-actor-chain](https://datatracker.ietf.org/doc/draft-mw-spice-actor-chain/)** (score: 4.1) — Extends OAuth 2.0 Token Exchange with cryptographically verifiable actor chains to provide tamper-ev
|
||||
- **[draft-spm-lake-pqsuites](https://datatracker.ietf.org/doc/draft-spm-lake-pqsuites/)** (score: 4.1) — Defines quantum-resistant cipher suites for EDHOC using ML-DSA signatures and ML-KEM key exchange. S
|
||||
- **[draft-mishra-oauth-agent-grants](https://datatracker.ietf.org/doc/draft-mishra-oauth-agent-grants/)** (score: 4.0) — Extends OAuth 2.0 for AI agent authorization with human consent verification, revocation, and audit
|
||||
- **[draft-barney-caam](https://datatracker.ietf.org/doc/draft-barney-caam/)** (score: 4.0) — Specifies Contextual Agent Authorization Mesh for runtime authorization of agents after discovery, p
|
||||
- **[draft-nennemann-wimse-ect](https://datatracker.ietf.org/doc/draft-nennemann-wimse-ect/)** (score: 4.0) — Defines Execution Context Tokens as JWT extension to WIMSE for tracking task execution in distribute
|
||||
- **[draft-ietf-lake-authz](https://datatracker.ietf.org/doc/draft-ietf-lake-authz/)** (score: 3.9) — Specifies lightweight authorization using EDHOC for zero-touch device onboarding. Enables secure enr
|
||||
- **[draft-ietf-ace-coap-est-oscore](https://datatracker.ietf.org/doc/draft-ietf-ace-coap-est-oscore/)** (score: 3.9) — Specifies carrying EST certificate provisioning over CoAP using OSCORE protection instead of DTLS. B
|
||||
- **[draft-berlinai-vera](https://datatracker.ietf.org/doc/draft-berlinai-vera/)** (score: 3.9) — Introduces VERA, a zero-trust architecture for AI agent security with five enforcement pillars and c
|
||||
- **[draft-josefsson-chempat](https://datatracker.ietf.org/doc/draft-josefsson-chempat/)** (score: 3.9) — Generic framework for Post-Quantum/Traditional hybrid key encapsulation mechanisms. Provides concret
|
||||
- **[draft-ravikiran-clawdentity-protocol](https://datatracker.ietf.org/doc/draft-ravikiran-clawdentity-protocol/)** (score: 3.9) — Specifies Clawdentity protocol for cryptographic identity and trust in AI agent communication. Provi
|
||||
- **[draft-bradleylundberg-cfrg-arkg](https://datatracker.ietf.org/doc/draft-bradleylundberg-cfrg-arkg/)** (score: 3.9) — Defines Asynchronous Remote Key Generation algorithm enabling delegation of public key generation wi
|
||||
- **[draft-ietf-emu-hybrid-pqc-eapaka](https://datatracker.ietf.org/doc/draft-ietf-emu-hybrid-pqc-eapaka/)** (score: 3.8) — Enhances EAP-AKA' with post-quantum cryptography to address quantum computing threats. Uses hybrid P
|
||||
- **[draft-chen-ai-agent-auth-new-requirements](https://datatracker.ietf.org/doc/draft-chen-ai-agent-auth-new-requirements/)** (score: 3.8) — Identifies new authentication and authorization requirements for AI agents that go beyond traditiona
|
||||
- **[draft-sogomonian-ai-uri-scheme](https://datatracker.ietf.org/doc/draft-sogomonian-ai-uri-scheme/)** (score: 3.8) — Defines experimental AI URI scheme for dedicated AI resource access. Enables native connectivity for
|
||||
- **[draft-srijal-agents-policy](https://datatracker.ietf.org/doc/draft-srijal-agents-policy/)** (score: 3.8) — Specifies AGENTS.TXT protocol as strict plaintext policy file for automated clients, bots, and crawl
|
||||
- **[draft-abbey-scim-agent-extension](https://datatracker.ietf.org/doc/draft-abbey-scim-agent-extension/)** (score: 3.8) — Extends SCIM 2.0 protocol to manage AI agents and agentic applications across domains. Adds new sche
|
||||
- **[draft-eckert-anima-acp-free-ani](https://datatracker.ietf.org/doc/draft-eckert-anima-acp-free-ani/)** (score: 3.8) — Describes lightweight variation of Autonomic Networking Infrastructure without expensive ACP impleme
|
||||
- **[draft-scim-agent-extension](https://datatracker.ietf.org/doc/draft-scim-agent-extension/)** (score: 3.7) — Extends SCIM 2.0 specification to manage agents and agentic applications across domains. Builds on e
|
||||
- **[draft-zheng-agent-identity-management](https://datatracker.ietf.org/doc/draft-zheng-agent-identity-management/)** (score: 3.7) — Defines comprehensive agent identity management for Internet of Agents systems. Covers agent registr
|
||||
- **[draft-melnikov-sasl2](https://datatracker.ietf.org/doc/draft-melnikov-sasl2/)** (score: 3.7) — Updates SASL framework to support modern authentication requirements including multi-factor authenti
|
||||
- **[draft-ietf-lamps-attestation-freshness](https://datatracker.ietf.org/doc/draft-ietf-lamps-attestation-freshness/)** (score: 3.7) — Outlines how nonces are supplied to end entities by RA/CA for inclusion in attestation evidence with
|
||||
- **[draft-ietf-lake-ra](https://datatracker.ietf.org/doc/draft-ietf-lake-ra/)** (score: 3.7) — Specifies remote attestation procedures integrated with EDHOC lightweight key exchange protocol. Ena
|
||||
- **[draft-gaikwad-south-authorization](https://datatracker.ietf.org/doc/draft-gaikwad-south-authorization/)** (score: 3.7) — Authorization protocol supporting probabilistic decisions for agents and services. Enables uncertain
|
||||
- **[draft-sogomonian-aiip-architecture](https://datatracker.ietf.org/doc/draft-sogomonian-aiip-architecture/)** (score: 3.7) — Defines architectural model for Artificial Intelligence Internet Protocol (AIIP) enabling stateless,
|
||||
- **[draft-ni-a2a-ai-agent-security-requirements](https://datatracker.ietf.org/doc/draft-ni-a2a-ai-agent-security-requirements/)** (score: 3.7) — Establishes security requirements for AI agents across their operational lifecycle. Covers provision
|
||||
- **[draft-pocero-authkem-edhoc](https://datatracker.ietf.org/doc/draft-pocero-authkem-edhoc/)** (score: 3.7) — Extends EDHOC with KEM-based authentication for post-quantum resistance. Enables signature-free quan
|
||||
- **[draft-zyyhl-agent-networks-framework](https://datatracker.ietf.org/doc/draft-zyyhl-agent-networks-framework/)** (score: 3.6) — Defines comprehensive framework for AI agent networks based on Agent Network Protocol (ANP). Provide
|
||||
- **[draft-rosenberg-oauth-aauth](https://datatracker.ietf.org/doc/draft-rosenberg-oauth-aauth/)** (score: 3.6) — Extends OAuth 2.1 for AI agents operating through PSTN/SMS channels to obtain access tokens using PI
|
||||
- **[draft-mozleywilliams-dnsop-bandaid](https://datatracker.ietf.org/doc/draft-mozleywilliams-dnsop-bandaid/)** (score: 3.6) — Proposes using DNS with SVCB records to enable AI agent discovery and capability advertisement. Leve
|
||||
- **[draft-vandoulas-aidp](https://datatracker.ietf.org/doc/draft-vandoulas-aidp/)** (score: 3.6) — Defines a comprehensive control-plane protocol for secure agent interactions with delegation, author
|
||||
- **[draft-messous-eat-ai](https://datatracker.ietf.org/doc/draft-messous-eat-ai/)** (score: 3.6) — Defines an Entity Attestation Token profile for remote attestation of autonomous AI agents, specifyi
|
||||
- **[draft-ietf-ace-edhoc-oscore-profile](https://datatracker.ietf.org/doc/draft-ietf-ace-edhoc-oscore-profile/)** (score: 3.6) — Defines ACE framework profile using EDHOC for mutual authentication and OSCORE for secure communicat
|
||||
- **[draft-liu-oauth-a2a-profile](https://datatracker.ietf.org/doc/draft-liu-oauth-a2a-profile/)** (score: 3.6) — Specifies OAuth Transaction Token profile for Agent-to-Agent communication. Embeds call chain contex
|
||||
- **[draft-liu-dmsc-acps-arc](https://datatracker.ietf.org/doc/draft-liu-dmsc-acps-arc/)** (score: 3.6) — Proposes Agent Collaboration Protocols architecture for Internet of Agents, covering agent lifecycle
|
||||
- **[draft-liang-agentdns](https://datatracker.ietf.org/doc/draft-liang-agentdns/)** (score: 3.5) — Proposes a DNS-inspired naming and service discovery system for LLM agents to enable autonomous disc
|
||||
- **[draft-song-oauth-ai-agent-collaborate-authz](https://datatracker.ietf.org/doc/draft-song-oauth-ai-agent-collaborate-authz/)** (score: 3.5) — Proposes OAuth 2.0 extension for multi-AI agent collaboration with applier-on-behalf-of authorizatio
|
||||
- **[draft-ahn-nmrg-5g-security-i2nsf-framework](https://datatracker.ietf.org/doc/draft-ahn-nmrg-5g-security-i2nsf-framework/)** (score: 3.5) — Presents integrated framework for automated 5G edge network security using I2NSF architecture and In
|
||||
- **[draft-jia-oauth-scope-aggregation](https://datatracker.ietf.org/doc/draft-jia-oauth-scope-aggregation/)** (score: 3.5) — Extends OAuth 2.0 with scope aggregation to reduce authorization round-trips in multi-step AI agent
|
||||
- **[draft-ietf-emu-pqc-eapaka](https://datatracker.ietf.org/doc/draft-ietf-emu-pqc-eapaka/)** (score: 3.5) — This draft proposes enhancing EAP-AKA' Forward Secrecy with Post-Quantum Key Encapsulation Mechanism
|
||||
- **[draft-zhang-rvp-problem-statement](https://datatracker.ietf.org/doc/draft-zhang-rvp-problem-statement/)** (score: 3.5) — Proposes Real-Virtual Agent Protocol for coordinating physical entities with digital agents through
|
||||
- **[draft-li-dmsc-mcps-agw](https://datatracker.ietf.org/doc/draft-li-dmsc-mcps-agw/)** (score: 3.5) — Defines a protocol suite using Agent Gateways as control-plane entities for multi-agent collaboratio
|
||||
- **[draft-ar-emu-hybrid-pqc-eapaka](https://datatracker.ietf.org/doc/draft-ar-emu-hybrid-pqc-eapaka/)** (score: 3.5) — Enhances EAP-AKA' with hybrid post-quantum cryptography combining traditional and quantum-resistant
|
||||
- **[draft-huang-rats-agentic-eat-cap-attest](https://datatracker.ietf.org/doc/draft-huang-rats-agentic-eat-cap-attest/)** (score: 3.4) — Extends Entity Attestation Token (EAT) to support capability attestation for agentic AI systems. Ena
|
||||
- **[draft-jiang-seat-dynamic-attestation](https://datatracker.ietf.org/doc/draft-jiang-seat-dynamic-attestation/)** (score: 3.4) — Defines dynamic attestation mechanisms for AI agents to convey runtime posture changes during long-l
|
||||
- **[draft-ramakrishna-satp-views-addresses](https://datatracker.ietf.org/doc/draft-ramakrishna-satp-views-addresses/)** (score: 3.4) — Defines view and addressing mechanisms for secure asset transfer between DLT systems. Enables cross-
|
||||
- **[draft-cosmos-protocol-specification](https://datatracker.ietf.org/doc/draft-cosmos-protocol-specification/)** (score: 3.3) — Defines comprehensive badge-based identity and communication system with trust scoring, post-quantum
|
||||
- **[draft-liu-rtgwg-agent-gateway-requirements](https://datatracker.ietf.org/doc/draft-liu-rtgwg-agent-gateway-requirements/)** (score: 3.2) — Discusses requirements for Agent Gateways in agent-to-agent communications to improve scalability, e
|
||||
- **[draft-pioli-agent-discovery](https://datatracker.ietf.org/doc/draft-pioli-agent-discovery/)** (score: 3.2) — Specifies ARDP, a lightweight protocol for agent registration and discovery in distributed environme
|
||||
- **[draft-diaconu-agents-authz-info-sharing](https://datatracker.ietf.org/doc/draft-diaconu-agents-authz-info-sharing/)** (score: 3.2) — Addresses authorization challenges in distributed multi-agent systems across multiple domains. Cover
|
||||
- **[draft-ietf-emu-eap-edhoc](https://datatracker.ietf.org/doc/draft-ietf-emu-eap-edhoc/)** (score: 3.2) — Defines EAP authentication method based on EDHOC for constrained environments. Integrates EDHOC's li
|
||||
- **[draft-lake-pocero-authkem-edhoc](https://datatracker.ietf.org/doc/draft-lake-pocero-authkem-edhoc/)** (score: 3.2) — This draft extends the EDHOC protocol to provide quantum-resistant authentication using KEM-based me
|
||||
- **[draft-meunier-webbotauth-registry](https://datatracker.ietf.org/doc/draft-meunier-webbotauth-registry/)** (score: 3.2) — Defines a JSON format for web bot signature agent cards to advertise identity, purpose, and cryptogr
|
||||
- **[draft-ra-emu-pqc-eapaka](https://datatracker.ietf.org/doc/draft-ra-emu-pqc-eapaka/)** (score: 3.2) — Enhances EAP-AKA' with post-quantum key encapsulation mechanisms to protect against quantum computer
|
||||
- **[draft-yao-agent-auth-considerations](https://datatracker.ietf.org/doc/draft-yao-agent-auth-considerations/)** (score: 3.1) — Extends OAuth model for AI agent authentication and authorization in Agent Communication Networks. P
|
||||
- **[draft-mvieuille-kerpass-ephemsec](https://datatracker.ietf.org/doc/draft-mvieuille-kerpass-ephemsec/)** (score: 3.1) — Specifies EPHEMSEC algorithm for generating one-time passwords using public key cryptography instead
|
||||
- **[draft-contario-totp-secure-enrollment](https://datatracker.ietf.org/doc/draft-contario-totp-secure-enrollment/)** (score: 3.1) — Extends TOTP enrollment to prevent key compromise through QR code capture or key persistence in exte
|
||||
- **[draft-architect-cittamarket](https://datatracker.ietf.org/doc/draft-architect-cittamarket/)** (score: 3.1) — Specifies protocol for immutable AGI system identification using Bitcoin blockchain anchoring. Defin
|
||||
- **[draft-ni-wimse-ai-agent-identity](https://datatracker.ietf.org/doc/draft-ni-wimse-ai-agent-identity/)** (score: 3.0) — Applies WIMSE (Workload Identity in Multi System Environments) framework to AI agents for identity a
|
||||
- **[draft-sipos-dtn-bp-safe](https://datatracker.ietf.org/doc/draft-sipos-dtn-bp-safe/)** (score: 3.0) — Defines security association negotiation protocol for Bundle Protocol agents in delay-tolerant netwo
|
||||
- **[draft-chen-lake-edhoc-aka](https://datatracker.ietf.org/doc/draft-chen-lake-edhoc-aka/)** (score: 3.0) — Defines EDHOC-AKA authentication method combining AKA protocol with EDHOC for mobile network access
|
||||
- **[draft-wendt-stir-vesper](https://datatracker.ietf.org/doc/draft-wendt-stir-vesper/)** (score: 3.0) — Formalizes framework for verifiable telephone number identity using delegate certificates and author
|
||||
- **[draft-cui-dmsc-agent-cdi](https://datatracker.ietf.org/doc/draft-cui-dmsc-agent-cdi/)** (score: 3.0) — Defines comprehensive framework for cross-domain AI agent interoperability including identity federa
|
||||
- **[draft-condrey-rats-witnessd-enrollment](https://datatracker.ietf.org/doc/draft-condrey-rats-witnessd-enrollment/)** (score: 3.0) — Specifies trust anchor bootstrap protocol for proof of process framework. Defines device enrollment,
|
||||
- **[draft-pocero-authkem-ikr-edhoc](https://datatracker.ietf.org/doc/draft-pocero-authkem-ikr-edhoc/)** (score: 3.0) — This draft proposes a KEM-based authentication variant for EDHOC that optimizes for scenarios where
|
||||
- **[draft-happel-structured-email-trust](https://datatracker.ietf.org/doc/draft-happel-structured-email-trust/)** (score: 2.9) — Provides trust and security recommendations for handling structured data in email messages. Focuses
|
||||
|
||||
## Agent-to-agent communication protocols (12 drafts)
|
||||
|
||||
- **[draft-nandakumar-agent-sd-jwt](https://datatracker.ietf.org/doc/draft-nandakumar-agent-sd-jwt/)** (score: 3.9) — This draft defines SD-Card, a Selective Disclosure JWT encoding of Agent Cards that enables privacy-
|
||||
- **[draft-oauth-ai-agents-on-behalf-of-user](https://datatracker.ietf.org/doc/draft-oauth-ai-agents-on-behalf-of-user/)** (score: 3.7) — This draft extends OAuth 2.0 to enable AI agents to securely obtain access tokens for acting on beha
|
||||
- **[draft-liu-agent-context-protocol](https://datatracker.ietf.org/doc/draft-liu-agent-context-protocol/)** (score: 3.5) — This draft proposes a standard protocol for AI agents to communicate context information to each oth
|
||||
- **[draft-zheng-dispatch-agent-identity-management](https://datatracker.ietf.org/doc/draft-zheng-dispatch-agent-identity-management/)** (score: 3.3) — This draft proposes an identity management framework for agents in an Internet of Agents (IOA) syste
|
||||
- **[draft-narvaneni-agent-uri](https://datatracker.ietf.org/doc/draft-narvaneni-agent-uri/)** (score: 3.3) — This draft defines the agent:// URI scheme for addressing and interoperating with software agents ac
|
||||
- **[draft-hw-ai-agent-6g](https://datatracker.ietf.org/doc/draft-hw-ai-agent-6g/)** (score: 3.1) — This draft analyzes requirements for agent protocols specifically tailored to 6G mobile networks, ex
|
||||
- **[draft-zhang-agent-gap-network](https://datatracker.ietf.org/doc/draft-zhang-agent-gap-network/)** (score: 3.0) — This draft identifies problems and gaps in mobile core networks for supporting AI agent communicatio
|
||||
- **[draft-cui-ai-agent-task](https://datatracker.ietf.org/doc/draft-cui-ai-agent-task/)** (score: 3.0) — This draft proposes requirements for standardized AI agent protocols to enable task-oriented coordin
|
||||
- **[draft-zhang-rtgwg-ai-agents-troubleshooting](https://datatracker.ietf.org/doc/draft-zhang-rtgwg-ai-agents-troubleshooting/)** (score: 2.9) — This draft defines use cases and communication protocol requirements for troubleshooting agents depl
|
||||
- **[draft-yl-agent-id-requirements](https://datatracker.ietf.org/doc/draft-yl-agent-id-requirements/)** (score: 2.9) — This draft proposes requirements for digital identity management in AI agent communication protocols
|
||||
- **[draft-wang-nmrg-magent-im](https://datatracker.ietf.org/doc/draft-wang-nmrg-magent-im/)** (score: 2.9) — This draft proposes a protocol-agnostic data model for multi-agent communication in autonomous netwo
|
||||
- **[draft-xie-ai-agent-multimodal](https://datatracker.ietf.org/doc/draft-xie-ai-agent-multimodal/)** (score: 2.9) — This draft outlines requirements for multimodal communication in AI agent protocols, enabling agents
|
||||
|
||||
## Autonomous netops (46 drafts)
|
||||
|
||||
- **[draft-cui-nmrg-llm-benchmark](https://datatracker.ietf.org/doc/draft-cui-nmrg-llm-benchmark/)** (score: 4.3) — Provides comprehensive evaluation framework for LLM-based network configuration agents. Includes emu
|
||||
- **[draft-wmz-nmrg-agent-ndt-arch](https://datatracker.ietf.org/doc/draft-wmz-nmrg-agent-ndt-arch/)** (score: 4.2) — Comprehensive architecture combining Network Digital Twin with Agentic AI for intent-based network o
|
||||
- **[draft-yue-anima-agent-recovery-networks](https://datatracker.ietf.org/doc/draft-yue-anima-agent-recovery-networks/)** (score: 4.1) — Defines task-oriented multi-agent framework for fault recovery in converged mobile networks. Targets
|
||||
- **[draft-cui-nmrg-llm-nm](https://datatracker.ietf.org/doc/draft-cui-nmrg-llm-nm/)** (score: 4.1) — Defines framework for collaborative network management between LLM agents and human operators. Intro
|
||||
- **[draft-ietf-lisp-nexagon](https://datatracker.ietf.org/doc/draft-ietf-lisp-nexagon/)** (score: 4.0) — Combines LISP with H3 spatial indexing to create geospatial intelligence network for physical-world
|
||||
- **[draft-zeng-opsawg-llm-netconf-gap](https://datatracker.ietf.org/doc/draft-zeng-opsawg-llm-netconf-gap/)** (score: 3.9) — Analyzes gaps in existing network configuration protocols for LLM-driven intent-based networking. Id
|
||||
- **[draft-luan-rtgwg-sdaf](https://datatracker.ietf.org/doc/draft-luan-rtgwg-sdaf/)** (score: 3.8) — Proposes symmetry-driven forwarding mechanism for LEO satellite networks to avoid routing loops and
|
||||
- **[draft-zhao-nmop-network-management-agent](https://datatracker.ietf.org/doc/draft-zhao-nmop-network-management-agent/)** (score: 3.8) — Defines AI-driven Network Management Agent concept for Level 4 autonomous networks. Specifies integr
|
||||
- **[draft-eckert-anima-acp-free-ani](https://datatracker.ietf.org/doc/draft-eckert-anima-acp-free-ani/)** (score: 3.8) — Describes lightweight variation of Autonomic Networking Infrastructure without expensive ACP impleme
|
||||
- **[draft-yuan-rtgwg-traffic-agent-usecase](https://datatracker.ietf.org/doc/draft-yuan-rtgwg-traffic-agent-usecase/)** (score: 3.7) — Presents use cases for AI agents optimizing network traffic through dynamic resource adjustment. Det
|
||||
- **[draft-ietf-netconf-configuration-tracing](https://datatracker.ietf.org/doc/draft-ietf-netconf-configuration-tracing/)** (score: 3.7) — Specifies a NETCONF mechanism to map configuration modifications to their originating NMS using exte
|
||||
- **[draft-mao-rtgwg-agent-comm-protocol-gap-analysis](https://datatracker.ietf.org/doc/draft-mao-rtgwg-agent-comm-protocol-gap-analysis/)** (score: 3.6) — Analyzes gaps in existing networking and AI protocols for cross-device communication between AI agen
|
||||
- **[draft-zlgsgl-rtgwg-agents-networking-framework](https://datatracker.ietf.org/doc/draft-zlgsgl-rtgwg-agents-networking-framework/)** (score: 3.6) — Introduces a comprehensive agents networking framework for enterprise and broadband environments. De
|
||||
- **[draft-han-rtgwg-agent-gateway-intercomm-framework](https://datatracker.ietf.org/doc/draft-han-rtgwg-agent-gateway-intercomm-framework/)** (score: 3.6) — Defines framework for intercommunication between Agent Gateways in Agent Internet ecosystem. Address
|
||||
- **[draft-zm-rtgwg-mcp-troubleshooting](https://datatracker.ietf.org/doc/draft-zm-rtgwg-mcp-troubleshooting/)** (score: 3.6) — Proposes using Model Context Protocol (MCP) to enable LLM-based automated network troubleshooting. M
|
||||
- **[draft-li-semantic-routing-architecture](https://datatracker.ietf.org/doc/draft-li-semantic-routing-architecture/)** (score: 3.6) — Introduces semantic routing architecture using intent vectors and trust scores for AI agent communic
|
||||
- **[draft-cui-nmrg-auto-test](https://datatracker.ietf.org/doc/draft-cui-nmrg-auto-test/)** (score: 3.6) — Framework for AI-assisted network protocol testing using LLMs and automated test generation. Defines
|
||||
- **[draft-moreno-lisp-uberlay](https://datatracker.ietf.org/doc/draft-moreno-lisp-uberlay/)** (score: 3.6) — Describes using LISP to interconnect multiple independent network overlays through a transit overlay
|
||||
- **[draft-liu-dmsc-acps-arc](https://datatracker.ietf.org/doc/draft-liu-dmsc-acps-arc/)** (score: 3.6) — Proposes Agent Collaboration Protocols architecture for Internet of Agents, covering agent lifecycle
|
||||
- **[draft-pbs-sidrops-roaanycast](https://datatracker.ietf.org/doc/draft-pbs-sidrops-roaanycast/)** (score: 3.6) — Defines best practices for managing Route Origin Authorizations (ROAs) for globally anycasted servic
|
||||
- **[draft-ye-problems-and-requirements-of-dns-for-ioa](https://datatracker.ietf.org/doc/draft-ye-problems-and-requirements-of-dns-for-ioa/)** (score: 3.5) — Analyzes DNS challenges for Internet of Agents scenarios and identifies technical requirements. Expl
|
||||
- **[draft-irtf-nmrg-llm-nm](https://datatracker.ietf.org/doc/draft-irtf-nmrg-llm-nm/)** (score: 3.5) — Defines framework for collaborative network management between LLMs and human operators with human-i
|
||||
- **[draft-ahn-nmrg-5g-security-i2nsf-framework](https://datatracker.ietf.org/doc/draft-ahn-nmrg-5g-security-i2nsf-framework/)** (score: 3.5) — Presents integrated framework for automated 5G edge network security using I2NSF architecture and In
|
||||
- **[draft-zhang-rvp-problem-statement](https://datatracker.ietf.org/doc/draft-zhang-rvp-problem-statement/)** (score: 3.5) — Proposes Real-Virtual Agent Protocol for coordinating physical entities with digital agents through
|
||||
- **[draft-zeng-opsawg-applicability-mcp-a2a](https://datatracker.ietf.org/doc/draft-zeng-opsawg-applicability-mcp-a2a/)** (score: 3.5) — Analyzes NETCONF limitations for advanced scenarios and proposes MCP and A2A protocols as complement
|
||||
- **[draft-yuan-rtgwg-security-agent-usecase](https://datatracker.ietf.org/doc/draft-yuan-rtgwg-security-agent-usecase/)** (score: 3.4) — Proposes AI Network Security Agents for routers to provide intelligent, adaptive security capabiliti
|
||||
- **[draft-kartha-grd](https://datatracker.ietf.org/doc/draft-kartha-grd/)** (score: 3.4) — Defines architectural framework for discovering network resources based on physical location and con
|
||||
- **[draft-yan-a2a-device-agent-applicability](https://datatracker.ietf.org/doc/draft-yan-a2a-device-agent-applicability/)** (score: 3.4) — Discusses applying Agent-to-Agent (A2A) Protocol to network management for communication between Con
|
||||
- **[draft-yue-moq-transporting-sensing-data](https://datatracker.ietf.org/doc/draft-yue-moq-transporting-sensing-data/)** (score: 3.4) — Proposes using Media Over QUIC (MOQ) to transport large-scale, real-time sensing data in 6G networks
|
||||
- **[draft-zeng-nmrg-mcp-usecases-requirements](https://datatracker.ietf.org/doc/draft-zeng-nmrg-mcp-usecases-requirements/)** (score: 3.4) — Presents problem statement for integrating Model Context Protocol into network management for AI age
|
||||
- **[draft-jeong-opsawg-intent-based-sdv-framework](https://datatracker.ietf.org/doc/draft-jeong-opsawg-intent-based-sdv-framework/)** (score: 3.3) — Proposes intent-based management framework for Software-Defined Vehicles in ITS environments. Covers
|
||||
- **[draft-chuyi-nmrg-ai-agent-network](https://datatracker.ietf.org/doc/draft-chuyi-nmrg-ai-agent-network/)** (score: 3.2) — Focuses on large language model-based agents for network operations and maintenance. Addresses pract
|
||||
- **[draft-ahn-opsawg-5g-security-i2nsf-framework](https://datatracker.ietf.org/doc/draft-ahn-opsawg-5g-security-i2nsf-framework/)** (score: 3.2) — Proposes an integrated security framework for 5G edge networks using I2NSF architecture with Intent-
|
||||
- **[draft-tong-network-agent-use-cases-in-6g](https://datatracker.ietf.org/doc/draft-tong-network-agent-use-cases-in-6g/)** (score: 3.2) — Introduces network AI agent use cases in 6G focusing on connectivity services and third-party applic
|
||||
- **[draft-sun-zhang-iaip](https://datatracker.ietf.org/doc/draft-sun-zhang-iaip/)** (score: 3.2) — Defines Intent-based Agent Interconnection Protocol for Agent Gateways, focusing on semantic intent
|
||||
- **[draft-li-dmsc-inf-architecture](https://datatracker.ietf.org/doc/draft-li-dmsc-inf-architecture/)** (score: 3.1) — Proposes a network infrastructure architecture for large-scale multi-agent collaboration. Focuses on
|
||||
- **[draft-zeng-mcp-troubleshooting](https://datatracker.ietf.org/doc/draft-zeng-mcp-troubleshooting/)** (score: 3.1) — Applies Model Context Protocol to network management for intent-based troubleshooting. Maps MCP role
|
||||
- **[draft-sipos-dtn-bp-safe](https://datatracker.ietf.org/doc/draft-sipos-dtn-bp-safe/)** (score: 3.0) — Defines security association negotiation protocol for Bundle Protocol agents in delay-tolerant netwo
|
||||
- **[draft-bernardos-cats-isac-uc](https://datatracker.ietf.org/doc/draft-bernardos-cats-isac-uc/)** (score: 3.0) — Presents Integrated Sensing and Communications (ISAC) as a use case for CATS architecture. Explores
|
||||
- **[draft-hong-nmrg-agenticai-ps](https://datatracker.ietf.org/doc/draft-hong-nmrg-agenticai-ps/)** (score: 3.0) — Presents problem statement and motivations for applying Agentic AI to network management. Emphasizes
|
||||
- **[draft-zhao-nmrg-ai-agent-for-dtn](https://datatracker.ietf.org/doc/draft-zhao-nmrg-ai-agent-for-dtn/)** (score: 3.0) — Proposes AI agent architecture for Digital Twin Networks, integrating autonomous agents at each DTN
|
||||
- **[draft-fu-nmop-agent-communication-framework](https://datatracker.ietf.org/doc/draft-fu-nmop-agent-communication-framework/)** (score: 3.0) — Proposes a multi-agent communication framework for network AIOps with AI gateway, Agent Name Service
|
||||
- **[draft-leon-distributed-multi-signer](https://datatracker.ietf.org/doc/draft-leon-distributed-multi-signer/)** (score: 3.0) — Defines distributed DNSSEC multi-signer architecture with multi-signer agents and combiners. Introdu
|
||||
- **[draft-yang-dmsc-ioa-task-protocol](https://datatracker.ietf.org/doc/draft-yang-dmsc-ioa-task-protocol/)** (score: 3.0) — Defines a protocol for distributed collaboration among heterogeneous AI agents, enabling dynamic tea
|
||||
- **[draft-condrey-rats-witnessd-enrollment](https://datatracker.ietf.org/doc/draft-condrey-rats-witnessd-enrollment/)** (score: 3.0) — Specifies trust anchor bootstrap protocol for proof of process framework. Defines device enrollment,
|
||||
- **[draft-ietf-roll-enrollment-priority](https://datatracker.ietf.org/doc/draft-ietf-roll-enrollment-priority/)** (score: 2.9) — Provides mechanism for RPL Root to control enrollment announcements and adjust enrollment priorities
|
||||
|
||||
## Autonomous network operations (5 drafts)
|
||||
|
||||
- **[draft-hw-ai-agent-6g](https://datatracker.ietf.org/doc/draft-hw-ai-agent-6g/)** (score: 3.1) — This draft analyzes requirements for agent protocols specifically tailored to 6G mobile networks, ex
|
||||
- **[draft-zhang-agent-gap-network](https://datatracker.ietf.org/doc/draft-zhang-agent-gap-network/)** (score: 3.0) — This draft identifies problems and gaps in mobile core networks for supporting AI agent communicatio
|
||||
- **[draft-cui-ai-agent-task](https://datatracker.ietf.org/doc/draft-cui-ai-agent-task/)** (score: 3.0) — This draft proposes requirements for standardized AI agent protocols to enable task-oriented coordin
|
||||
- **[draft-zhang-rtgwg-ai-agents-troubleshooting](https://datatracker.ietf.org/doc/draft-zhang-rtgwg-ai-agents-troubleshooting/)** (score: 2.9) — This draft defines use cases and communication protocol requirements for troubleshooting agents depl
|
||||
- **[draft-wang-nmrg-magent-im](https://datatracker.ietf.org/doc/draft-wang-nmrg-magent-im/)** (score: 2.9) — This draft proposes a protocol-agnostic data model for multi-agent communication in autonomous netwo
|
||||
|
||||
## Data formats / semantics for AI interop (3 drafts)
|
||||
|
||||
- **[draft-liu-agent-context-protocol](https://datatracker.ietf.org/doc/draft-liu-agent-context-protocol/)** (score: 3.5) — This draft proposes a standard protocol for AI agents to communicate context information to each oth
|
||||
- **[draft-narvaneni-agent-uri](https://datatracker.ietf.org/doc/draft-narvaneni-agent-uri/)** (score: 3.3) — This draft defines the agent:// URI scheme for addressing and interoperating with software agents ac
|
||||
- **[draft-xie-ai-agent-multimodal](https://datatracker.ietf.org/doc/draft-xie-ai-agent-multimodal/)** (score: 2.9) — This draft outlines requirements for multimodal communication in AI agent protocols, enabling agents
|
||||
|
||||
## Data formats/interop (80 drafts)
|
||||
|
||||
- **[draft-ietf-lake-app-profiles](https://datatracker.ietf.org/doc/draft-ietf-lake-app-profiles/)** (score: 4.6) — Defines canonical CBOR representation for EDHOC application profiles and coordination mechanisms for
|
||||
- **[draft-chang-agent-token-efficient](https://datatracker.ietf.org/doc/draft-chang-agent-token-efficient/)** (score: 4.5) — Defines ADOL (Agentic Data Optimization Layer) to address token bloat in agent communication protoco
|
||||
- **[draft-birkholz-verifiable-agent-conversations](https://datatracker.ietf.org/doc/draft-birkholz-verifiable-agent-conversations/)** (score: 4.5) — Defines CDDL-based data format for verifiable agent conversation records using COSE signing. Support
|
||||
- **[draft-cui-nmrg-llm-benchmark](https://datatracker.ietf.org/doc/draft-cui-nmrg-llm-benchmark/)** (score: 4.3) — Provides comprehensive evaluation framework for LLM-based network configuration agents. Includes emu
|
||||
- **[draft-ietf-anima-constrained-voucher](https://datatracker.ietf.org/doc/draft-ietf-anima-constrained-voucher/)** (score: 4.3) — Adapts BRSKI secure device onboarding for constrained IoT environments using CBOR vouchers and CoAP/
|
||||
- **[draft-ietf-hpke-hpke](https://datatracker.ietf.org/doc/draft-ietf-hpke-hpke/)** (score: 4.3) — Comprehensive specification for hybrid public key encryption supporting arbitrary-sized plaintexts.
|
||||
- **[draft-mallick-muacp](https://datatracker.ietf.org/doc/draft-mallick-muacp/)** (score: 4.2) — Resource-efficient messaging protocol specifically designed for constrained IoT/Edge devices with de
|
||||
- **[draft-gaikwad-llm-benchmarking-methodology](https://datatracker.ietf.org/doc/draft-gaikwad-llm-benchmarking-methodology/)** (score: 4.2) — Defines comprehensive benchmarking methodologies for LLM inference serving systems including test pr
|
||||
- **[draft-ietf-sshm-mlkem-hybrid-kex](https://datatracker.ietf.org/doc/draft-ietf-sshm-mlkem-hybrid-kex/)** (score: 4.2) — Defines post-quantum hybrid key exchange combining ML-KEM with traditional ECDH for SSH transport la
|
||||
- **[draft-ietf-tls-extended-key-update](https://datatracker.ietf.org/doc/draft-ietf-tls-extended-key-update/)** (score: 4.2) — Adds post-compromise security to TLS 1.3 through fresh Diffie-Hellman exchanges during active sessio
|
||||
- **[draft-narajala-ans](https://datatracker.ietf.org/doc/draft-narajala-ans/)** (score: 4.2) — Introduces Agent Name Service (ANS) as a DNS-based universal directory for AI agent discovery and ve
|
||||
- **[draft-li-dmsc-macp](https://datatracker.ietf.org/doc/draft-li-dmsc-macp/)** (score: 4.2) — Specifies a comprehensive multi-agent collaboration protocol suite using Agent Gateways for registra
|
||||
- **[draft-gaikwad-llm-benchmarking-profiles](https://datatracker.ietf.org/doc/draft-gaikwad-llm-benchmarking-profiles/)** (score: 4.2) — Defines performance benchmarking profiles binding terminology and methodology to concrete architectu
|
||||
- **[draft-cui-dns-native-agent-naming-resolution](https://datatracker.ietf.org/doc/draft-cui-dns-native-agent-naming-resolution/)** (score: 4.1) — Specifies DNS-native naming and resolution for AI agents using FQDNs and SVCB records. Emphasizes DN
|
||||
- **[draft-nederveld-adl](https://datatracker.ietf.org/doc/draft-nederveld-adl/)** (score: 4.1) — Defines ADL, a JSON-based standard for describing AI agents including their capabilities, tools, per
|
||||
- **[draft-steele-agent-considerations](https://datatracker.ietf.org/doc/draft-steele-agent-considerations/)** (score: 4.0) — Defines guidelines for IETF specifications to support AI agent consumption and code generation. Intr
|
||||
- **[draft-ietf-lisp-nexagon](https://datatracker.ietf.org/doc/draft-ietf-lisp-nexagon/)** (score: 4.0) — Combines LISP with H3 spatial indexing to create geospatial intelligence network for physical-world
|
||||
- **[draft-nennemann-wimse-ect](https://datatracker.ietf.org/doc/draft-nennemann-wimse-ect/)** (score: 4.0) — Defines Execution Context Tokens as JWT extension to WIMSE for tracking task execution in distribute
|
||||
- **[draft-ietf-ace-coap-est-oscore](https://datatracker.ietf.org/doc/draft-ietf-ace-coap-est-oscore/)** (score: 3.9) — Specifies carrying EST certificate provisioning over CoAP using OSCORE protection instead of DTLS. B
|
||||
- **[draft-agent-gw](https://datatracker.ietf.org/doc/draft-agent-gw/)** (score: 3.9) — Proposes an Intelligent Agent Communication Gateway for large-scale multi-agent collaboration. Featu
|
||||
- **[draft-mp-agntcy-ads](https://datatracker.ietf.org/doc/draft-mp-agntcy-ads/)** (score: 3.9) — Describes Agent Directory Service for storing and discovering AI agent metadata based on skills. Fea
|
||||
- **[draft-zeng-opsawg-llm-netconf-gap](https://datatracker.ietf.org/doc/draft-zeng-opsawg-llm-netconf-gap/)** (score: 3.9) — Analyzes gaps in existing network configuration protocols for LLM-driven intent-based networking. Id
|
||||
- **[draft-akhavain-moussa-ai-network](https://datatracker.ietf.org/doc/draft-akhavain-moussa-ai-network/)** (score: 3.9) — Proposes Data and Agent Aware-Inference and Training Network (DA-ITN) architecture. Comprehensive mu
|
||||
- **[draft-rosenberg-aiproto-a2t](https://datatracker.ietf.org/doc/draft-rosenberg-aiproto-a2t/)** (score: 3.9) — Defines Agent-to-Tool (A2T) protocol for integrating third-party APIs into AI agent operations. Prov
|
||||
- **[draft-josefsson-chempat](https://datatracker.ietf.org/doc/draft-josefsson-chempat/)** (score: 3.9) — Generic framework for Post-Quantum/Traditional hybrid key encapsulation mechanisms. Provides concret
|
||||
- **[draft-cui-ai-agent-discovery-invocation](https://datatracker.ietf.org/doc/draft-cui-ai-agent-discovery-invocation/)** (score: 3.9) — Proposes standardized protocol for AI agent discovery and invocation with common metadata format and
|
||||
- **[draft-ravikiran-clawdentity-protocol](https://datatracker.ietf.org/doc/draft-ravikiran-clawdentity-protocol/)** (score: 3.9) — Specifies Clawdentity protocol for cryptographic identity and trust in AI agent communication. Provi
|
||||
- **[draft-jurkovikj-httpapi-agentic-state](https://datatracker.ietf.org/doc/draft-jurkovikj-httpapi-agentic-state/)** (score: 3.9) — Defines Agentic State Transfer (AST) HTTP profile for managing canonical resource state across multi
|
||||
- **[draft-tejido-swp-core](https://datatracker.ietf.org/doc/draft-tejido-swp-core/)** (score: 3.9) — Specifies SlimWire Protocol Core, a binary framing layer for agent/tool messaging with profile-based
|
||||
- **[draft-bradleylundberg-cfrg-arkg](https://datatracker.ietf.org/doc/draft-bradleylundberg-cfrg-arkg/)** (score: 3.9) — Defines Asynchronous Remote Key Generation algorithm enabling delegation of public key generation wi
|
||||
- **[draft-sogomonian-ai-uri-scheme](https://datatracker.ietf.org/doc/draft-sogomonian-ai-uri-scheme/)** (score: 3.8) — Defines experimental AI URI scheme for dedicated AI resource access. Enables native connectivity for
|
||||
- **[draft-srijal-agents-policy](https://datatracker.ietf.org/doc/draft-srijal-agents-policy/)** (score: 3.8) — Specifies AGENTS.TXT protocol as strict plaintext policy file for automated clients, bots, and crawl
|
||||
- **[draft-abbey-scim-agent-extension](https://datatracker.ietf.org/doc/draft-abbey-scim-agent-extension/)** (score: 3.8) — Extends SCIM 2.0 protocol to manage AI agents and agentic applications across domains. Adds new sche
|
||||
- **[draft-scim-agent-extension](https://datatracker.ietf.org/doc/draft-scim-agent-extension/)** (score: 3.7) — Extends SCIM 2.0 specification to manage agents and agentic applications across domains. Builds on e
|
||||
- **[draft-rosenberg-aiproto-framework](https://datatracker.ietf.org/doc/draft-rosenberg-aiproto-framework/)** (score: 3.7) — Provides framework and requirements for AI agent protocols on the Internet. Surveys existing approac
|
||||
- **[draft-ietf-lamps-rfc7030-csrattrs](https://datatracker.ietf.org/doc/draft-ietf-lamps-rfc7030-csrattrs/)** (score: 3.7) — Updates RFC7030 to clarify CSR Attributes Response encoding and adds template-based approach for EST
|
||||
- **[draft-ietf-suit-firmware-encryption](https://datatracker.ietf.org/doc/draft-ietf-suit-firmware-encryption/)** (score: 3.7) — Specifies encryption techniques for firmware and software payloads in SUIT manifests. Uses ES-DH and
|
||||
- **[draft-ietf-lamps-est-renewal-info](https://datatracker.ietf.org/doc/draft-ietf-lamps-est-renewal-info/)** (score: 3.7) — Extends EST protocol to provide server-side recommendations for certificate renewal timing. Addresse
|
||||
- **[draft-ietf-netconf-configuration-tracing](https://datatracker.ietf.org/doc/draft-ietf-netconf-configuration-tracing/)** (score: 3.7) — Specifies a NETCONF mechanism to map configuration modifications to their originating NMS using exte
|
||||
- **[draft-rosenberg-aiproto](https://datatracker.ietf.org/doc/draft-rosenberg-aiproto/)** (score: 3.7) — Defines N-ACT protocol for AI agents to discover and invoke third-party tools and APIs. Focuses on e
|
||||
- **[draft-rosenberg-aiproto-nact](https://datatracker.ietf.org/doc/draft-rosenberg-aiproto-nact/)** (score: 3.7) — Defines N-ACT protocol for AI agents to discover and invoke third-party tools and APIs. Focuses on e
|
||||
- **[draft-zyyhl-agent-networks-framework](https://datatracker.ietf.org/doc/draft-zyyhl-agent-networks-framework/)** (score: 3.6) — Defines comprehensive framework for AI agent networks based on Agent Network Protocol (ANP). Provide
|
||||
- **[draft-yang-ioa-protocol](https://datatracker.ietf.org/doc/draft-yang-ioa-protocol/)** (score: 3.6) — Defines the Internet of Agents Protocol for distributed collaboration among heterogeneous AI agents.
|
||||
- **[draft-zm-rtgwg-mcp-troubleshooting](https://datatracker.ietf.org/doc/draft-zm-rtgwg-mcp-troubleshooting/)** (score: 3.6) — Proposes using Model Context Protocol (MCP) to enable LLM-based automated network troubleshooting. M
|
||||
- **[draft-mozleywilliams-dnsop-dnsaid](https://datatracker.ietf.org/doc/draft-mozleywilliams-dnsop-dnsaid/)** (score: 3.6) — Uses existing DNS infrastructure for AI agent discovery through structured namespace and metadata ex
|
||||
- **[draft-eggert-mailmaint-uaautoconf](https://datatracker.ietf.org/doc/draft-eggert-mailmaint-uaautoconf/)** (score: 3.6) — Specifies automatic configuration mechanism for email, calendar, and contact applications. Enables s
|
||||
- **[draft-gaikwad-aps-profile](https://datatracker.ietf.org/doc/draft-gaikwad-aps-profile/)** (score: 3.6) — Storage service profile for agent persistent state including embeddings, preferences, and audit logs
|
||||
- **[draft-moreno-lisp-uberlay](https://datatracker.ietf.org/doc/draft-moreno-lisp-uberlay/)** (score: 3.6) — Describes using LISP to interconnect multiple independent network overlays through a transit overlay
|
||||
- **[draft-ietf-lake-edhoc-psk](https://datatracker.ietf.org/doc/draft-ietf-lake-edhoc-psk/)** (score: 3.6) — Specifies pre-shared key authentication method for EDHOC key exchange protocol. Enhances efficiency
|
||||
- **[draft-irtf-nmrg-llm-nm](https://datatracker.ietf.org/doc/draft-irtf-nmrg-llm-nm/)** (score: 3.5) — Defines framework for collaborative network management between LLMs and human operators with human-i
|
||||
- **[draft-ietf-sml-trust](https://datatracker.ietf.org/doc/draft-ietf-sml-trust/)** (score: 3.5) — Provides trust and security recommendations for handling structured data in email messages. Addresse
|
||||
- **[draft-zeng-opsawg-applicability-mcp-a2a](https://datatracker.ietf.org/doc/draft-zeng-opsawg-applicability-mcp-a2a/)** (score: 3.5) — Analyzes NETCONF limitations for advanced scenarios and proposes MCP and A2A protocols as complement
|
||||
- **[draft-kartha-grd](https://datatracker.ietf.org/doc/draft-kartha-grd/)** (score: 3.4) — Defines architectural framework for discovering network resources based on physical location and con
|
||||
- **[draft-yan-a2a-device-agent-applicability](https://datatracker.ietf.org/doc/draft-yan-a2a-device-agent-applicability/)** (score: 3.4) — Discusses applying Agent-to-Agent (A2A) Protocol to network management for communication between Con
|
||||
- **[draft-ietf-lamps-private-key-stmt-attr](https://datatracker.ietf.org/doc/draft-ietf-lamps-private-key-stmt-attr/)** (score: 3.4) — Defines X.509 attribute for private key possession statements as alternative to cryptographic proof
|
||||
- **[draft-yue-moq-transporting-sensing-data](https://datatracker.ietf.org/doc/draft-yue-moq-transporting-sensing-data/)** (score: 3.4) — Proposes using Media Over QUIC (MOQ) to transport large-scale, real-time sensing data in 6G networks
|
||||
- **[draft-ramakrishna-satp-views-addresses](https://datatracker.ietf.org/doc/draft-ramakrishna-satp-views-addresses/)** (score: 3.4) — Defines view and addressing mechanisms for secure asset transfer between DLT systems. Enables cross-
|
||||
- **[draft-stephan-ai-agent-6g](https://datatracker.ietf.org/doc/draft-stephan-ai-agent-6g/)** (score: 3.4) — Examines AI agent communication protocols specifically for 6G systems based on 3GPP requirements. Ex
|
||||
- **[draft-sz-dmsc-iaip](https://datatracker.ietf.org/doc/draft-sz-dmsc-iaip/)** (score: 3.3) — Defines Intent-based Agent Interconnection Protocol (IAIP) for dynamic agent discovery and routing a
|
||||
- **[draft-chuyi-nmrg-ai-agent-network](https://datatracker.ietf.org/doc/draft-chuyi-nmrg-ai-agent-network/)** (score: 3.2) — Focuses on large language model-based agents for network operations and maintenance. Addresses pract
|
||||
- **[draft-liu-rtgwg-agent-gateway-requirements](https://datatracker.ietf.org/doc/draft-liu-rtgwg-agent-gateway-requirements/)** (score: 3.2) — Discusses requirements for Agent Gateways in agent-to-agent communications to improve scalability, e
|
||||
- **[draft-gaikwad-woa](https://datatracker.ietf.org/doc/draft-gaikwad-woa/)** (score: 3.2) — Specifies Web of Agents (WoA) format using JSON Schema to describe AI agent inputs/outputs served fr
|
||||
- **[draft-gupta-httpapi-events-query](https://datatracker.ietf.org/doc/draft-gupta-httpapi-events-query/)** (score: 3.2) — Proposes Events Query Protocol (EQP) built on HTTP for user agents to receive event notifications di
|
||||
- **[draft-meunier-webbotauth-registry](https://datatracker.ietf.org/doc/draft-meunier-webbotauth-registry/)** (score: 3.2) — Defines a JSON format for web bot signature agent cards to advertise identity, purpose, and cryptogr
|
||||
- **[draft-zhang-dmsc-ioa-semantic-interaction](https://datatracker.ietf.org/doc/draft-zhang-dmsc-ioa-semantic-interaction/)** (score: 3.2) — Specifies a semantic layer for Internet of Agents using ontology models and JSON-LD serialization. D
|
||||
- **[draft-zeng-mcp-troubleshooting](https://datatracker.ietf.org/doc/draft-zeng-mcp-troubleshooting/)** (score: 3.1) — Applies Model Context Protocol to network management for intent-based troubleshooting. Maps MCP role
|
||||
- **[draft-a2a-moqt-transport](https://datatracker.ietf.org/doc/draft-a2a-moqt-transport/)** (score: 3.1) — Specifies transport of Agent-to-Agent protocol over Media over QUIC Transport. Leverages MOQT's publ
|
||||
- **[draft-levy-llm-uri-scheme](https://datatracker.ietf.org/doc/draft-levy-llm-uri-scheme/)** (score: 3.1) — Defines a URI scheme for identifying LLM endpoints with embedded configuration parameters. Creates a
|
||||
- **[draft-tojens-dhcp-option-concat-considerations](https://datatracker.ietf.org/doc/draft-tojens-dhcp-option-concat-considerations/)** (score: 3.1) — Updates RFC 3396 to make DHCP option concatenation requirements more flexible. Addresses real-world
|
||||
- **[draft-ietf-lamps-rfc5274bis](https://datatracker.ietf.org/doc/draft-ietf-lamps-rfc5274bis/)** (score: 3.1) — Defines compliance requirements for Certificate Management Messages over CMS (CMC) enrollment protoc
|
||||
- **[draft-vinaysingh-awp-wellknown](https://datatracker.ietf.org/doc/draft-vinaysingh-awp-wellknown/)** (score: 3.1) — Defines well-known URI and link relation for exposing website workflows to automated agents. Provide
|
||||
- **[draft-wendt-stir-vesper](https://datatracker.ietf.org/doc/draft-wendt-stir-vesper/)** (score: 3.0) — Formalizes framework for verifiable telephone number identity using delegate certificates and author
|
||||
- **[draft-ietf-lamps-e2e-mail-guidance](https://datatracker.ietf.org/doc/draft-ietf-lamps-e2e-mail-guidance/)** (score: 3.0) — Provides comprehensive guidance for implementing end-to-end email encryption securely. Addresses usa
|
||||
- **[draft-nandakumar-a2a-moqt-transport](https://datatracker.ietf.org/doc/draft-nandakumar-a2a-moqt-transport/)** (score: 3.0) — Identical specification to draft-a2a-moqt-transport for transporting Agent-to-Agent protocol over MO
|
||||
- **[draft-zhao-nmrg-ai-agent-for-dtn](https://datatracker.ietf.org/doc/draft-zhao-nmrg-ai-agent-for-dtn/)** (score: 3.0) — Proposes AI agent architecture for Digital Twin Networks, integrating autonomous agents at each DTN
|
||||
- **[draft-cui-dmsc-agent-cdi](https://datatracker.ietf.org/doc/draft-cui-dmsc-agent-cdi/)** (score: 3.0) — Defines comprehensive framework for cross-domain AI agent interoperability including identity federa
|
||||
- **[draft-leon-distributed-multi-signer](https://datatracker.ietf.org/doc/draft-leon-distributed-multi-signer/)** (score: 3.0) — Defines distributed DNSSEC multi-signer architecture with multi-signer agents and combiners. Introdu
|
||||
- **[draft-happel-structured-email-trust](https://datatracker.ietf.org/doc/draft-happel-structured-email-trust/)** (score: 2.9) — Provides trust and security recommendations for handling structured data in email messages. Focuses
|
||||
- **[draft-ramakrishna-satp-data-sharing](https://datatracker.ietf.org/doc/draft-ramakrishna-satp-data-sharing/)** (score: 2.9) — Defines a DLT-neutral protocol for sharing asset views and metadata across blockchain networks via g
|
||||
- **[draft-bastian-jose-pkdh](https://datatracker.ietf.org/doc/draft-bastian-jose-pkdh/)** (score: 2.9) — Defines a method to derive symmetric MAC keys from public information in JSON Web Signatures using D
|
||||
|
||||
## Human-agent interaction (16 drafts)
|
||||
|
||||
- **[draft-drake-email-tpm-attestation](https://datatracker.ietf.org/doc/draft-drake-email-tpm-attestation/)** (score: 4.6) — Defines hardware attestation for email using TPM verification chains to prevent spam and provide Syb
|
||||
- **[draft-dhir-http-agent-profile](https://datatracker.ietf.org/doc/draft-dhir-http-agent-profile/)** (score: 4.2) — Defines HTTP Agent Profile for authenticating agent traffic, separating human from agent traffic, an
|
||||
- **[draft-liu-agent-operation-authorization](https://datatracker.ietf.org/doc/draft-liu-agent-operation-authorization/)** (score: 4.1) — Specifies framework for verifiable delegation of actions from humans to AI agents using JWT tokens.
|
||||
- **[draft-cui-nmrg-llm-nm](https://datatracker.ietf.org/doc/draft-cui-nmrg-llm-nm/)** (score: 4.1) — Defines framework for collaborative network management between LLM agents and human operators. Intro
|
||||
- **[draft-steele-agent-considerations](https://datatracker.ietf.org/doc/draft-steele-agent-considerations/)** (score: 4.0) — Defines guidelines for IETF specifications to support AI agent consumption and code generation. Intr
|
||||
- **[draft-mishra-oauth-agent-grants](https://datatracker.ietf.org/doc/draft-mishra-oauth-agent-grants/)** (score: 4.0) — Extends OAuth 2.0 for AI agent authorization with human consent verification, revocation, and audit
|
||||
- **[draft-rosenberg-aiproto-cheq](https://datatracker.ietf.org/doc/draft-rosenberg-aiproto-cheq/)** (score: 3.9) — Proposes CHEQ protocol for human confirmation of AI agent decisions before execution. Protects again
|
||||
- **[draft-oauth-ai-agents-on-behalf-of-user](https://datatracker.ietf.org/doc/draft-oauth-ai-agents-on-behalf-of-user/)** (score: 3.7) — This draft extends OAuth 2.0 to enable AI agents to securely obtain access tokens for acting on beha
|
||||
- **[draft-rosenberg-cheq](https://datatracker.ietf.org/doc/draft-rosenberg-cheq/)** (score: 3.6) — Proposes CHEQ protocol for human-in-the-loop confirmation of AI agent decisions before execution. Us
|
||||
- **[draft-zm-rtgwg-mcp-troubleshooting](https://datatracker.ietf.org/doc/draft-zm-rtgwg-mcp-troubleshooting/)** (score: 3.6) — Proposes using Model Context Protocol (MCP) to enable LLM-based automated network troubleshooting. M
|
||||
- **[draft-irtf-nmrg-llm-nm](https://datatracker.ietf.org/doc/draft-irtf-nmrg-llm-nm/)** (score: 3.5) — Defines framework for collaborative network management between LLMs and human operators with human-i
|
||||
- **[draft-meta-layer-overview](https://datatracker.ietf.org/doc/draft-meta-layer-overview/)** (score: 3.5) — Introduces Meta-layer concept as coordination substrate for presence, annotation, and governance on
|
||||
- **[draft-zeng-nmrg-mcp-usecases-requirements](https://datatracker.ietf.org/doc/draft-zeng-nmrg-mcp-usecases-requirements/)** (score: 3.4) — Presents problem statement for integrating Model Context Protocol into network management for AI age
|
||||
- **[draft-gupta-httpapi-events-query](https://datatracker.ietf.org/doc/draft-gupta-httpapi-events-query/)** (score: 3.2) — Proposes Events Query Protocol (EQP) built on HTTP for user agents to receive event notifications di
|
||||
- **[draft-zeng-mcp-troubleshooting](https://datatracker.ietf.org/doc/draft-zeng-mcp-troubleshooting/)** (score: 3.1) — Applies Model Context Protocol to network management for intent-based troubleshooting. Maps MCP role
|
||||
- **[draft-vinaysingh-awp-wellknown](https://datatracker.ietf.org/doc/draft-vinaysingh-awp-wellknown/)** (score: 3.1) — Defines well-known URI and link relation for exposing website workflows to automated agents. Provide
|
||||
|
||||
## Identity / authentication for AI agents (7 drafts)
|
||||
|
||||
- **[draft-nandakumar-agent-sd-jwt](https://datatracker.ietf.org/doc/draft-nandakumar-agent-sd-jwt/)** (score: 3.9) — This draft defines SD-Card, a Selective Disclosure JWT encoding of Agent Cards that enables privacy-
|
||||
- **[draft-wahl-scim-agent-schema](https://datatracker.ietf.org/doc/draft-wahl-scim-agent-schema/)** (score: 3.9) — This draft extends the SCIM (System for Cross-domain Identity Management) protocol to support AI age
|
||||
- **[draft-oauth-ai-agents-on-behalf-of-user](https://datatracker.ietf.org/doc/draft-oauth-ai-agents-on-behalf-of-user/)** (score: 3.7) — This draft extends OAuth 2.0 to enable AI agents to securely obtain access tokens for acting on beha
|
||||
- **[draft-chen-agent-decoupled-authorization-model](https://datatracker.ietf.org/doc/draft-chen-agent-decoupled-authorization-model/)** (score: 3.5) — This draft proposes a decoupled authorization framework for AI agents that enables dynamic, intent-b
|
||||
- **[draft-huang-acme-scalable-agent-enrollment](https://datatracker.ietf.org/doc/draft-huang-acme-scalable-agent-enrollment/)** (score: 3.5) — This draft proposes two scalable models for certificate enrollment of AI agents: one using Zero-Know
|
||||
- **[draft-zheng-dispatch-agent-identity-management](https://datatracker.ietf.org/doc/draft-zheng-dispatch-agent-identity-management/)** (score: 3.3) — This draft proposes an identity management framework for agents in an Internet of Agents (IOA) syste
|
||||
- **[draft-yl-agent-id-requirements](https://datatracker.ietf.org/doc/draft-yl-agent-id-requirements/)** (score: 2.9) — This draft proposes requirements for digital identity management in AI agent communication protocols
|
||||
|
||||
## ML traffic mgmt (15 drafts)
|
||||
|
||||
- **[draft-dhir-http-agent-profile](https://datatracker.ietf.org/doc/draft-dhir-http-agent-profile/)** (score: 4.2) — Defines HTTP Agent Profile for authenticating agent traffic, separating human from agent traffic, an
|
||||
- **[draft-cui-nmrg-llm-nm](https://datatracker.ietf.org/doc/draft-cui-nmrg-llm-nm/)** (score: 4.1) — Defines framework for collaborative network management between LLM agents and human operators. Intro
|
||||
- **[draft-akhavain-moussa-ai-network](https://datatracker.ietf.org/doc/draft-akhavain-moussa-ai-network/)** (score: 3.9) — Proposes Data and Agent Aware-Inference and Training Network (DA-ITN) architecture. Comprehensive mu
|
||||
- **[draft-jurkovikj-httpapi-agentic-state](https://datatracker.ietf.org/doc/draft-jurkovikj-httpapi-agentic-state/)** (score: 3.9) — Defines Agentic State Transfer (AST) HTTP profile for managing canonical resource state across multi
|
||||
- **[draft-yuan-rtgwg-traffic-agent-usecase](https://datatracker.ietf.org/doc/draft-yuan-rtgwg-traffic-agent-usecase/)** (score: 3.7) — Presents use cases for AI agents optimizing network traffic through dynamic resource adjustment. Det
|
||||
- **[draft-an-nmrg-i2icf-cits](https://datatracker.ietf.org/doc/draft-an-nmrg-i2icf-cits/)** (score: 3.7) — Defines framework for orchestrating In-Network Computing Functions in Cooperative Intelligent Transp
|
||||
- **[draft-cui-nmrg-auto-test](https://datatracker.ietf.org/doc/draft-cui-nmrg-auto-test/)** (score: 3.6) — Framework for AI-assisted network protocol testing using LLMs and automated test generation. Defines
|
||||
- **[draft-yue-moq-transporting-sensing-data](https://datatracker.ietf.org/doc/draft-yue-moq-transporting-sensing-data/)** (score: 3.4) — Proposes using Media Over QUIC (MOQ) to transport large-scale, real-time sensing data in 6G networks
|
||||
- **[draft-chuyi-nmrg-ai-agent-network](https://datatracker.ietf.org/doc/draft-chuyi-nmrg-ai-agent-network/)** (score: 3.2) — Focuses on large language model-based agents for network operations and maintenance. Addresses pract
|
||||
- **[draft-tong-network-agent-use-cases-in-6g](https://datatracker.ietf.org/doc/draft-tong-network-agent-use-cases-in-6g/)** (score: 3.2) — Introduces network AI agent use cases in 6G focusing on connectivity services and third-party applic
|
||||
- **[draft-kale-agntcy-federated-privacy](https://datatracker.ietf.org/doc/draft-kale-agntcy-federated-privacy/)** (score: 3.2) — Specifies architecture for privacy-preserving federated learning across multi-tenant AI agent system
|
||||
- **[draft-mao-rtgwg-apn-framework-for-ioa](https://datatracker.ietf.org/doc/draft-mao-rtgwg-apn-framework-for-ioa/)** (score: 3.2) — Applies Application-aware Performance Network framework to Internet of Agents scenario. Addresses ne
|
||||
- **[draft-liu-nmrg-ai-llm-inference-requirements](https://datatracker.ietf.org/doc/draft-liu-nmrg-ai-llm-inference-requirements/)** (score: 3.2) — Analyzes system and network requirements for large-scale LLM inference services. Investigates mainst
|
||||
- **[draft-li-dmsc-inf-architecture](https://datatracker.ietf.org/doc/draft-li-dmsc-inf-architecture/)** (score: 3.1) — Proposes a network infrastructure architecture for large-scale multi-agent collaboration. Focuses on
|
||||
- **[draft-bernardos-cats-isac-uc](https://datatracker.ietf.org/doc/draft-bernardos-cats-isac-uc/)** (score: 3.0) — Presents Integrated Sensing and Communications (ISAC) as a use case for CATS architecture. Explores
|
||||
|
||||
## ML-based traffic management / optimization (1 drafts)
|
||||
|
||||
- **[draft-zhang-agent-gap-network](https://datatracker.ietf.org/doc/draft-zhang-agent-gap-network/)** (score: 3.0) — This draft identifies problems and gaps in mobile core networks for supporting AI agent communicatio
|
||||
|
||||
## Model serving/inference (10 drafts)
|
||||
|
||||
- **[draft-chang-agent-token-efficient](https://datatracker.ietf.org/doc/draft-chang-agent-token-efficient/)** (score: 4.5) — Defines ADOL (Agentic Data Optimization Layer) to address token bloat in agent communication protoco
|
||||
- **[draft-wmz-nmrg-agent-ndt-arch](https://datatracker.ietf.org/doc/draft-wmz-nmrg-agent-ndt-arch/)** (score: 4.2) — Comprehensive architecture combining Network Digital Twin with Agentic AI for intent-based network o
|
||||
- **[draft-gaikwad-llm-benchmarking-methodology](https://datatracker.ietf.org/doc/draft-gaikwad-llm-benchmarking-methodology/)** (score: 4.2) — Defines comprehensive benchmarking methodologies for LLM inference serving systems including test pr
|
||||
- **[draft-gaikwad-llm-benchmarking-profiles](https://datatracker.ietf.org/doc/draft-gaikwad-llm-benchmarking-profiles/)** (score: 4.2) — Defines performance benchmarking profiles binding terminology and methodology to concrete architectu
|
||||
- **[draft-akhavain-moussa-ai-network](https://datatracker.ietf.org/doc/draft-akhavain-moussa-ai-network/)** (score: 3.9) — Proposes Data and Agent Aware-Inference and Training Network (DA-ITN) architecture. Comprehensive mu
|
||||
- **[draft-sogomonian-aiip-architecture](https://datatracker.ietf.org/doc/draft-sogomonian-aiip-architecture/)** (score: 3.7) — Defines architectural model for Artificial Intelligence Internet Protocol (AIIP) enabling stateless,
|
||||
- **[draft-chuyi-nmrg-ai-agent-network](https://datatracker.ietf.org/doc/draft-chuyi-nmrg-ai-agent-network/)** (score: 3.2) — Focuses on large language model-based agents for network operations and maintenance. Addresses pract
|
||||
- **[draft-tong-network-agent-use-cases-in-6g](https://datatracker.ietf.org/doc/draft-tong-network-agent-use-cases-in-6g/)** (score: 3.2) — Introduces network AI agent use cases in 6G focusing on connectivity services and third-party applic
|
||||
- **[draft-liu-nmrg-ai-llm-inference-requirements](https://datatracker.ietf.org/doc/draft-liu-nmrg-ai-llm-inference-requirements/)** (score: 3.2) — Analyzes system and network requirements for large-scale LLM inference services. Investigates mainst
|
||||
- **[draft-levy-llm-uri-scheme](https://datatracker.ietf.org/doc/draft-levy-llm-uri-scheme/)** (score: 3.1) — Defines a URI scheme for identifying LLM endpoints with embedded configuration parameters. Creates a
|
||||
|
||||
## Other AI/agent (8 drafts)
|
||||
|
||||
- **[draft-ietf-tls-ecdhe-mlkem](https://datatracker.ietf.org/doc/draft-ietf-tls-ecdhe-mlkem/)** (score: 4.4) — Defines hybrid post-quantum key agreement mechanisms for TLS 1.3 that combine ML-KEM with traditiona
|
||||
- **[draft-wmz-nmrg-agent-ndt-arch](https://datatracker.ietf.org/doc/draft-wmz-nmrg-agent-ndt-arch/)** (score: 4.2) — Comprehensive architecture combining Network Digital Twin with Agentic AI for intent-based network o
|
||||
- **[draft-an-nmrg-i2icf-cits](https://datatracker.ietf.org/doc/draft-an-nmrg-i2icf-cits/)** (score: 3.7) — Defines framework for orchestrating In-Network Computing Functions in Cooperative Intelligent Transp
|
||||
- **[draft-cui-nmrg-auto-test](https://datatracker.ietf.org/doc/draft-cui-nmrg-auto-test/)** (score: 3.6) — Framework for AI-assisted network protocol testing using LLMs and automated test generation. Defines
|
||||
- **[draft-stephan-ai-agent-6g](https://datatracker.ietf.org/doc/draft-stephan-ai-agent-6g/)** (score: 3.4) — Examines AI agent communication protocols specifically for 6G systems based on 3GPP requirements. Ex
|
||||
- **[draft-architect-cittamarket](https://datatracker.ietf.org/doc/draft-architect-cittamarket/)** (score: 3.1) — Specifies protocol for immutable AGI system identification using Bitcoin blockchain anchoring. Defin
|
||||
- **[draft-zhao-nmrg-ai-agent-for-dtn](https://datatracker.ietf.org/doc/draft-zhao-nmrg-ai-agent-for-dtn/)** (score: 3.0) — Proposes AI agent architecture for Digital Twin Networks, integrating autonomous agents at each DTN
|
||||
- **[draft-ietf-httpbis-rfc6265bis](https://datatracker.ietf.org/doc/draft-ietf-httpbis-rfc6265bis/)** (score: 3.0) — Updates HTTP Cookie specification to replace RFC 6265 with improved security and privacy. Addresses
|
||||
|
||||
## Policy / governance / ethical frameworks (1 drafts)
|
||||
|
||||
- **[draft-chen-agent-decoupled-authorization-model](https://datatracker.ietf.org/doc/draft-chen-agent-decoupled-authorization-model/)** (score: 3.5) — This draft proposes a decoupled authorization framework for AI agents that enables dynamic, intent-b
|
||||
|
||||
## Policy/governance (53 drafts)
|
||||
|
||||
- **[draft-aylward-daap-v2](https://datatracker.ietf.org/doc/draft-aylward-daap-v2/)** (score: 4.8) — Defines comprehensive protocol for AI agent accountability including authentication, monitoring, and
|
||||
- **[draft-goswami-agentic-jwt](https://datatracker.ietf.org/doc/draft-goswami-agentic-jwt/)** (score: 4.5) — Extends OAuth 2.0 with Agentic JWT to address authorization challenges in autonomous AI systems. Int
|
||||
- **[draft-birkholz-verifiable-agent-conversations](https://datatracker.ietf.org/doc/draft-birkholz-verifiable-agent-conversations/)** (score: 4.5) — Defines CDDL-based data format for verifiable agent conversation records using COSE signing. Support
|
||||
- **[draft-aylward-aiga-2](https://datatracker.ietf.org/doc/draft-aylward-aiga-2/)** (score: 4.5) — Comprehensive AI governance framework with tiered risk model, federated authority network, and econo
|
||||
- **[draft-cui-nmrg-llm-benchmark](https://datatracker.ietf.org/doc/draft-cui-nmrg-llm-benchmark/)** (score: 4.3) — Provides comprehensive evaluation framework for LLM-based network configuration agents. Includes emu
|
||||
- **[draft-mw-wimse-transitive-attestation](https://datatracker.ietf.org/doc/draft-mw-wimse-transitive-attestation/)** (score: 4.3) — Defines WIMSE profile for cryptographically binding workload identities to their execution environme
|
||||
- **[draft-wmz-nmrg-agent-ndt-arch](https://datatracker.ietf.org/doc/draft-wmz-nmrg-agent-ndt-arch/)** (score: 4.2) — Comprehensive architecture combining Network Digital Twin with Agentic AI for intent-based network o
|
||||
- **[draft-dhir-http-agent-profile](https://datatracker.ietf.org/doc/draft-dhir-http-agent-profile/)** (score: 4.2) — Defines HTTP Agent Profile for authenticating agent traffic, separating human from agent traffic, an
|
||||
- **[draft-chen-oauth-rar-agent-extensions](https://datatracker.ietf.org/doc/draft-chen-oauth-rar-agent-extensions/)** (score: 4.2) — Extends OAuth RAR with policy_context and lifecycle_binding members for AI agent environments. Enabl
|
||||
- **[draft-aylward-aiga-1](https://datatracker.ietf.org/doc/draft-aylward-aiga-1/)** (score: 4.2) — Specifies AI Governance and Accountability Protocol with tiered risk-based governance model. Include
|
||||
- **[draft-aap-oauth-profile](https://datatracker.ietf.org/doc/draft-aap-oauth-profile/)** (score: 4.2) — Defines an OAuth 2.0 authorization profile specifically for autonomous AI agents, extending existing
|
||||
- **[draft-oauth-transaction-tokens-for-agents](https://datatracker.ietf.org/doc/draft-oauth-transaction-tokens-for-agents/)** (score: 4.2) — Extends OAuth Transaction Tokens framework to support agent context propagation with actor and princ
|
||||
- **[draft-jewell-aibdp](https://datatracker.ietf.org/doc/draft-jewell-aibdp/)** (score: 4.2) — Defines AI Boundary Declaration Protocol for expressing content usage boundaries for AI systems. Pro
|
||||
- **[draft-liu-agent-operation-authorization](https://datatracker.ietf.org/doc/draft-liu-agent-operation-authorization/)** (score: 4.1) — Specifies framework for verifiable delegation of actions from humans to AI agents using JWT tokens.
|
||||
- **[draft-yue-anima-agent-recovery-networks](https://datatracker.ietf.org/doc/draft-yue-anima-agent-recovery-networks/)** (score: 4.1) — Defines task-oriented multi-agent framework for fault recovery in converged mobile networks. Targets
|
||||
- **[draft-schulze-ecap](https://datatracker.ietf.org/doc/draft-schulze-ecap/)** (score: 4.1) — ECAP defines a cryptographically-verified protocol for web crawlers to obtain consent from hosts bef
|
||||
- **[draft-steele-agent-considerations](https://datatracker.ietf.org/doc/draft-steele-agent-considerations/)** (score: 4.0) — Defines guidelines for IETF specifications to support AI agent consumption and code generation. Intr
|
||||
- **[draft-mishra-oauth-agent-grants](https://datatracker.ietf.org/doc/draft-mishra-oauth-agent-grants/)** (score: 4.0) — Extends OAuth 2.0 for AI agent authorization with human consent verification, revocation, and audit
|
||||
- **[draft-barney-caam](https://datatracker.ietf.org/doc/draft-barney-caam/)** (score: 4.0) — Specifies Contextual Agent Authorization Mesh for runtime authorization of agents after discovery, p
|
||||
- **[draft-nennemann-wimse-ect](https://datatracker.ietf.org/doc/draft-nennemann-wimse-ect/)** (score: 4.0) — Defines Execution Context Tokens as JWT extension to WIMSE for tracking task execution in distribute
|
||||
- **[draft-berlinai-vera](https://datatracker.ietf.org/doc/draft-berlinai-vera/)** (score: 3.9) — Introduces VERA, a zero-trust architecture for AI agent security with five enforcement pillars and c
|
||||
- **[draft-ietf-tls-deprecate-obsolete-kex](https://datatracker.ietf.org/doc/draft-ietf-tls-deprecate-obsolete-kex/)** (score: 3.8) — Deprecates obsolete key exchange methods in TLS 1.2 including finite field DH and RSA. Updates multi
|
||||
- **[draft-srijal-agents-policy](https://datatracker.ietf.org/doc/draft-srijal-agents-policy/)** (score: 3.8) — Specifies AGENTS.TXT protocol as strict plaintext policy file for automated clients, bots, and crawl
|
||||
- **[draft-zhao-nmop-network-management-agent](https://datatracker.ietf.org/doc/draft-zhao-nmop-network-management-agent/)** (score: 3.8) — Defines AI-driven Network Management Agent concept for Level 4 autonomous networks. Specifies integr
|
||||
- **[draft-scim-agent-extension](https://datatracker.ietf.org/doc/draft-scim-agent-extension/)** (score: 3.7) — Extends SCIM 2.0 specification to manage agents and agentic applications across domains. Builds on e
|
||||
- **[draft-rosenberg-aiproto-framework](https://datatracker.ietf.org/doc/draft-rosenberg-aiproto-framework/)** (score: 3.7) — Provides framework and requirements for AI agent protocols on the Internet. Surveys existing approac
|
||||
- **[draft-melnikov-sasl2](https://datatracker.ietf.org/doc/draft-melnikov-sasl2/)** (score: 3.7) — Updates SASL framework to support modern authentication requirements including multi-factor authenti
|
||||
- **[draft-ietf-lake-ra](https://datatracker.ietf.org/doc/draft-ietf-lake-ra/)** (score: 3.7) — Specifies remote attestation procedures integrated with EDHOC lightweight key exchange protocol. Ena
|
||||
- **[draft-ietf-lamps-rfc7030-csrattrs](https://datatracker.ietf.org/doc/draft-ietf-lamps-rfc7030-csrattrs/)** (score: 3.7) — Updates RFC7030 to clarify CSR Attributes Response encoding and adds template-based approach for EST
|
||||
- **[draft-gaikwad-south-authorization](https://datatracker.ietf.org/doc/draft-gaikwad-south-authorization/)** (score: 3.7) — Authorization protocol supporting probabilistic decisions for agents and services. Enables uncertain
|
||||
- **[draft-kotecha-agentic-dispute-protocol](https://datatracker.ietf.org/doc/draft-kotecha-agentic-dispute-protocol/)** (score: 3.6) — Defines a protocol for autonomous agents to file and resolve disputes through structured automated p
|
||||
- **[draft-vandoulas-aidp](https://datatracker.ietf.org/doc/draft-vandoulas-aidp/)** (score: 3.6) — Defines a comprehensive control-plane protocol for secure agent interactions with delegation, author
|
||||
- **[draft-messous-eat-ai](https://datatracker.ietf.org/doc/draft-messous-eat-ai/)** (score: 3.6) — Defines an Entity Attestation Token profile for remote attestation of autonomous AI agents, specifyi
|
||||
- **[draft-gaikwad-aps-profile](https://datatracker.ietf.org/doc/draft-gaikwad-aps-profile/)** (score: 3.6) — Storage service profile for agent persistent state including embeddings, preferences, and audit logs
|
||||
- **[draft-pbs-sidrops-roaanycast](https://datatracker.ietf.org/doc/draft-pbs-sidrops-roaanycast/)** (score: 3.6) — Defines best practices for managing Route Origin Authorizations (ROAs) for globally anycasted servic
|
||||
- **[draft-song-oauth-ai-agent-collaborate-authz](https://datatracker.ietf.org/doc/draft-song-oauth-ai-agent-collaborate-authz/)** (score: 3.5) — Proposes OAuth 2.0 extension for multi-AI agent collaboration with applier-on-behalf-of authorizatio
|
||||
- **[draft-wang-hjs-accountability](https://datatracker.ietf.org/doc/draft-wang-hjs-accountability/)** (score: 3.5) — Defines HJS accountability layer for AI agents using blockchain-anchored timestamps to create immuta
|
||||
- **[draft-ahn-nmrg-5g-security-i2nsf-framework](https://datatracker.ietf.org/doc/draft-ahn-nmrg-5g-security-i2nsf-framework/)** (score: 3.5) — Presents integrated framework for automated 5G edge network security using I2NSF architecture and In
|
||||
- **[draft-jia-oauth-scope-aggregation](https://datatracker.ietf.org/doc/draft-jia-oauth-scope-aggregation/)** (score: 3.5) — Extends OAuth 2.0 with scope aggregation to reduce authorization round-trips in multi-step AI agent
|
||||
- **[draft-meta-layer-overview](https://datatracker.ietf.org/doc/draft-meta-layer-overview/)** (score: 3.5) — Introduces Meta-layer concept as coordination substrate for presence, annotation, and governance on
|
||||
- **[draft-yuan-rtgwg-security-agent-usecase](https://datatracker.ietf.org/doc/draft-yuan-rtgwg-security-agent-usecase/)** (score: 3.4) — Proposes AI Network Security Agents for routers to provide intelligent, adaptive security capabiliti
|
||||
- **[draft-huang-rats-agentic-eat-cap-attest](https://datatracker.ietf.org/doc/draft-huang-rats-agentic-eat-cap-attest/)** (score: 3.4) — Extends Entity Attestation Token (EAT) to support capability attestation for agentic AI systems. Ena
|
||||
- **[draft-romanchuk-normative-admissibility](https://datatracker.ietf.org/doc/draft-romanchuk-normative-admissibility/)** (score: 3.4) — Establishes a framework for evaluating whether autonomous agent speech acts are admissible based on
|
||||
- **[draft-cosmos-protocol-specification](https://datatracker.ietf.org/doc/draft-cosmos-protocol-specification/)** (score: 3.3) — Defines comprehensive badge-based identity and communication system with trust scoring, post-quantum
|
||||
- **[draft-jeong-opsawg-intent-based-sdv-framework](https://datatracker.ietf.org/doc/draft-jeong-opsawg-intent-based-sdv-framework/)** (score: 3.3) — Proposes intent-based management framework for Software-Defined Vehicles in ITS environments. Covers
|
||||
- **[draft-diaconu-agents-authz-info-sharing](https://datatracker.ietf.org/doc/draft-diaconu-agents-authz-info-sharing/)** (score: 3.2) — Addresses authorization challenges in distributed multi-agent systems across multiple domains. Cover
|
||||
- **[draft-ahn-opsawg-5g-security-i2nsf-framework](https://datatracker.ietf.org/doc/draft-ahn-opsawg-5g-security-i2nsf-framework/)** (score: 3.2) — Proposes an integrated security framework for 5G edge networks using I2NSF architecture with Intent-
|
||||
- **[draft-kale-agntcy-federated-privacy](https://datatracker.ietf.org/doc/draft-kale-agntcy-federated-privacy/)** (score: 3.2) — Specifies architecture for privacy-preserving federated learning across multi-tenant AI agent system
|
||||
- **[draft-yao-agent-auth-considerations](https://datatracker.ietf.org/doc/draft-yao-agent-auth-considerations/)** (score: 3.1) — Extends OAuth model for AI agent authentication and authorization in Agent Communication Networks. P
|
||||
- **[draft-ietf-lamps-e2e-mail-guidance](https://datatracker.ietf.org/doc/draft-ietf-lamps-e2e-mail-guidance/)** (score: 3.0) — Provides comprehensive guidance for implementing end-to-end email encryption securely. Addresses usa
|
||||
- **[draft-hong-nmrg-agenticai-ps](https://datatracker.ietf.org/doc/draft-hong-nmrg-agenticai-ps/)** (score: 3.0) — Presents problem statement and motivations for applying Agentic AI to network management. Emphasizes
|
||||
- **[draft-cui-dmsc-agent-cdi](https://datatracker.ietf.org/doc/draft-cui-dmsc-agent-cdi/)** (score: 3.0) — Defines comprehensive framework for cross-domain AI agent interoperability including identity federa
|
||||
- **[draft-condrey-rats-witnessd-enrollment](https://datatracker.ietf.org/doc/draft-condrey-rats-witnessd-enrollment/)** (score: 3.0) — Specifies trust anchor bootstrap protocol for proof of process framework. Defines device enrollment,
|
||||
152
data/reports/overlap-clusters.md
Normal file
152
data/reports/overlap-clusters.md
Normal file
@@ -0,0 +1,152 @@
|
||||
# IETF AI/Agent Draft Overlap Analysis
|
||||
*Generated 2026-02-28 — 260 drafts analyzed, embeddings via nomic-embed-text*
|
||||
|
||||
## Summary
|
||||
|
||||
- **42 clusters** at 0.85 similarity threshold (topically overlapping)
|
||||
- **34 clusters** at 0.90 threshold (near-duplicates or same-author variants)
|
||||
- Heaviest overlap in OAuth agent auth (13 drafts) and agent gateway/collaboration (10 drafts)
|
||||
|
||||
---
|
||||
|
||||
## Near-Duplicates (same draft, different WG or renamed)
|
||||
|
||||
| Draft A | Draft B | Reason |
|
||||
|---------|---------|--------|
|
||||
| draft-a2a-moqt-transport | draft-nandakumar-a2a-moqt-transport | Same draft |
|
||||
| draft-abbey-scim-agent-extension | draft-scim-agent-extension | Same draft |
|
||||
| draft-ahn-nmrg-5g-security-i2nsf-framework | draft-ahn-opsawg-5g-security-i2nsf-framework | Different WG |
|
||||
| draft-ar-emu-hybrid-pqc-eapaka | draft-ietf-emu-hybrid-pqc-eapaka | WG adoption |
|
||||
| draft-aylward-aiga-1 | draft-aylward-aiga-2 | Version |
|
||||
| draft-bastian-jose-dvs | draft-bastian-jose-pkdh | Renamed |
|
||||
| draft-bernardos-cats-isac-uc | draft-bernardos-green-isac-uc | Different WG |
|
||||
| draft-cui-nmrg-llm-nm | draft-irtf-nmrg-llm-nm | WG adoption |
|
||||
| draft-eggert-mailmaint-uaautoconf | draft-ietf-mailmaint-pacc | WG adoption |
|
||||
| draft-happel-structured-email-trust | draft-ietf-sml-trust | WG adoption |
|
||||
| draft-ietf-httpbis-layered-cookies | draft-ietf-httpbis-rfc6265bis | Versioned |
|
||||
| draft-ietf-lamps-est-renewal-info | draft-yusef-lamps-rfc7030-renewal-recommendation | Same topic |
|
||||
| draft-lake-pocero-authkem-edhoc | draft-pocero-authkem-edhoc | Renamed |
|
||||
| draft-li-dmsc-macp | draft-li-dmsc-mcps-agw | Evolution |
|
||||
| draft-men-rtgwg-agent-networking-digibank-scenario | draft-men-rtgwg-agent-networking-in-digibank | Renamed |
|
||||
| draft-pang-agents-networking-scenarios | draft-zl-agents-networking-scenarios | Same content |
|
||||
| draft-rosenberg-aiproto | draft-rosenberg-aiproto-nact | Renamed |
|
||||
| draft-rosenberg-aiproto-cheq | draft-rosenberg-cheq | Renamed |
|
||||
| draft-sun-zhang-iaip | draft-sz-dmsc-iaip | Different WG |
|
||||
| draft-templin-manet-inet | draft-templin-manet-inet-omni | Evolution |
|
||||
| draft-tong-network-agent-use-cases-in-6g | draft-yu-ai-agent-use-cases-in-6g | Competing |
|
||||
| draft-zeng-mcp-troubleshooting | draft-zm-rtgwg-mcp-troubleshooting | Different WG |
|
||||
| draft-zheng-agent-identity-management | draft-zheng-dispatch-agent-identity-management | Different WG |
|
||||
| draft-zhul-dhc-bnc-up-specific-suboption | draft-zhul-intarea-bnc-up-specific-suboption | Different WG |
|
||||
| draft-zl-agents-networking-architecture | draft-zl-agents-networking-framework | Same series |
|
||||
|
||||
---
|
||||
|
||||
## Major Competing Clusters
|
||||
|
||||
### 1. OAuth for AI Agents (13 drafts) — MOST CROWDED
|
||||
|
||||
All trying to solve: how do AI agents authenticate and get authorized via OAuth?
|
||||
|
||||
| Draft | Approach |
|
||||
|-------|----------|
|
||||
| draft-aap-oauth-profile | OAuth 2.0 profile for autonomous agents |
|
||||
| draft-aylward-daap-v2 | Distributed accountability protocol |
|
||||
| draft-barney-caam | Contextual agent authorization mesh |
|
||||
| draft-chen-ai-agent-auth-new-requirements | New auth requirements analysis |
|
||||
| draft-chen-oauth-rar-agent-extensions | RAR extensions for agent policy |
|
||||
| draft-goswami-agentic-jwt | Agentic JWT for autonomous systems |
|
||||
| draft-jia-oauth-scope-aggregation | Scope aggregation for multi-step workflows |
|
||||
| draft-liu-agent-operation-authorization | Verifiable delegation via JWT |
|
||||
| draft-liu-oauth-a2a-profile | A2A profile for transaction tokens |
|
||||
| draft-oauth-ai-agents-on-behalf-of-user | On-behalf-of-user extension |
|
||||
| draft-song-oauth-ai-agent-authorization | Target-based authorization |
|
||||
| draft-song-oauth-ai-agent-collaborate-authz | Multi-agent collaboration authz |
|
||||
| draft-yao-agent-auth-considerations | Auth considerations analysis |
|
||||
|
||||
**Gap:** Most focus on single-agent auth. Few address chained delegation across multiple agents or revocation in real-time agent-to-agent workflows.
|
||||
|
||||
### 2. Agent Gateway / Multi-Agent Collaboration (10 drafts)
|
||||
|
||||
All trying to solve: how do agents from different platforms/ecosystems collaborate?
|
||||
|
||||
| Draft | Approach |
|
||||
|-------|----------|
|
||||
| draft-agent-gw | Semantic routing gateway |
|
||||
| draft-campbell-agentic-http | HTTP best practices |
|
||||
| draft-cui-dmsc-agent-cdi | Cross-domain interop framework |
|
||||
| draft-fu-nmop-agent-communication-framework | Network AIOps comm framework |
|
||||
| draft-han-rtgwg-agent-gateway-intercomm-framework | Gateway intercomm |
|
||||
| draft-li-dmsc-inf-architecture | DMSC infrastructure architecture |
|
||||
| draft-li-dmsc-macp | Multi-agent collaboration protocol suite |
|
||||
| draft-liu-dmsc-acps-arc | Agent collaboration protocols arch |
|
||||
| draft-yang-dmsc-ioa-task-protocol | IoA task protocol |
|
||||
| draft-yang-ioa-protocol | IoA protocol |
|
||||
|
||||
**Gap:** No draft addresses dynamic trust establishment between gateways, or how to handle conflicting semantic schemas across ecosystems.
|
||||
|
||||
### 3. Agent Discovery (6 drafts)
|
||||
|
||||
All trying to solve: how do you find and invoke an AI agent?
|
||||
|
||||
| Draft | Approach |
|
||||
|-------|----------|
|
||||
| draft-cui-ai-agent-discovery-invocation | Discovery + invocation protocol |
|
||||
| draft-gaikwad-woa | Web of Agents |
|
||||
| draft-mozley-aidiscovery | AI Discovery problem statement |
|
||||
| draft-mozleywilliams-dnsop-bandaid | DNS-based agent discovery |
|
||||
| draft-narajala-ans | Agent Name Service (DNS-based) |
|
||||
| draft-pioli-agent-discovery | Agent Registration & Discovery Protocol |
|
||||
|
||||
**Gap:** None adequately addresses discovery across trust boundaries or privacy-preserving discovery (finding agents without revealing your intent).
|
||||
|
||||
### 4. Intent-Based Agent Routing (5 drafts)
|
||||
|
||||
| Draft | Approach |
|
||||
|-------|----------|
|
||||
| draft-ainp-protocol | AI-native semantic protocol |
|
||||
| draft-li-semantic-routing-architecture | Semantic routing architecture |
|
||||
| draft-sun-zhang-iaip | Intent-based agent interconnection |
|
||||
| draft-sz-dmsc-iaip | Same, different WG |
|
||||
| draft-zeng-opsawg-llm-netconf-gap | LLM-driven netconf gap analysis |
|
||||
|
||||
**Gap:** No draft defines how to verify that an agent's stated intent matches its actual behavior.
|
||||
|
||||
### 5. 6G Agent Requirements (6 drafts)
|
||||
|
||||
| Draft | Approach |
|
||||
|-------|----------|
|
||||
| draft-du-ai-agent-communication-6g-aspect | 6G agent comm requirements |
|
||||
| draft-hw-ai-agent-6g | Agent protocol requirements for 6G |
|
||||
| draft-liu-dmsc-gw-requirements | Gateway requirements |
|
||||
| draft-mao-rtgwg-apn-framework-for-ioa | APN framework for IoA |
|
||||
| draft-rosenberg-aiproto-framework | General agent protocol framework |
|
||||
| draft-tong-network-agent-use-cases-in-6g | 6G use cases |
|
||||
|
||||
**Gap:** Heavy on requirements, light on actual protocol mechanisms. Most are wish lists rather than specifications.
|
||||
|
||||
### 6. Agent Identity via SCIM/Registry (6 drafts)
|
||||
|
||||
| Draft | Approach |
|
||||
|-------|----------|
|
||||
| draft-abbey-scim-agent-extension | SCIM extension for agents |
|
||||
| draft-liang-agentdns | Root domain naming for agents |
|
||||
| draft-scim-agent-extension | Same as abbey (co-submitted) |
|
||||
| draft-wahl-scim-agent-schema | SCIM agentic identity schema |
|
||||
| draft-zheng-agent-identity-management | Agent identity in IoA |
|
||||
| draft-zheng-dispatch-agent-identity-management | Same, different WG |
|
||||
|
||||
**Gap:** No draft addresses identity lifecycle — what happens when an agent is retired, compromised, or forked?
|
||||
|
||||
---
|
||||
|
||||
## Underserved Areas (potential gaps to fill)
|
||||
|
||||
Based on what's NOT well covered:
|
||||
|
||||
1. **Agent accountability & audit trails** — Only draft-aylward-daap-v2 and draft-birkholz-verifiable-agent-conversations tackle this seriously
|
||||
2. **Token/cost efficiency in agent protocols** — Only draft-chang-agent-token-efficient addresses token bloat
|
||||
3. **Agent safety constraints at the protocol level** — AI safety/alignment has highest avg score (3.8) but fewest drafts (36)
|
||||
4. **Cross-trust-boundary agent delegation** — Chained auth across org boundaries barely addressed
|
||||
5. **Privacy-preserving agent discovery** — No draft covers this
|
||||
6. **Agent behavior verification** — Intent vs. actual behavior mismatch detection
|
||||
7. **Agent identity lifecycle** — Retirement, revocation, compromise recovery
|
||||
207
data/reports/overview.md
Normal file
207
data/reports/overview.md
Normal file
@@ -0,0 +1,207 @@
|
||||
# IETF AI/Agent Draft Overview
|
||||
*Generated 2026-02-27 23:29 UTC — 200 rated / 260 tracked drafts*
|
||||
|
||||
| Score | Draft | Date | N | M | O | Mom | R | Summary |
|
||||
|------:|-------|------|:-:|:-:|:-:|:---:|:-:|---------|
|
||||
| 4.8 | [draft-aylward-daap-v2](https://datatracker.ietf.org/doc/draft-aylward-daap-v2/) | 2026-01-02 | █ | ▇ | ▁ | █ | █ | Defines comprehensive protocol for AI agent accountability including authenticat... |
|
||||
| 4.6 | [draft-guy-bary-stamp-protocol](https://datatracker.ietf.org/doc/draft-guy-bary-stamp-protocol/) | 2025-11-03 | █ | ▇ | ▁ | ▇ | █ | Defines STAMP protocol for cryptographic delegation and proof in AI agent system... |
|
||||
| 4.6 | [draft-drake-email-tpm-attestation](https://datatracker.ietf.org/doc/draft-drake-email-tpm-attestation/) | 2026-02-20 | █ | ▇ | ▁ | ▇ | █ | Defines hardware attestation for email using TPM verification chains to prevent ... |
|
||||
| 4.6 | [draft-ietf-lake-app-profiles](https://datatracker.ietf.org/doc/draft-ietf-lake-app-profiles/) | 2025-11-21 | ▇ | █ | ▃ | █ | █ | Defines canonical CBOR representation for EDHOC application profiles and coordin... |
|
||||
| 4.5 | [draft-goswami-agentic-jwt](https://datatracker.ietf.org/doc/draft-goswami-agentic-jwt/) | 2026-01-01 | █ | ▇ | ▃ | ▇ | █ | Extends OAuth 2.0 with Agentic JWT to address authorization challenges in autono... |
|
||||
| 4.5 | [draft-chang-agent-token-efficient](https://datatracker.ietf.org/doc/draft-chang-agent-token-efficient/) | 2026-01-12 | █ | ▇ | ▃ | ▇ | █ | Defines ADOL (Agentic Data Optimization Layer) to address token bloat in agent c... |
|
||||
| 4.5 | [draft-birkholz-verifiable-agent-conversations](https://datatracker.ietf.org/doc/draft-birkholz-verifiable-agent-conversations/) | 2026-02-25 | ▇ | █ | ▃ | ▇ | █ | Defines CDDL-based data format for verifiable agent conversation records using C... |
|
||||
| 4.5 | [draft-aylward-aiga-2](https://datatracker.ietf.org/doc/draft-aylward-aiga-2/) | 2026-01-26 | █ | ▅ | ▁ | ▇ | █ | Comprehensive AI governance framework with tiered risk model, federated authorit... |
|
||||
| 4.4 | [draft-ietf-tls-ecdhe-mlkem](https://datatracker.ietf.org/doc/draft-ietf-tls-ecdhe-mlkem/) | 2026-02-17 | ▇ | ▇ | ▃ | █ | █ | Defines hybrid post-quantum key agreement mechanisms for TLS 1.3 that combine ML... |
|
||||
| 4.3 | [draft-cui-nmrg-llm-benchmark](https://datatracker.ietf.org/doc/draft-cui-nmrg-llm-benchmark/) | 2025-12-30 | ▇ | ▇ | ▁ | ▇ | █ | Provides comprehensive evaluation framework for LLM-based network configuration ... |
|
||||
| 4.3 | [draft-ietf-anima-constrained-voucher](https://datatracker.ietf.org/doc/draft-ietf-anima-constrained-voucher/) | 2026-02-27 | ▇ | █ | ▅ | ▇ | █ | Adapts BRSKI secure device onboarding for constrained IoT environments using CBO... |
|
||||
| 4.3 | [draft-ietf-hpke-hpke](https://datatracker.ietf.org/doc/draft-ietf-hpke-hpke/) | 2025-11-04 | ▅ | █ | ▃ | █ | █ | Comprehensive specification for hybrid public key encryption supporting arbitrar... |
|
||||
| 4.3 | [draft-mw-wimse-transitive-attestation](https://datatracker.ietf.org/doc/draft-mw-wimse-transitive-attestation/) | 2026-02-26 | █ | ▃ | ▃ | █ | █ | Defines WIMSE profile for cryptographically binding workload identities to their... |
|
||||
| 4.2 | [draft-wmz-nmrg-agent-ndt-arch](https://datatracker.ietf.org/doc/draft-wmz-nmrg-agent-ndt-arch/) | 2026-02-24 | ▇ | ▇ | ▃ | ▇ | █ | Comprehensive architecture combining Network Digital Twin with Agentic AI for in... |
|
||||
| 4.2 | [draft-dhir-http-agent-profile](https://datatracker.ietf.org/doc/draft-dhir-http-agent-profile/) | 2025-11-24 | ▇ | ▇ | ▃ | ▇ | █ | Defines HTTP Agent Profile for authenticating agent traffic, separating human fr... |
|
||||
| 4.2 | [draft-chen-oauth-rar-agent-extensions](https://datatracker.ietf.org/doc/draft-chen-oauth-rar-agent-extensions/) | 2026-02-04 | ▇ | ▇ | ▃ | ▇ | █ | Extends OAuth RAR with policy_context and lifecycle_binding members for AI agent... |
|
||||
| 4.2 | [draft-aylward-aiga-1](https://datatracker.ietf.org/doc/draft-aylward-aiga-1/) | 2025-11-03 | ▇ | ▇ | ▃ | ▇ | █ | Specifies AI Governance and Accountability Protocol with tiered risk-based gover... |
|
||||
| 4.2 | [draft-mallick-muacp](https://datatracker.ietf.org/doc/draft-mallick-muacp/) | 2026-01-17 | ▇ | ▇ | ▃ | ▇ | █ | Resource-efficient messaging protocol specifically designed for constrained IoT/... |
|
||||
| 4.2 | [draft-aap-oauth-profile](https://datatracker.ietf.org/doc/draft-aap-oauth-profile/) | 2026-02-07 | ▇ | ▇ | ▃ | ▇ | █ | Defines an OAuth 2.0 authorization profile specifically for autonomous AI agents... |
|
||||
| 4.2 | [draft-gaikwad-llm-benchmarking-methodology](https://datatracker.ietf.org/doc/draft-gaikwad-llm-benchmarking-methodology/) | 2026-01-20 | ▇ | ▇ | ▃ | ▇ | █ | Defines comprehensive benchmarking methodologies for LLM inference serving syste... |
|
||||
| 4.2 | [draft-ietf-sshm-mlkem-hybrid-kex](https://datatracker.ietf.org/doc/draft-ietf-sshm-mlkem-hybrid-kex/) | 2026-02-26 | ▇ | ▇ | ▃ | ▇ | █ | Defines post-quantum hybrid key exchange combining ML-KEM with traditional ECDH ... |
|
||||
| 4.2 | [draft-ietf-tls-extended-key-update](https://datatracker.ietf.org/doc/draft-ietf-tls-extended-key-update/) | 2026-02-19 | ▇ | ▇ | ▃ | ▇ | █ | Adds post-compromise security to TLS 1.3 through fresh Diffie-Hellman exchanges ... |
|
||||
| 4.2 | [draft-narajala-ans](https://datatracker.ietf.org/doc/draft-narajala-ans/) | 2025-11-18 | █ | ▅ | ▃ | ▅ | █ | Introduces Agent Name Service (ANS) as a DNS-based universal directory for AI ag... |
|
||||
| 4.2 | [draft-oauth-transaction-tokens-for-agents](https://datatracker.ietf.org/doc/draft-oauth-transaction-tokens-for-agents/) | 2026-02-11 | ▇ | ▇ | ▅ | ▇ | █ | Extends OAuth Transaction Tokens framework to support agent context propagation ... |
|
||||
| 4.2 | [draft-zhang-dmsc-mas-communication](https://datatracker.ietf.org/doc/draft-zhang-dmsc-mas-communication/) | 2026-01-16 | ▇ | ▅ | ▁ | ▇ | █ | Analyzes security risks in multi-agent communication and limitations of existing... |
|
||||
| 4.2 | [draft-jewell-aibdp](https://datatracker.ietf.org/doc/draft-jewell-aibdp/) | 2026-02-16 | █ | ▃ | ▃ | ▇ | █ | Defines AI Boundary Declaration Protocol for expressing content usage boundaries... |
|
||||
| 4.2 | [draft-li-dmsc-macp](https://datatracker.ietf.org/doc/draft-li-dmsc-macp/) | 2026-02-26 | ▇ | ▇ | ▅ | ▇ | █ | Specifies a comprehensive multi-agent collaboration protocol suite using Agent G... |
|
||||
| 4.2 | [draft-gaikwad-llm-benchmarking-profiles](https://datatracker.ietf.org/doc/draft-gaikwad-llm-benchmarking-profiles/) | 2026-01-20 | ▇ | ▇ | ▅ | ▇ | █ | Defines performance benchmarking profiles binding terminology and methodology to... |
|
||||
| 4.2 | [draft-lake-pocero-authkem-ikr-edhoc](https://datatracker.ietf.org/doc/draft-lake-pocero-authkem-ikr-edhoc/) | 2026-01-08 | ▇ | ▇ | ▅ | ▇ | █ | Specifies an optimized KEM-based authentication variant for EDHOC protocol in sc... |
|
||||
| 4.1 | [draft-cui-dns-native-agent-naming-resolution](https://datatracker.ietf.org/doc/draft-cui-dns-native-agent-naming-resolution/) | 2025-12-22 | ▇ | ▇ | ▃ | ▅ | █ | Specifies DNS-native naming and resolution for AI agents using FQDNs and SVCB re... |
|
||||
| 4.1 | [draft-liu-agent-operation-authorization](https://datatracker.ietf.org/doc/draft-liu-agent-operation-authorization/) | 2025-11-25 | ▇ | ▅ | ▃ | ▇ | █ | Specifies framework for verifiable delegation of actions from humans to AI agent... |
|
||||
| 4.1 | [draft-yue-anima-agent-recovery-networks](https://datatracker.ietf.org/doc/draft-yue-anima-agent-recovery-networks/) | 2026-02-06 | ▇ | ▅ | ▃ | ▇ | █ | Defines task-oriented multi-agent framework for fault recovery in converged mobi... |
|
||||
| 4.1 | [draft-cui-nmrg-llm-nm](https://datatracker.ietf.org/doc/draft-cui-nmrg-llm-nm/) | 2025-10-19 | ▇ | ▅ | ▃ | ▇ | █ | Defines framework for collaborative network management between LLM agents and hu... |
|
||||
| 4.1 | [draft-schulze-ecap](https://datatracker.ietf.org/doc/draft-schulze-ecap/) | 2025-12-10 | ▇ | ▅ | ▃ | ▇ | █ | ECAP defines a cryptographically-verified protocol for web crawlers to obtain co... |
|
||||
| 4.1 | [draft-nederveld-adl](https://datatracker.ietf.org/doc/draft-nederveld-adl/) | 2026-02-18 | ▇ | ▅ | ▃ | ▇ | █ | Defines ADL, a JSON-based standard for describing AI agents including their capa... |
|
||||
| 4.1 | [draft-mw-spice-actor-chain](https://datatracker.ietf.org/doc/draft-mw-spice-actor-chain/) | 2026-02-26 | ▇ | ▅ | ▃ | ▇ | █ | Extends OAuth 2.0 Token Exchange with cryptographically verifiable actor chains ... |
|
||||
| 4.1 | [draft-spm-lake-pqsuites](https://datatracker.ietf.org/doc/draft-spm-lake-pqsuites/) | 2025-10-20 | ▇ | ▅ | ▃ | ▇ | █ | Defines quantum-resistant cipher suites for EDHOC using ML-DSA signatures and ML... |
|
||||
| 4.0 | [draft-steele-agent-considerations](https://datatracker.ietf.org/doc/draft-steele-agent-considerations/) | 2025-11-05 | █ | ▅ | ▁ | ▅ | ▇ | Defines guidelines for IETF specifications to support AI agent consumption and c... |
|
||||
| 4.0 | [draft-mishra-oauth-agent-grants](https://datatracker.ietf.org/doc/draft-mishra-oauth-agent-grants/) | 2026-02-27 | ▇ | ▇ | ▅ | ▅ | █ | Extends OAuth 2.0 for AI agent authorization with human consent verification, re... |
|
||||
| 4.0 | [draft-ietf-lisp-nexagon](https://datatracker.ietf.org/doc/draft-ietf-lisp-nexagon/) | 2025-09-23 | ▇ | ▇ | ▃ | ▇ | ▇ | Combines LISP with H3 spatial indexing to create geospatial intelligence network... |
|
||||
| 4.0 | [draft-barney-caam](https://datatracker.ietf.org/doc/draft-barney-caam/) | 2026-02-25 | ▇ | ▇ | ▅ | ▅ | █ | Specifies Contextual Agent Authorization Mesh for runtime authorization of agent... |
|
||||
| 4.0 | [draft-nennemann-wimse-ect](https://datatracker.ietf.org/doc/draft-nennemann-wimse-ect/) | 2026-02-25 | ▇ | ▇ | ▃ | ▇ | ▇ | Defines Execution Context Tokens as JWT extension to WIMSE for tracking task exe... |
|
||||
| 3.9 | [draft-ainp-protocol](https://datatracker.ietf.org/doc/draft-ainp-protocol/) | 2025-11-24 | █ | ▃ | ▁ | ▃ | █ | Defines semantic communication protocol for AI agents using intent-based routing... |
|
||||
| 3.9 | [draft-ietf-lake-authz](https://datatracker.ietf.org/doc/draft-ietf-lake-authz/) | 2025-11-21 | ▇ | ▇ | ▅ | ▇ | ▇ | Specifies lightweight authorization using EDHOC for zero-touch device onboarding... |
|
||||
| 3.9 | [draft-ietf-ace-coap-est-oscore](https://datatracker.ietf.org/doc/draft-ietf-ace-coap-est-oscore/) | 2025-10-20 | ▇ | ▇ | ▅ | ▇ | ▇ | Specifies carrying EST certificate provisioning over CoAP using OSCORE protectio... |
|
||||
| 3.9 | [draft-nandakumar-agent-sd-jwt](https://datatracker.ietf.org/doc/draft-nandakumar-agent-sd-jwt/) | 2025-10-20 | ▇ | ▅ | ▃ | ▅ | █ | This draft defines SD-Card, a Selective Disclosure JWT encoding of Agent Cards t... |
|
||||
| 3.9 | [draft-wahl-scim-agent-schema](https://datatracker.ietf.org/doc/draft-wahl-scim-agent-schema/) | 2026-02-20 | ▇ | ▅ | ▃ | ▅ | █ | This draft extends the SCIM (System for Cross-domain Identity Management) protoc... |
|
||||
| 3.9 | [draft-agent-gw](https://datatracker.ietf.org/doc/draft-agent-gw/) | 2026-02-16 | ▇ | ▅ | ▃ | ▅ | █ | Proposes an Intelligent Agent Communication Gateway for large-scale multi-agent ... |
|
||||
| 3.9 | [draft-mp-agntcy-ads](https://datatracker.ietf.org/doc/draft-mp-agntcy-ads/) | 2026-02-24 | ▇ | ▅ | ▃ | ▅ | █ | Describes Agent Directory Service for storing and discovering AI agent metadata ... |
|
||||
| 3.9 | [draft-rosenberg-aiproto-cheq](https://datatracker.ietf.org/doc/draft-rosenberg-aiproto-cheq/) | 2025-10-20 | ▇ | ▅ | ▃ | ▅ | █ | Proposes CHEQ protocol for human confirmation of AI agent decisions before execu... |
|
||||
| 3.9 | [draft-zeng-opsawg-llm-netconf-gap](https://datatracker.ietf.org/doc/draft-zeng-opsawg-llm-netconf-gap/) | 2025-11-02 | ▇ | ▅ | ▃ | ▅ | █ | Analyzes gaps in existing network configuration protocols for LLM-driven intent-... |
|
||||
| 3.9 | [draft-akhavain-moussa-ai-network](https://datatracker.ietf.org/doc/draft-akhavain-moussa-ai-network/) | 2025-11-02 | ▇ | ▅ | ▃ | ▅ | █ | Proposes Data and Agent Aware-Inference and Training Network (DA-ITN) architectu... |
|
||||
| 3.9 | [draft-rosenberg-aiproto-a2t](https://datatracker.ietf.org/doc/draft-rosenberg-aiproto-a2t/) | 2025-11-06 | ▇ | ▅ | ▃ | ▅ | █ | Defines Agent-to-Tool (A2T) protocol for integrating third-party APIs into AI ag... |
|
||||
| 3.9 | [draft-berlinai-vera](https://datatracker.ietf.org/doc/draft-berlinai-vera/) | 2026-02-12 | ▇ | ▅ | ▃ | ▅ | █ | Introduces VERA, a zero-trust architecture for AI agent security with five enfor... |
|
||||
| 3.9 | [draft-josefsson-chempat](https://datatracker.ietf.org/doc/draft-josefsson-chempat/) | 2025-10-20 | ▇ | ▅ | ▃ | ▅ | █ | Generic framework for Post-Quantum/Traditional hybrid key encapsulation mechanis... |
|
||||
| 3.9 | [draft-cui-ai-agent-discovery-invocation](https://datatracker.ietf.org/doc/draft-cui-ai-agent-discovery-invocation/) | 2026-02-12 | ▅ | ▇ | ▅ | ▇ | █ | Proposes standardized protocol for AI agent discovery and invocation with common... |
|
||||
| 3.9 | [draft-ravikiran-clawdentity-protocol](https://datatracker.ietf.org/doc/draft-ravikiran-clawdentity-protocol/) | 2026-02-21 | ▅ | ▇ | ▅ | ▇ | █ | Specifies Clawdentity protocol for cryptographic identity and trust in AI agent ... |
|
||||
| 3.9 | [draft-jurkovikj-httpapi-agentic-state](https://datatracker.ietf.org/doc/draft-jurkovikj-httpapi-agentic-state/) | 2025-12-10 | ▇ | ▇ | ▃ | ▅ | ▇ | Defines Agentic State Transfer (AST) HTTP profile for managing canonical resourc... |
|
||||
| 3.9 | [draft-tejido-swp-core](https://datatracker.ietf.org/doc/draft-tejido-swp-core/) | 2026-02-20 | ▇ | ▇ | ▃ | ▅ | ▇ | Specifies SlimWire Protocol Core, a binary framing layer for agent/tool messagin... |
|
||||
| 3.9 | [draft-bradleylundberg-cfrg-arkg](https://datatracker.ietf.org/doc/draft-bradleylundberg-cfrg-arkg/) | 2026-02-27 | ▇ | ▇ | ▃ | ▅ | ▇ | Defines Asynchronous Remote Key Generation algorithm enabling delegation of publ... |
|
||||
| 3.8 | [draft-ietf-emu-hybrid-pqc-eapaka](https://datatracker.ietf.org/doc/draft-ietf-emu-hybrid-pqc-eapaka/) | 2026-02-26 | ▇ | ▅ | ▃ | ▇ | ▇ | Enhances EAP-AKA' with post-quantum cryptography to address quantum computing th... |
|
||||
| 3.8 | [draft-luan-rtgwg-sdaf](https://datatracker.ietf.org/doc/draft-luan-rtgwg-sdaf/) | 2026-02-25 | ▇ | ▅ | ▃ | ▇ | ▇ | Proposes symmetry-driven forwarding mechanism for LEO satellite networks to avoi... |
|
||||
| 3.8 | [draft-chen-ai-agent-auth-new-requirements](https://datatracker.ietf.org/doc/draft-chen-ai-agent-auth-new-requirements/) | 2026-01-06 | ▇ | ▃ | ▁ | ▅ | █ | Identifies new authentication and authorization requirements for AI agents that ... |
|
||||
| 3.8 | [draft-sogomonian-ai-uri-scheme](https://datatracker.ietf.org/doc/draft-sogomonian-ai-uri-scheme/) | 2025-10-03 | ▇ | ▃ | ▁ | ▅ | █ | Defines experimental AI URI scheme for dedicated AI resource access. Enables nat... |
|
||||
| 3.8 | [draft-ietf-tls-deprecate-obsolete-kex](https://datatracker.ietf.org/doc/draft-ietf-tls-deprecate-obsolete-kex/) | 2026-01-23 | ▃ | ▇ | ▁ | ▇ | █ | Deprecates obsolete key exchange methods in TLS 1.2 including finite field DH an... |
|
||||
| 3.8 | [draft-srijal-agents-policy](https://datatracker.ietf.org/doc/draft-srijal-agents-policy/) | 2025-10-07 | ▅ | ▅ | ▃ | ▇ | █ | Specifies AGENTS.TXT protocol as strict plaintext policy file for automated clie... |
|
||||
| 3.8 | [draft-abbey-scim-agent-extension](https://datatracker.ietf.org/doc/draft-abbey-scim-agent-extension/) | 2025-10-16 | ▇ | ▅ | ▁ | ▅ | ▇ | Extends SCIM 2.0 protocol to manage AI agents and agentic applications across do... |
|
||||
| 3.8 | [draft-zhao-nmop-network-management-agent](https://datatracker.ietf.org/doc/draft-zhao-nmop-network-management-agent/) | 2026-02-27 | ▇ | ▃ | ▅ | ▇ | █ | Defines AI-driven Network Management Agent concept for Level 4 autonomous networ... |
|
||||
| 3.8 | [draft-eckert-anima-acp-free-ani](https://datatracker.ietf.org/doc/draft-eckert-anima-acp-free-ani/) | 2025-10-20 | ▇ | ▇ | ▅ | ▅ | ▇ | Describes lightweight variation of Autonomic Networking Infrastructure without e... |
|
||||
| 3.7 | [draft-scim-agent-extension](https://datatracker.ietf.org/doc/draft-scim-agent-extension/) | 2025-10-11 | ▅ | ▇ | ▃ | ▇ | ▇ | Extends SCIM 2.0 specification to manage agents and agentic applications across ... |
|
||||
| 3.7 | [draft-zheng-agent-identity-management](https://datatracker.ietf.org/doc/draft-zheng-agent-identity-management/) | 2025-11-02 | ▇ | ▅ | ▇ | ▅ | █ | Defines comprehensive agent identity management for Internet of Agents systems. ... |
|
||||
| 3.7 | [draft-yuan-rtgwg-traffic-agent-usecase](https://datatracker.ietf.org/doc/draft-yuan-rtgwg-traffic-agent-usecase/) | 2025-11-02 | ▅ | ▇ | ▃ | ▇ | ▇ | Presents use cases for AI agents optimizing network traffic through dynamic reso... |
|
||||
| 3.7 | [draft-rosenberg-aiproto-framework](https://datatracker.ietf.org/doc/draft-rosenberg-aiproto-framework/) | 2025-10-20 | ▃ | ▇ | ▅ | █ | █ | Provides framework and requirements for AI agent protocols on the Internet. Surv... |
|
||||
| 3.7 | [draft-an-nmrg-i2icf-cits](https://datatracker.ietf.org/doc/draft-an-nmrg-i2icf-cits/) | 2026-02-06 | ▇ | ▅ | ▅ | ▇ | ▇ | Defines framework for orchestrating In-Network Computing Functions in Cooperativ... |
|
||||
| 3.7 | [draft-melnikov-sasl2](https://datatracker.ietf.org/doc/draft-melnikov-sasl2/) | 2025-06-05 | ▅ | ▇ | ▃ | ▇ | ▇ | Updates SASL framework to support modern authentication requirements including m... |
|
||||
| 3.7 | [draft-ietf-lamps-attestation-freshness](https://datatracker.ietf.org/doc/draft-ietf-lamps-attestation-freshness/) | 2025-10-19 | ▅ | ▇ | ▃ | ▇ | ▇ | Outlines how nonces are supplied to end entities by RA/CA for inclusion in attes... |
|
||||
| 3.7 | [draft-ietf-lake-ra](https://datatracker.ietf.org/doc/draft-ietf-lake-ra/) | 2025-11-21 | ▅ | ▇ | ▃ | ▇ | ▇ | Specifies remote attestation procedures integrated with EDHOC lightweight key ex... |
|
||||
| 3.7 | [draft-ietf-lamps-rfc7030-csrattrs](https://datatracker.ietf.org/doc/draft-ietf-lamps-rfc7030-csrattrs/) | 2026-01-06 | ▅ | ▇ | ▃ | ▇ | ▇ | Updates RFC7030 to clarify CSR Attributes Response encoding and adds template-ba... |
|
||||
| 3.7 | [draft-ietf-suit-firmware-encryption](https://datatracker.ietf.org/doc/draft-ietf-suit-firmware-encryption/) | 2025-12-08 | ▅ | ▇ | ▃ | ▇ | ▇ | Specifies encryption techniques for firmware and software payloads in SUIT manif... |
|
||||
| 3.7 | [draft-ietf-lamps-est-renewal-info](https://datatracker.ietf.org/doc/draft-ietf-lamps-est-renewal-info/) | 2026-02-12 | ▅ | ▇ | ▃ | ▇ | ▇ | Extends EST protocol to provide server-side recommendations for certificate rene... |
|
||||
| 3.7 | [draft-ietf-netconf-configuration-tracing](https://datatracker.ietf.org/doc/draft-ietf-netconf-configuration-tracing/) | 2025-11-03 | ▅ | ▇ | ▃ | ▇ | ▇ | Specifies a NETCONF mechanism to map configuration modifications to their origin... |
|
||||
| 3.7 | [draft-gaikwad-south-authorization](https://datatracker.ietf.org/doc/draft-gaikwad-south-authorization/) | 2025-11-28 | ▇ | ▇ | ▃ | ▃ | ▇ | Authorization protocol supporting probabilistic decisions for agents and service... |
|
||||
| 3.7 | [draft-sogomonian-aiip-architecture](https://datatracker.ietf.org/doc/draft-sogomonian-aiip-architecture/) | 2025-12-15 | █ | ▃ | ▁ | ▃ | ▇ | Defines architectural model for Artificial Intelligence Internet Protocol (AIIP)... |
|
||||
| 3.7 | [draft-oauth-ai-agents-on-behalf-of-user](https://datatracker.ietf.org/doc/draft-oauth-ai-agents-on-behalf-of-user/) | 2026-02-27 | ▇ | ▅ | ▅ | ▃ | █ | This draft extends OAuth 2.0 to enable AI agents to securely obtain access token... |
|
||||
| 3.7 | [draft-ni-a2a-ai-agent-security-requirements](https://datatracker.ietf.org/doc/draft-ni-a2a-ai-agent-security-requirements/) | 2025-11-02 | ▅ | ▅ | ▅ | ▇ | █ | Establishes security requirements for AI agents across their operational lifecyc... |
|
||||
| 3.7 | [draft-rosenberg-aiproto](https://datatracker.ietf.org/doc/draft-rosenberg-aiproto/) | 2025-10-20 | ▅ | ▇ | █ | ▇ | █ | Defines N-ACT protocol for AI agents to discover and invoke third-party tools an... |
|
||||
| 3.7 | [draft-rosenberg-aiproto-nact](https://datatracker.ietf.org/doc/draft-rosenberg-aiproto-nact/) | 2025-10-20 | ▅ | ▇ | █ | ▇ | █ | Defines N-ACT protocol for AI agents to discover and invoke third-party tools an... |
|
||||
| 3.7 | [draft-pocero-authkem-edhoc](https://datatracker.ietf.org/doc/draft-pocero-authkem-edhoc/) | 2025-10-25 | ▇ | ▅ | ▅ | ▃ | █ | Extends EDHOC with KEM-based authentication for post-quantum resistance. Enables... |
|
||||
| 3.6 | [draft-zyyhl-agent-networks-framework](https://datatracker.ietf.org/doc/draft-zyyhl-agent-networks-framework/) | 2025-10-20 | ▇ | ▅ | ▃ | ▅ | ▇ | Defines comprehensive framework for AI agent networks based on Agent Network Pro... |
|
||||
| 3.6 | [draft-kotecha-agentic-dispute-protocol](https://datatracker.ietf.org/doc/draft-kotecha-agentic-dispute-protocol/) | 2025-10-14 | █ | ▅ | ▁ | ▃ | ▅ | Defines a protocol for autonomous agents to file and resolve disputes through st... |
|
||||
| 3.6 | [draft-mao-rtgwg-agent-comm-protocol-gap-analysis](https://datatracker.ietf.org/doc/draft-mao-rtgwg-agent-comm-protocol-gap-analysis/) | 2025-11-02 | ▇ | ▅ | ▃ | ▅ | ▇ | Analyzes gaps in existing networking and AI protocols for cross-device communica... |
|
||||
| 3.6 | [draft-zlgsgl-rtgwg-agents-networking-framework](https://datatracker.ietf.org/doc/draft-zlgsgl-rtgwg-agents-networking-framework/) | 2025-11-03 | ▇ | ▅ | ▃ | ▅ | ▇ | Introduces a comprehensive agents networking framework for enterprise and broadb... |
|
||||
| 3.6 | [draft-han-rtgwg-agent-gateway-intercomm-framework](https://datatracker.ietf.org/doc/draft-han-rtgwg-agent-gateway-intercomm-framework/) | 2026-01-30 | ▇ | ▅ | ▃ | ▅ | ▇ | Defines framework for intercommunication between Agent Gateways in Agent Interne... |
|
||||
| 3.6 | [draft-yang-ioa-protocol](https://datatracker.ietf.org/doc/draft-yang-ioa-protocol/) | 2025-07-20 | ▇ | ▅ | ▃ | ▅ | ▇ | Defines the Internet of Agents Protocol for distributed collaboration among hete... |
|
||||
| 3.6 | [draft-rosenberg-oauth-aauth](https://datatracker.ietf.org/doc/draft-rosenberg-oauth-aauth/) | 2025-10-20 | ▇ | ▅ | ▃ | ▅ | ▇ | Extends OAuth 2.1 for AI agents operating through PSTN/SMS channels to obtain ac... |
|
||||
| 3.6 | [draft-rosenberg-cheq](https://datatracker.ietf.org/doc/draft-rosenberg-cheq/) | 2025-07-24 | ▇ | ▅ | ▃ | ▅ | ▇ | Proposes CHEQ protocol for human-in-the-loop confirmation of AI agent decisions ... |
|
||||
| 3.6 | [draft-mozleywilliams-dnsop-bandaid](https://datatracker.ietf.org/doc/draft-mozleywilliams-dnsop-bandaid/) | 2025-10-16 | ▇ | ▅ | ▃ | ▅ | ▇ | Proposes using DNS with SVCB records to enable AI agent discovery and capability... |
|
||||
| 3.6 | [draft-zm-rtgwg-mcp-troubleshooting](https://datatracker.ietf.org/doc/draft-zm-rtgwg-mcp-troubleshooting/) | 2025-11-02 | ▇ | ▅ | ▃ | ▅ | ▇ | Proposes using Model Context Protocol (MCP) to enable LLM-based automated networ... |
|
||||
| 3.6 | [draft-li-semantic-routing-architecture](https://datatracker.ietf.org/doc/draft-li-semantic-routing-architecture/) | 2025-11-04 | ▇ | ▅ | ▃ | ▅ | ▇ | Introduces semantic routing architecture using intent vectors and trust scores f... |
|
||||
| 3.6 | [draft-vandoulas-aidp](https://datatracker.ietf.org/doc/draft-vandoulas-aidp/) | 2026-01-18 | ▇ | ▅ | ▃ | ▅ | ▇ | Defines a comprehensive control-plane protocol for secure agent interactions wit... |
|
||||
| 3.6 | [draft-messous-eat-ai](https://datatracker.ietf.org/doc/draft-messous-eat-ai/) | 2026-02-24 | ▇ | ▅ | ▃ | ▅ | ▇ | Defines an Entity Attestation Token profile for remote attestation of autonomous... |
|
||||
| 3.6 | [draft-cui-nmrg-auto-test](https://datatracker.ietf.org/doc/draft-cui-nmrg-auto-test/) | 2026-02-22 | ▇ | ▅ | ▃ | ▅ | ▇ | Framework for AI-assisted network protocol testing using LLMs and automated test... |
|
||||
| 3.6 | [draft-mozleywilliams-dnsop-dnsaid](https://datatracker.ietf.org/doc/draft-mozleywilliams-dnsop-dnsaid/) | 2026-02-24 | ▅ | ▇ | ▅ | ▇ | ▇ | Uses existing DNS infrastructure for AI agent discovery through structured names... |
|
||||
| 3.6 | [draft-eggert-mailmaint-uaautoconf](https://datatracker.ietf.org/doc/draft-eggert-mailmaint-uaautoconf/) | 2025-09-28 | ▅ | ▇ | ▅ | ▇ | ▇ | Specifies automatic configuration mechanism for email, calendar, and contact app... |
|
||||
| 3.6 | [draft-ietf-ace-edhoc-oscore-profile](https://datatracker.ietf.org/doc/draft-ietf-ace-edhoc-oscore-profile/) | 2025-10-20 | ▅ | ▇ | ▅ | ▇ | ▇ | Defines ACE framework profile using EDHOC for mutual authentication and OSCORE f... |
|
||||
| 3.6 | [draft-gaikwad-aps-profile](https://datatracker.ietf.org/doc/draft-gaikwad-aps-profile/) | 2025-11-30 | ▇ | ▅ | ▁ | ▃ | ▇ | Storage service profile for agent persistent state including embeddings, prefere... |
|
||||
| 3.6 | [draft-moreno-lisp-uberlay](https://datatracker.ietf.org/doc/draft-moreno-lisp-uberlay/) | 2025-10-09 | ▇ | ▇ | ▃ | ▅ | ▅ | Describes using LISP to interconnect multiple independent network overlays throu... |
|
||||
| 3.6 | [draft-liu-oauth-a2a-profile](https://datatracker.ietf.org/doc/draft-liu-oauth-a2a-profile/) | 2025-10-20 | ▇ | ▃ | ▅ | ▅ | █ | Specifies OAuth Transaction Token profile for Agent-to-Agent communication. Embe... |
|
||||
| 3.6 | [draft-liu-dmsc-acps-arc](https://datatracker.ietf.org/doc/draft-liu-dmsc-acps-arc/) | 2026-01-29 | ▅ | ▅ | ▇ | ▇ | █ | Proposes Agent Collaboration Protocols architecture for Internet of Agents, cove... |
|
||||
| 3.6 | [draft-ietf-lake-edhoc-psk](https://datatracker.ietf.org/doc/draft-ietf-lake-edhoc-psk/) | 2025-11-21 | ▅ | ▇ | ▃ | ▅ | ▇ | Specifies pre-shared key authentication method for EDHOC key exchange protocol. ... |
|
||||
| 3.6 | [draft-pbs-sidrops-roaanycast](https://datatracker.ietf.org/doc/draft-pbs-sidrops-roaanycast/) | 2025-09-03 | ▅ | ▇ | ▃ | ▅ | ▇ | Defines best practices for managing Route Origin Authorizations (ROAs) for globa... |
|
||||
| 3.5 | [draft-liu-agent-context-protocol](https://datatracker.ietf.org/doc/draft-liu-agent-context-protocol/) | 2026-01-26 | ▇ | ▃ | ▃ | ▃ | █ | This draft proposes a standard protocol for AI agents to communicate context inf... |
|
||||
| 3.5 | [draft-liang-agentdns](https://datatracker.ietf.org/doc/draft-liang-agentdns/) | 2025-10-09 | ▇ | ▅ | ▅ | ▅ | ▇ | Proposes a DNS-inspired naming and service discovery system for LLM agents to en... |
|
||||
| 3.5 | [draft-song-oauth-ai-agent-collaborate-authz](https://datatracker.ietf.org/doc/draft-song-oauth-ai-agent-collaborate-authz/) | 2025-11-06 | ▇ | ▅ | ▅ | ▅ | ▇ | Proposes OAuth 2.0 extension for multi-AI agent collaboration with applier-on-be... |
|
||||
| 3.5 | [draft-mozley-aidiscovery](https://datatracker.ietf.org/doc/draft-mozley-aidiscovery/) | 2025-10-15 | ▇ | ▃ | ▁ | ▅ | ▇ | Defines requirements and considerations for AI agent-to-agent discovery mechanis... |
|
||||
| 3.5 | [draft-ye-problems-and-requirements-of-dns-for-ioa](https://datatracker.ietf.org/doc/draft-ye-problems-and-requirements-of-dns-for-ioa/) | 2025-11-02 | ▇ | ▃ | ▁ | ▅ | ▇ | Analyzes DNS challenges for Internet of Agents scenarios and identifies technica... |
|
||||
| 3.5 | [draft-wang-hjs-accountability](https://datatracker.ietf.org/doc/draft-wang-hjs-accountability/) | 2026-02-21 | ▇ | ▃ | ▁ | ▅ | ▇ | Defines HJS accountability layer for AI agents using blockchain-anchored timesta... |
|
||||
| 3.5 | [draft-irtf-nmrg-llm-nm](https://datatracker.ietf.org/doc/draft-irtf-nmrg-llm-nm/) | 2025-09-14 | ▇ | ▅ | ▅ | ▅ | ▇ | Defines framework for collaborative network management between LLMs and human op... |
|
||||
| 3.5 | [draft-ahn-nmrg-5g-security-i2nsf-framework](https://datatracker.ietf.org/doc/draft-ahn-nmrg-5g-security-i2nsf-framework/) | 2026-02-25 | ▅ | ▇ | ▇ | ▇ | ▇ | Presents integrated framework for automated 5G edge network security using I2NSF... |
|
||||
| 3.5 | [draft-jia-oauth-scope-aggregation](https://datatracker.ietf.org/doc/draft-jia-oauth-scope-aggregation/) | 2026-02-10 | ▅ | ▅ | ▃ | ▇ | ▇ | Extends OAuth 2.0 with scope aggregation to reduce authorization round-trips in ... |
|
||||
| 3.5 | [draft-meta-layer-overview](https://datatracker.ietf.org/doc/draft-meta-layer-overview/) | 2025-10-06 | █ | ▁ | ▁ | ▃ | ▇ | Introduces Meta-layer concept as coordination substrate for presence, annotation... |
|
||||
| 3.5 | [draft-ietf-emu-pqc-eapaka](https://datatracker.ietf.org/doc/draft-ietf-emu-pqc-eapaka/) | 2026-02-26 | ▅ | ▅ | ▃ | ▇ | ▇ | This draft proposes enhancing EAP-AKA' Forward Secrecy with Post-Quantum Key Enc... |
|
||||
| 3.5 | [draft-chen-agent-decoupled-authorization-model](https://datatracker.ietf.org/doc/draft-chen-agent-decoupled-authorization-model/) | 2026-02-14 | ▇ | ▃ | ▅ | ▃ | █ | This draft proposes a decoupled authorization framework for AI agents that enabl... |
|
||||
| 3.5 | [draft-huang-acme-scalable-agent-enrollment](https://datatracker.ietf.org/doc/draft-huang-acme-scalable-agent-enrollment/) | 2025-12-16 | ▇ | ▃ | ▅ | ▃ | █ | This draft proposes two scalable models for certificate enrollment of AI agents:... |
|
||||
| 3.5 | [draft-ietf-sml-trust](https://datatracker.ietf.org/doc/draft-ietf-sml-trust/) | 2025-10-20 | ▅ | ▇ | ▃ | ▇ | ▅ | Provides trust and security recommendations for handling structured data in emai... |
|
||||
| 3.5 | [draft-zhang-rvp-problem-statement](https://datatracker.ietf.org/doc/draft-zhang-rvp-problem-statement/) | 2025-10-21 | ▇ | ▃ | ▅ | ▃ | █ | Proposes Real-Virtual Agent Protocol for coordinating physical entities with dig... |
|
||||
| 3.5 | [draft-zeng-opsawg-applicability-mcp-a2a](https://datatracker.ietf.org/doc/draft-zeng-opsawg-applicability-mcp-a2a/) | 2025-11-02 | ▅ | ▇ | ▅ | ▅ | ▇ | Analyzes NETCONF limitations for advanced scenarios and proposes MCP and A2A pro... |
|
||||
| 3.5 | [draft-li-dmsc-mcps-agw](https://datatracker.ietf.org/doc/draft-li-dmsc-mcps-agw/) | 2026-02-06 | ▇ | ▅ | ▇ | ▅ | ▇ | Defines a protocol suite using Agent Gateways as control-plane entities for mult... |
|
||||
| 3.5 | [draft-ar-emu-hybrid-pqc-eapaka](https://datatracker.ietf.org/doc/draft-ar-emu-hybrid-pqc-eapaka/) | 2025-07-10 | ▇ | ▅ | ▇ | ▅ | ▇ | Enhances EAP-AKA' with hybrid post-quantum cryptography combining traditional an... |
|
||||
| 3.4 | [draft-yuan-rtgwg-security-agent-usecase](https://datatracker.ietf.org/doc/draft-yuan-rtgwg-security-agent-usecase/) | 2025-11-02 | ▇ | ▃ | ▃ | ▅ | ▇ | Proposes AI Network Security Agents for routers to provide intelligent, adaptive... |
|
||||
| 3.4 | [draft-huang-rats-agentic-eat-cap-attest](https://datatracker.ietf.org/doc/draft-huang-rats-agentic-eat-cap-attest/) | 2025-12-16 | ▇ | ▃ | ▃ | ▅ | ▇ | Extends Entity Attestation Token (EAT) to support capability attestation for age... |
|
||||
| 3.4 | [draft-jiang-seat-dynamic-attestation](https://datatracker.ietf.org/doc/draft-jiang-seat-dynamic-attestation/) | 2025-11-13 | ▇ | ▃ | ▃ | ▅ | ▇ | Defines dynamic attestation mechanisms for AI agents to convey runtime posture c... |
|
||||
| 3.4 | [draft-romanchuk-normative-admissibility](https://datatracker.ietf.org/doc/draft-romanchuk-normative-admissibility/) | 2026-01-06 | █ | ▃ | ▁ | ▃ | ▅ | Establishes a framework for evaluating whether autonomous agent speech acts are ... |
|
||||
| 3.4 | [draft-kartha-grd](https://datatracker.ietf.org/doc/draft-kartha-grd/) | 2026-01-19 | ▇ | ▃ | ▃ | ▅ | ▇ | Defines architectural framework for discovering network resources based on physi... |
|
||||
| 3.4 | [draft-yan-a2a-device-agent-applicability](https://datatracker.ietf.org/doc/draft-yan-a2a-device-agent-applicability/) | 2026-02-12 | ▅ | ▅ | ▅ | ▇ | ▇ | Discusses applying Agent-to-Agent (A2A) Protocol to network management for commu... |
|
||||
| 3.4 | [draft-ietf-lamps-private-key-stmt-attr](https://datatracker.ietf.org/doc/draft-ietf-lamps-private-key-stmt-attr/) | 2025-10-13 | ▅ | ▇ | ▁ | ▅ | ▅ | Defines X.509 attribute for private key possession statements as alternative to ... |
|
||||
| 3.4 | [draft-yue-moq-transporting-sensing-data](https://datatracker.ietf.org/doc/draft-yue-moq-transporting-sensing-data/) | 2025-10-19 | ▅ | ▅ | ▅ | ▇ | ▇ | Proposes using Media Over QUIC (MOQ) to transport large-scale, real-time sensing... |
|
||||
| 3.4 | [draft-ramakrishna-satp-views-addresses](https://datatracker.ietf.org/doc/draft-ramakrishna-satp-views-addresses/) | 2025-09-15 | ▇ | ▅ | ▃ | ▅ | ▅ | Defines view and addressing mechanisms for secure asset transfer between DLT sys... |
|
||||
| 3.4 | [draft-stephan-ai-agent-6g](https://datatracker.ietf.org/doc/draft-stephan-ai-agent-6g/) | 2025-10-20 | ▅ | ▅ | ▃ | ▅ | ▇ | Examines AI agent communication protocols specifically for 6G systems based on 3... |
|
||||
| 3.4 | [draft-zeng-nmrg-mcp-usecases-requirements](https://datatracker.ietf.org/doc/draft-zeng-nmrg-mcp-usecases-requirements/) | 2026-02-14 | ▅ | ▅ | ▃ | ▅ | ▇ | Presents problem statement for integrating Model Context Protocol into network m... |
|
||||
| 3.3 | [draft-cosmos-protocol-specification](https://datatracker.ietf.org/doc/draft-cosmos-protocol-specification/) | 2026-01-02 | █ | ▃ | ▃ | ▃ | ▅ | Defines comprehensive badge-based identity and communication system with trust s... |
|
||||
| 3.3 | [draft-sz-dmsc-iaip](https://datatracker.ietf.org/doc/draft-sz-dmsc-iaip/) | 2026-02-10 | ▇ | ▃ | ▅ | ▅ | ▇ | Defines Intent-based Agent Interconnection Protocol (IAIP) for dynamic agent dis... |
|
||||
| 3.3 | [draft-zheng-dispatch-agent-identity-management](https://datatracker.ietf.org/doc/draft-zheng-dispatch-agent-identity-management/) | 2025-11-03 | ▅ | ▃ | ▅ | ▅ | █ | This draft proposes an identity management framework for agents in an Internet o... |
|
||||
| 3.3 | [draft-narvaneni-agent-uri](https://datatracker.ietf.org/doc/draft-narvaneni-agent-uri/) | 2025-10-16 | ▇ | ▃ | ▃ | ▃ | ▇ | This draft defines the agent:// URI scheme for addressing and interoperating wit... |
|
||||
| 3.3 | [draft-jeong-opsawg-intent-based-sdv-framework](https://datatracker.ietf.org/doc/draft-jeong-opsawg-intent-based-sdv-framework/) | 2025-12-12 | ▇ | ▃ | ▃ | ▃ | ▇ | Proposes intent-based management framework for Software-Defined Vehicles in ITS ... |
|
||||
| 3.2 | [draft-chuyi-nmrg-ai-agent-network](https://datatracker.ietf.org/doc/draft-chuyi-nmrg-ai-agent-network/) | 2025-10-20 | ▅ | ▅ | ▅ | ▅ | ▇ | Focuses on large language model-based agents for network operations and maintena... |
|
||||
| 3.2 | [draft-liu-rtgwg-agent-gateway-requirements](https://datatracker.ietf.org/doc/draft-liu-rtgwg-agent-gateway-requirements/) | 2025-11-28 | ▅ | ▅ | ▅ | ▅ | ▇ | Discusses requirements for Agent Gateways in agent-to-agent communications to im... |
|
||||
| 3.2 | [draft-pioli-agent-discovery](https://datatracker.ietf.org/doc/draft-pioli-agent-discovery/) | 2026-02-24 | ▅ | ▅ | ▅ | ▅ | ▇ | Specifies ARDP, a lightweight protocol for agent registration and discovery in d... |
|
||||
| 3.2 | [draft-diaconu-agents-authz-info-sharing](https://datatracker.ietf.org/doc/draft-diaconu-agents-authz-info-sharing/) | 2026-02-06 | ▅ | ▅ | ▅ | ▅ | ▇ | Addresses authorization challenges in distributed multi-agent systems across mul... |
|
||||
| 3.2 | [draft-gaikwad-woa](https://datatracker.ietf.org/doc/draft-gaikwad-woa/) | 2025-11-30 | ▅ | ▅ | ▅ | ▅ | ▇ | Specifies Web of Agents (WoA) format using JSON Schema to describe AI agent inpu... |
|
||||
| 3.2 | [draft-ahn-opsawg-5g-security-i2nsf-framework](https://datatracker.ietf.org/doc/draft-ahn-opsawg-5g-security-i2nsf-framework/) | 2026-01-09 | ▅ | ▅ | ▅ | ▅ | ▇ | Proposes an integrated security framework for 5G edge networks using I2NSF archi... |
|
||||
| 3.2 | [draft-tong-network-agent-use-cases-in-6g](https://datatracker.ietf.org/doc/draft-tong-network-agent-use-cases-in-6g/) | 2025-11-02 | ▅ | ▃ | ▅ | ▇ | ▇ | Introduces network AI agent use cases in 6G focusing on connectivity services an... |
|
||||
| 3.2 | [draft-gupta-httpapi-events-query](https://datatracker.ietf.org/doc/draft-gupta-httpapi-events-query/) | 2025-10-17 | ▅ | ▇ | ▅ | ▅ | ▅ | Proposes Events Query Protocol (EQP) built on HTTP for user agents to receive ev... |
|
||||
| 3.2 | [draft-ietf-emu-eap-edhoc](https://datatracker.ietf.org/doc/draft-ietf-emu-eap-edhoc/) | 2026-02-14 | ▅ | ▇ | ▅ | ▅ | ▅ | Defines EAP authentication method based on EDHOC for constrained environments. I... |
|
||||
| 3.2 | [draft-lake-pocero-authkem-edhoc](https://datatracker.ietf.org/doc/draft-lake-pocero-authkem-edhoc/) | 2025-10-16 | ▅ | ▃ | ▅ | ▇ | ▇ | This draft extends the EDHOC protocol to provide quantum-resistant authenticatio... |
|
||||
| 3.2 | [draft-meunier-webbotauth-registry](https://datatracker.ietf.org/doc/draft-meunier-webbotauth-registry/) | 2025-10-20 | ▅ | ▅ | ▃ | ▃ | ▇ | Defines a JSON format for web bot signature agent cards to advertise identity, p... |
|
||||
| 3.2 | [draft-kale-agntcy-federated-privacy](https://datatracker.ietf.org/doc/draft-kale-agntcy-federated-privacy/) | 2026-01-08 | ▅ | ▅ | ▇ | ▅ | ▇ | Specifies architecture for privacy-preserving federated learning across multi-te... |
|
||||
| 3.2 | [draft-mao-rtgwg-apn-framework-for-ioa](https://datatracker.ietf.org/doc/draft-mao-rtgwg-apn-framework-for-ioa/) | 2025-11-02 | ▅ | ▅ | ▇ | ▅ | ▇ | Applies Application-aware Performance Network framework to Internet of Agents sc... |
|
||||
| 3.2 | [draft-zhang-dmsc-ioa-semantic-interaction](https://datatracker.ietf.org/doc/draft-zhang-dmsc-ioa-semantic-interaction/) | 2026-02-27 | ▅ | ▅ | ▇ | ▅ | ▇ | Specifies a semantic layer for Internet of Agents using ontology models and JSON... |
|
||||
| 3.2 | [draft-sun-zhang-iaip](https://datatracker.ietf.org/doc/draft-sun-zhang-iaip/) | 2026-02-05 | ▅ | ▅ | ▇ | ▅ | ▇ | Defines Intent-based Agent Interconnection Protocol for Agent Gateways, focusing... |
|
||||
| 3.2 | [draft-liu-nmrg-ai-llm-inference-requirements](https://datatracker.ietf.org/doc/draft-liu-nmrg-ai-llm-inference-requirements/) | 2025-11-04 | ▅ | ▅ | ▇ | ▅ | ▇ | Analyzes system and network requirements for large-scale LLM inference services.... |
|
||||
| 3.2 | [draft-ra-emu-pqc-eapaka](https://datatracker.ietf.org/doc/draft-ra-emu-pqc-eapaka/) | 2025-07-10 | ▅ | ▅ | ▇ | ▅ | ▇ | Enhances EAP-AKA' with post-quantum key encapsulation mechanisms to protect agai... |
|
||||
| 3.1 | [draft-hw-ai-agent-6g](https://datatracker.ietf.org/doc/draft-hw-ai-agent-6g/) | 2026-01-21 | ▅ | ▃ | ▃ | ▅ | ▇ | This draft analyzes requirements for agent protocols specifically tailored to 6G... |
|
||||
| 3.1 | [draft-yao-agent-auth-considerations](https://datatracker.ietf.org/doc/draft-yao-agent-auth-considerations/) | 2025-10-20 | ▅ | ▃ | ▃ | ▅ | ▇ | Extends OAuth model for AI agent authentication and authorization in Agent Commu... |
|
||||
| 3.1 | [draft-li-dmsc-inf-architecture](https://datatracker.ietf.org/doc/draft-li-dmsc-inf-architecture/) | 2026-02-05 | ▅ | ▃ | ▃ | ▅ | ▇ | Proposes a network infrastructure architecture for large-scale multi-agent colla... |
|
||||
| 3.1 | [draft-zeng-mcp-troubleshooting](https://datatracker.ietf.org/doc/draft-zeng-mcp-troubleshooting/) | 2025-10-20 | ▅ | ▃ | ▃ | ▅ | ▇ | Applies Model Context Protocol to network management for intent-based troublesho... |
|
||||
| 3.1 | [draft-a2a-moqt-transport](https://datatracker.ietf.org/doc/draft-a2a-moqt-transport/) | 2025-10-20 | ▇ | ▃ | █ | ▅ | ▇ | Specifies transport of Agent-to-Agent protocol over Media over QUIC Transport. L... |
|
||||
| 3.1 | [draft-levy-llm-uri-scheme](https://datatracker.ietf.org/doc/draft-levy-llm-uri-scheme/) | 2026-02-06 | ▅ | ▃ | ▃ | ▅ | ▇ | Defines a URI scheme for identifying LLM endpoints with embedded configuration p... |
|
||||
| 3.1 | [draft-mvieuille-kerpass-ephemsec](https://datatracker.ietf.org/doc/draft-mvieuille-kerpass-ephemsec/) | 2025-11-22 | ▇ | ▅ | ▅ | ▃ | ▅ | Specifies EPHEMSEC algorithm for generating one-time passwords using public key ... |
|
||||
| 3.1 | [draft-tojens-dhcp-option-concat-considerations](https://datatracker.ietf.org/doc/draft-tojens-dhcp-option-concat-considerations/) | 2025-09-04 | ▃ | ▇ | ▁ | ▅ | ▅ | Updates RFC 3396 to make DHCP option concatenation requirements more flexible. A... |
|
||||
| 3.1 | [draft-ietf-lamps-rfc5274bis](https://datatracker.ietf.org/doc/draft-ietf-lamps-rfc5274bis/) | 2026-02-26 | ▃ | ▇ | ▁ | ▅ | ▅ | Defines compliance requirements for Certificate Management Messages over CMS (CM... |
|
||||
| 3.1 | [draft-vinaysingh-awp-wellknown](https://datatracker.ietf.org/doc/draft-vinaysingh-awp-wellknown/) | 2025-11-02 | ▅ | ▅ | ▃ | ▅ | ▅ | Defines well-known URI and link relation for exposing website workflows to autom... |
|
||||
| 3.1 | [draft-contario-totp-secure-enrollment](https://datatracker.ietf.org/doc/draft-contario-totp-secure-enrollment/) | 2025-09-27 | ▅ | ▅ | ▃ | ▅ | ▅ | Extends TOTP enrollment to prevent key compromise through QR code capture or key... |
|
||||
| 3.1 | [draft-architect-cittamarket](https://datatracker.ietf.org/doc/draft-architect-cittamarket/) | 2025-12-19 | █ | ▁ | ▁ | ▁ | ▅ | Specifies protocol for immutable AGI system identification using Bitcoin blockch... |
|
||||
| 3.0 | [draft-ni-wimse-ai-agent-identity](https://datatracker.ietf.org/doc/draft-ni-wimse-ai-agent-identity/) | 2025-10-20 | ▅ | ▃ | ▅ | ▅ | ▇ | Applies WIMSE (Workload Identity in Multi System Environments) framework to AI a... |
|
||||
| 3.0 | [draft-sipos-dtn-bp-safe](https://datatracker.ietf.org/doc/draft-sipos-dtn-bp-safe/) | 2025-12-07 | ▅ | █ | ▇ | ▅ | ▃ | Defines security association negotiation protocol for Bundle Protocol agents in ... |
|
||||
| 3.0 | [draft-chen-lake-edhoc-aka](https://datatracker.ietf.org/doc/draft-chen-lake-edhoc-aka/) | 2025-10-20 | ▅ | ▃ | ▅ | ▅ | ▇ | Defines EDHOC-AKA authentication method combining AKA protocol with EDHOC for mo... |
|
||||
| 3.0 | [draft-bernardos-cats-isac-uc](https://datatracker.ietf.org/doc/draft-bernardos-cats-isac-uc/) | 2026-01-05 | ▅ | ▃ | ▅ | ▅ | ▇ | Presents Integrated Sensing and Communications (ISAC) as a use case for CATS arc... |
|
||||
| 3.0 | [draft-wendt-stir-vesper](https://datatracker.ietf.org/doc/draft-wendt-stir-vesper/) | 2025-11-04 | ▅ | ▇ | ▇ | ▇ | ▃ | Formalizes framework for verifiable telephone number identity using delegate cer... |
|
||||
| 3.0 | [draft-ietf-lamps-e2e-mail-guidance](https://datatracker.ietf.org/doc/draft-ietf-lamps-e2e-mail-guidance/) | 2025-08-23 | ▃ | █ | ▅ | ▇ | ▃ | Provides comprehensive guidance for implementing end-to-end email encryption sec... |
|
||||
| 3.0 | [draft-nandakumar-a2a-moqt-transport](https://datatracker.ietf.org/doc/draft-nandakumar-a2a-moqt-transport/) | 2025-10-20 | ▇ | ▃ | █ | ▃ | ▇ | Identical specification to draft-a2a-moqt-transport for transporting Agent-to-Ag... |
|
||||
| 3.0 | [draft-zhang-agent-gap-network](https://datatracker.ietf.org/doc/draft-zhang-agent-gap-network/) | 2026-01-09 | ▅ | ▃ | ▃ | ▃ | ▇ | This draft identifies problems and gaps in mobile core networks for supporting A... |
|
||||
| 3.0 | [draft-cui-ai-agent-task](https://datatracker.ietf.org/doc/draft-cui-ai-agent-task/) | 2026-01-09 | ▅ | ▃ | ▃ | ▃ | ▇ | This draft proposes requirements for standardized AI agent protocols to enable t... |
|
||||
| 3.0 | [draft-hong-nmrg-agenticai-ps](https://datatracker.ietf.org/doc/draft-hong-nmrg-agenticai-ps/) | 2025-10-20 | ▅ | ▃ | ▇ | ▅ | ▇ | Presents problem statement and motivations for applying Agentic AI to network ma... |
|
||||
| 3.0 | [draft-zhao-nmrg-ai-agent-for-dtn](https://datatracker.ietf.org/doc/draft-zhao-nmrg-ai-agent-for-dtn/) | 2025-10-20 | ▇ | ▃ | ▅ | ▃ | ▅ | Proposes AI agent architecture for Digital Twin Networks, integrating autonomous... |
|
||||
| 3.0 | [draft-fu-nmop-agent-communication-framework](https://datatracker.ietf.org/doc/draft-fu-nmop-agent-communication-framework/) | 2026-01-25 | ▅ | ▃ | ▇ | ▅ | ▇ | Proposes a multi-agent communication framework for network AIOps with AI gateway... |
|
||||
| 3.0 | [draft-cui-dmsc-agent-cdi](https://datatracker.ietf.org/doc/draft-cui-dmsc-agent-cdi/) | 2026-02-11 | ▅ | ▃ | ▇ | ▅ | ▇ | Defines comprehensive framework for cross-domain AI agent interoperability inclu... |
|
||||
| 3.0 | [draft-leon-distributed-multi-signer](https://datatracker.ietf.org/doc/draft-leon-distributed-multi-signer/) | 2025-08-11 | ▅ | ▇ | ▅ | ▅ | ▃ | Defines distributed DNSSEC multi-signer architecture with multi-signer agents an... |
|
||||
| 3.0 | [draft-ietf-httpbis-rfc6265bis](https://datatracker.ietf.org/doc/draft-ietf-httpbis-rfc6265bis/) | 2025-12-09 | ▃ | █ | █ | █ | ▃ | Updates HTTP Cookie specification to replace RFC 6265 with improved security and... |
|
||||
| 3.0 | [draft-yang-dmsc-ioa-task-protocol](https://datatracker.ietf.org/doc/draft-yang-dmsc-ioa-task-protocol/) | 2026-01-29 | ▅ | ▃ | ▇ | ▅ | ▇ | Defines a protocol for distributed collaboration among heterogeneous AI agents, ... |
|
||||
| 3.0 | [draft-condrey-rats-witnessd-enrollment](https://datatracker.ietf.org/doc/draft-condrey-rats-witnessd-enrollment/) | 2026-02-07 | ▇ | ▃ | ▅ | ▃ | ▅ | Specifies trust anchor bootstrap protocol for proof of process framework. Define... |
|
||||
| 3.0 | [draft-pocero-authkem-ikr-edhoc](https://datatracker.ietf.org/doc/draft-pocero-authkem-ikr-edhoc/) | 2026-01-20 | ▅ | ▃ | ▇ | ▅ | ▇ | This draft proposes a KEM-based authentication variant for EDHOC that optimizes ... |
|
||||
| 2.9 | [draft-happel-structured-email-trust](https://datatracker.ietf.org/doc/draft-happel-structured-email-trust/) | 2025-08-30 | ▅ | ▅ | ▃ | ▃ | ▅ | Provides trust and security recommendations for handling structured data in emai... |
|
||||
| 2.9 | [draft-ramakrishna-satp-data-sharing](https://datatracker.ietf.org/doc/draft-ramakrishna-satp-data-sharing/) | 2025-09-15 | ▅ | ▅ | ▃ | ▃ | ▅ | Defines a DLT-neutral protocol for sharing asset views and metadata across block... |
|
||||
| 2.9 | [draft-bastian-jose-pkdh](https://datatracker.ietf.org/doc/draft-bastian-jose-pkdh/) | 2025-11-04 | ▅ | ▅ | ▃ | ▃ | ▅ | Defines a method to derive symmetric MAC keys from public information in JSON We... |
|
||||
| 2.9 | [draft-ietf-roll-enrollment-priority](https://datatracker.ietf.org/doc/draft-ietf-roll-enrollment-priority/) | 2026-02-20 | ▃ | ▇ | ▅ | ▅ | ▅ | Provides mechanism for RPL Root to control enrollment announcements and adjust e... |
|
||||
| 2.9 | [draft-zhang-rtgwg-ai-agents-troubleshooting](https://datatracker.ietf.org/doc/draft-zhang-rtgwg-ai-agents-troubleshooting/) | 2025-11-03 | ▅ | ▃ | ▅ | ▃ | ▇ | This draft defines use cases and communication protocol requirements for trouble... |
|
||||
| 2.9 | [draft-yl-agent-id-requirements](https://datatracker.ietf.org/doc/draft-yl-agent-id-requirements/) | 2026-01-03 | ▅ | ▃ | ▅ | ▃ | ▇ | This draft proposes requirements for digital identity management in AI agent com... |
|
||||
| 2.9 | [draft-wang-nmrg-magent-im](https://datatracker.ietf.org/doc/draft-wang-nmrg-magent-im/) | 2026-01-09 | ▅ | ▃ | ▅ | ▃ | ▇ | This draft proposes a protocol-agnostic data model for multi-agent communication... |
|
||||
| 2.9 | [draft-xie-ai-agent-multimodal](https://datatracker.ietf.org/doc/draft-xie-ai-agent-multimodal/) | 2026-01-09 | ▅ | ▃ | ▅ | ▃ | ▇ | This draft outlines requirements for multimodal communication in AI agent protoc... |
|
||||
|
||||
*N=Novelty, M=Maturity, O=Overlap, Mom=Momentum, R=Relevance (block height = score 1-5)*
|
||||
119
master-prompt.md
Normal file
119
master-prompt.md
Normal file
@@ -0,0 +1,119 @@
|
||||
# IETF Draft Analyzer — Master Prompt
|
||||
|
||||
## Vision
|
||||
|
||||
A tool to **track, categorize, compare, and rate** the growing flood of IETF Internet-Drafts related to AI and autonomous agents — helping an informed reader stay on top of novel ideas, spot overlaps, and identify gaps worth filling.
|
||||
|
||||
## Problem
|
||||
|
||||
The IETF is seeing a surge of AI/agent-related drafts. Many overlap significantly, some introduce genuinely novel concepts, and it's hard to maintain a mental map of the landscape. Manual tracking doesn't scale.
|
||||
|
||||
## Primary Data Sources
|
||||
|
||||
- **Recent drafts:** https://datatracker.ietf.org/doc/recent
|
||||
- **Keyword search (e.g. "agent"):** https://datatracker.ietf.org/doc/search?name=agent&sort=&rfcs=on&activedrafts=on&by=group&group=
|
||||
- **Datatracker API:** https://datatracker.ietf.org/api/ (machine-readable metadata)
|
||||
- Additional keyword searches: `ai`, `llm`, `autonomous`, `machine-learning`, `ml`, `intelligent`, `inference`, etc.
|
||||
|
||||
## Core Features
|
||||
|
||||
### 1. Draft Ingestion & Tracking
|
||||
- Fetch drafts from Datatracker (API + scraping where needed)
|
||||
- Track new drafts, revisions, and status changes over time
|
||||
- Store metadata: title, authors, abstract, WG, dates, status, keywords
|
||||
- Download and parse full draft text for deeper analysis
|
||||
|
||||
### 2. Categorization & Tagging
|
||||
- **Auto-categorize** drafts into topic clusters, e.g.:
|
||||
- Agent-to-agent communication protocols
|
||||
- AI safety / guardrails / alignment in networking
|
||||
- ML-based traffic management / optimization
|
||||
- Autonomous network operations (intent-based, closed-loop)
|
||||
- Identity / authentication for AI agents
|
||||
- Data formats / semantics for AI interop
|
||||
- Policy / governance / ethical frameworks
|
||||
- Support user-defined tags and manual overrides
|
||||
- Detect which IETF working groups / areas are involved
|
||||
|
||||
### 3. Overlap & Novelty Detection
|
||||
- **Similarity analysis** between drafts (abstract-level and full-text)
|
||||
- Semantic similarity (embeddings-based)
|
||||
- Structural similarity (do they define similar mechanisms?)
|
||||
- Flag clusters of highly overlapping drafts
|
||||
- Highlight **novel contributions** — ideas that don't appear elsewhere
|
||||
- Track how ideas evolve across draft revisions
|
||||
|
||||
### 4. Brief Rating / Assessment
|
||||
- Per-draft rating along dimensions like:
|
||||
- **Novelty** — How new/unique is the core idea?
|
||||
- **Maturity** — How complete and well-specified is the draft?
|
||||
- **Overlap** — How much does it duplicate existing work?
|
||||
- **Momentum** — Author track record, WG adoption, revision frequency
|
||||
- **Relevance** — How central is it to the AI/agent topic?
|
||||
- Generate a short (2–4 sentence) AI summary + assessment for each draft
|
||||
- Optional: composite score for quick sorting
|
||||
|
||||
### 5. Overview & Visualization
|
||||
- **Dashboard view** — sortable/filterable table of tracked drafts
|
||||
- **Landscape map** — visual clustering of drafts by topic similarity
|
||||
- **Timeline** — when drafts appeared, how the space is evolving
|
||||
- **Diff view** — compare two drafts side-by-side (key claims, mechanisms)
|
||||
- **Overlap matrix** — heatmap showing which drafts cover similar ground
|
||||
|
||||
### 6. Staying Informed
|
||||
- **Watch list** — mark drafts of special interest
|
||||
- **Change alerts** — notify on new drafts matching keywords, new revisions, status changes
|
||||
- **Periodic digest** — weekly/on-demand summary of what's new in the space
|
||||
- **Gap analysis** — suggest areas not yet covered by any draft
|
||||
|
||||
## Stretch / Nice-to-Have Features
|
||||
|
||||
- **Idea extraction** — pull out discrete technical ideas/mechanisms from each draft, track them independently
|
||||
- **Cross-reference with RFCs** — link drafts to existing standards they build on or conflict with
|
||||
- **Author network** — who collaborates with whom, which orgs are active
|
||||
- **Meeting tracking** — link to relevant IETF meeting agenda items, minutes, slides
|
||||
- **Export** — generate reports (markdown, PDF) for sharing or personal reference
|
||||
- **Personal notes** — attach annotations and thoughts to any draft
|
||||
|
||||
## Design Principles
|
||||
|
||||
- **Local-first** — runs on the user's machine, data stored locally
|
||||
- **CLI + optional web UI** — start simple (CLI/TUI), add a local web dashboard later
|
||||
- **LLM-assisted but transparent** — use AI for summarization/rating but always show reasoning
|
||||
- **Incremental** — can start with a small set of drafts and scale up
|
||||
- **Open data** — all source data comes from public IETF resources
|
||||
|
||||
## LLM Strategy
|
||||
|
||||
Two viable options — use the best tool for each job:
|
||||
|
||||
### Option A: Claude API (via subscription)
|
||||
- **Pro:** Superior reasoning for summarization, rating, novelty detection, and comparative analysis of dense technical text. IETF drafts are complex — quality matters here.
|
||||
- **Pro:** Better at structured output (JSON ratings, consistent categorization)
|
||||
- **Con:** API costs / rate limits (though subscription helps)
|
||||
- **Best for:** Summarization, rating, categorization, overlap analysis, gap detection
|
||||
|
||||
### Option B: Local Ollama
|
||||
- **Pro:** Free, private, no rate limits, works offline
|
||||
- **Pro:** Good enough for embeddings (e.g. `nomic-embed-text`, `mxbai-embed-large`)
|
||||
- **Con:** Smaller models struggle with nuanced technical assessment of IETF-grade content
|
||||
- **Best for:** Embeddings for similarity/clustering, bulk preprocessing, quick triage
|
||||
|
||||
### Recommended: Hybrid Approach
|
||||
| Task | Model |
|
||||
|------|-------|
|
||||
| **Embeddings** (similarity, clustering) | Ollama local (`nomic-embed-text` or similar) |
|
||||
| **Quick triage** (is this draft AI-related?) | Ollama local (fast, cheap) |
|
||||
| **Summarization & rating** | Claude (better quality on technical text) |
|
||||
| **Overlap/novelty analysis** | Claude (needs strong reasoning) |
|
||||
| **Gap analysis & insights** | Claude (creative + analytical) |
|
||||
|
||||
This keeps costs down (embeddings are the bulk operation) while using Claude where quality actually matters. The tool should support both backends with a simple config switch, so you can fall back to all-local or all-Claude as needed.
|
||||
|
||||
## Decisions Made
|
||||
|
||||
- **Tech stack:** Python
|
||||
- **Storage:** SQLite (single DB file, FTS5 for full-text search)
|
||||
- **Scope:** AI/agent-focused first, generalizable later
|
||||
- **Interface:** CLI + Markdown report output (v1)
|
||||
- **LLM:** Hybrid — Ollama for embeddings/triage, Claude for analysis/rating
|
||||
23
pyproject.toml
Normal file
23
pyproject.toml
Normal file
@@ -0,0 +1,23 @@
|
||||
[build-system]
|
||||
requires = ["setuptools>=68.0"]
|
||||
build-backend = "setuptools.build_meta"
|
||||
|
||||
[project]
|
||||
name = "ietf-draft-analyzer"
|
||||
version = "0.1.0"
|
||||
description = "Track, categorize, and rate AI/agent-related IETF Internet-Drafts"
|
||||
requires-python = ">=3.11"
|
||||
dependencies = [
|
||||
"click>=8.0",
|
||||
"httpx>=0.27",
|
||||
"anthropic>=0.40",
|
||||
"ollama>=0.4",
|
||||
"rich>=13.0",
|
||||
"numpy>=1.26",
|
||||
]
|
||||
|
||||
[project.scripts]
|
||||
ietf = "ietf_analyzer.cli:main"
|
||||
|
||||
[tool.setuptools.packages.find]
|
||||
where = ["src"]
|
||||
1
src/ietf_analyzer/__init__.py
Normal file
1
src/ietf_analyzer/__init__.py
Normal file
@@ -0,0 +1 @@
|
||||
"""IETF Draft Analyzer — Track, categorize, and rate AI/agent-related Internet-Drafts."""
|
||||
276
src/ietf_analyzer/analyzer.py
Normal file
276
src/ietf_analyzer/analyzer.py
Normal file
@@ -0,0 +1,276 @@
|
||||
"""Claude-based analysis — summarization, rating, categorization, overlap detection."""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
import hashlib
|
||||
import json
|
||||
from datetime import datetime, timezone
|
||||
|
||||
import anthropic
|
||||
from rich.console import Console
|
||||
from rich.progress import Progress, SpinnerColumn, TextColumn, BarColumn, MofNCompleteColumn
|
||||
|
||||
from .config import Config
|
||||
from .db import Database
|
||||
from .models import Draft, Rating
|
||||
|
||||
console = Console()
|
||||
|
||||
CATEGORIES_SHORT = [
|
||||
"A2A protocols", # Agent-to-agent communication protocols
|
||||
"AI safety/alignment", # AI safety / guardrails / alignment
|
||||
"ML traffic mgmt", # ML-based traffic management / optimization
|
||||
"Autonomous netops", # Autonomous network operations
|
||||
"Agent identity/auth", # Identity / authentication for AI agents
|
||||
"Data formats/interop",# Data formats / semantics for AI interop
|
||||
"Policy/governance", # Policy / governance / ethical frameworks
|
||||
"Model serving/inference", # AI model serving / inference protocols
|
||||
"Agent discovery/reg", # Agent discovery / registration
|
||||
"Human-agent interaction",
|
||||
"Other AI/agent",
|
||||
]
|
||||
|
||||
# Compact prompt — abstract only, saves ~10x tokens vs full-text
|
||||
RATE_PROMPT_COMPACT = """\
|
||||
Rate this IETF draft. JSON only.
|
||||
|
||||
{name} | {title} | {time} | {pages}pg
|
||||
Abstract: {abstract}
|
||||
|
||||
Return JSON: {{"s":"2-3 sentence summary","n":<1-5>,"nn":"novelty note","m":<1-5>,"mn":"maturity note","o":<1-5>,"on":"overlap note","mo":<1-5>,"mon":"momentum note","r":<1-5>,"rn":"relevance note","c":["categories"]}}
|
||||
|
||||
Scale: 1=very low..5=very high. Overlap: 1=unique,5=heavy overlap.
|
||||
Categories: {categories}
|
||||
JSON only, no fences."""
|
||||
|
||||
# Batch prompt — rate multiple drafts in one call
|
||||
BATCH_PROMPT = """\
|
||||
Rate each IETF draft below. Return a JSON array with one object per draft, in order.
|
||||
|
||||
{drafts_block}
|
||||
|
||||
Per-draft JSON: {{"name":"draft-name","s":"2-3 sentence summary","n":<1-5>,"nn":"novelty note","m":<1-5>,"mn":"maturity note","o":<1-5>,"on":"overlap with known drafts","mo":<1-5>,"mon":"momentum note","r":<1-5>,"rn":"relevance note","c":["categories"]}}
|
||||
|
||||
Scale: 1=very low..5=very high. Overlap: 1=unique,5=heavy overlap.
|
||||
Categories: {categories}
|
||||
Return ONLY a JSON array, no fences."""
|
||||
|
||||
COMPARE_PROMPT = """\
|
||||
Compare these IETF drafts — overlaps, unique ideas, complementary vs competing vs redundant.
|
||||
|
||||
{drafts_section}
|
||||
|
||||
Be specific about concrete mechanisms and design choices."""
|
||||
|
||||
|
||||
def _prompt_hash(text: str) -> str:
|
||||
return hashlib.sha256(text.encode()).hexdigest()[:16]
|
||||
|
||||
|
||||
class Analyzer:
|
||||
def __init__(self, config: Config | None = None, db: Database | None = None):
|
||||
self.config = config or Config.load()
|
||||
self.db = db or Database(self.config)
|
||||
try:
|
||||
self.client = anthropic.Anthropic()
|
||||
except Exception:
|
||||
console.print(
|
||||
"[red bold]No Anthropic API key found.[/]\n"
|
||||
"Set ANTHROPIC_API_KEY environment variable or run:\n"
|
||||
" export ANTHROPIC_API_KEY=sk-ant-..."
|
||||
)
|
||||
raise SystemExit(1)
|
||||
|
||||
def _parse_rating(self, draft_name: str, data: dict) -> Rating:
|
||||
"""Parse a rating from compact JSON keys."""
|
||||
return Rating(
|
||||
draft_name=draft_name,
|
||||
novelty=int(data.get("n", data.get("novelty", 3))),
|
||||
maturity=int(data.get("m", data.get("maturity", 3))),
|
||||
overlap=int(data.get("o", data.get("overlap", 3))),
|
||||
momentum=int(data.get("mo", data.get("momentum", 3))),
|
||||
relevance=int(data.get("r", data.get("relevance", 3))),
|
||||
summary=data.get("s", data.get("summary", "")),
|
||||
novelty_note=data.get("nn", data.get("novelty_note", "")),
|
||||
maturity_note=data.get("mn", data.get("maturity_note", "")),
|
||||
overlap_note=data.get("on", data.get("overlap_note", "")),
|
||||
momentum_note=data.get("mon", data.get("momentum_note", "")),
|
||||
relevance_note=data.get("rn", data.get("relevance_note", "")),
|
||||
categories=data.get("c", data.get("categories", [])),
|
||||
rated_at=datetime.now(timezone.utc).isoformat(),
|
||||
)
|
||||
|
||||
def _call_claude(self, prompt: str, max_tokens: int = 512) -> tuple[str, int, int]:
|
||||
"""Call Claude and return (text, input_tokens, output_tokens)."""
|
||||
resp = self.client.messages.create(
|
||||
model=self.config.claude_model,
|
||||
max_tokens=max_tokens,
|
||||
messages=[{"role": "user", "content": prompt}],
|
||||
)
|
||||
text = resp.content[0].text.strip()
|
||||
return text, resp.usage.input_tokens, resp.usage.output_tokens
|
||||
|
||||
def _extract_json(self, text: str) -> str:
|
||||
"""Strip markdown fences if present."""
|
||||
if text.startswith("```"):
|
||||
text = text.split("\n", 1)[1]
|
||||
if text.endswith("```"):
|
||||
text = text[:-3]
|
||||
return text.strip()
|
||||
|
||||
def rate_draft(self, draft_name: str, use_cache: bool = True) -> Rating | None:
|
||||
"""Analyze and rate a single draft."""
|
||||
draft = self.db.get_draft(draft_name)
|
||||
if draft is None:
|
||||
console.print(f"[red]Draft not found: {draft_name}[/]")
|
||||
return None
|
||||
|
||||
prompt = RATE_PROMPT_COMPACT.format(
|
||||
name=draft.name, title=draft.title, time=draft.date,
|
||||
pages=draft.pages or "?",
|
||||
abstract=draft.abstract[:2000],
|
||||
categories=", ".join(CATEGORIES_SHORT),
|
||||
)
|
||||
phash = _prompt_hash(prompt)
|
||||
|
||||
# Check cache
|
||||
if use_cache:
|
||||
cached = self.db.get_cached_response(draft_name, phash)
|
||||
if cached:
|
||||
try:
|
||||
data = json.loads(cached)
|
||||
rating = self._parse_rating(draft_name, data)
|
||||
self.db.upsert_rating(rating)
|
||||
draft.categories = rating.categories
|
||||
self.db.upsert_draft(draft)
|
||||
return rating
|
||||
except (json.JSONDecodeError, KeyError):
|
||||
pass # Re-analyze if cache is corrupt
|
||||
|
||||
try:
|
||||
text, in_tok, out_tok = self._call_claude(prompt, max_tokens=512)
|
||||
text = self._extract_json(text)
|
||||
data = json.loads(text)
|
||||
|
||||
# Cache the raw response
|
||||
self.db.cache_response(
|
||||
draft_name, phash, self.config.claude_model,
|
||||
prompt, text, in_tok, out_tok,
|
||||
)
|
||||
except (json.JSONDecodeError, anthropic.APIError, IndexError, KeyError) as e:
|
||||
console.print(f"[red]Failed {draft_name}: {e}[/]")
|
||||
return None
|
||||
|
||||
rating = self._parse_rating(draft_name, data)
|
||||
self.db.upsert_rating(rating)
|
||||
draft.categories = rating.categories
|
||||
self.db.upsert_draft(draft)
|
||||
return rating
|
||||
|
||||
def rate_batch(self, drafts: list[Draft], batch_size: int = 5) -> int:
|
||||
"""Rate multiple drafts in batched API calls to save tokens."""
|
||||
count = 0
|
||||
for i in range(0, len(drafts), batch_size):
|
||||
batch = drafts[i:i + batch_size]
|
||||
|
||||
# Build batch prompt
|
||||
drafts_block = ""
|
||||
for d in batch:
|
||||
drafts_block += f"\n---\n{d.name} | {d.title} | {d.date} | {d.pages or '?'}pg\nAbstract: {d.abstract[:1500]}\n"
|
||||
|
||||
prompt = BATCH_PROMPT.format(
|
||||
drafts_block=drafts_block,
|
||||
categories=", ".join(CATEGORIES_SHORT),
|
||||
)
|
||||
phash = _prompt_hash(prompt)
|
||||
|
||||
try:
|
||||
text, in_tok, out_tok = self._call_claude(
|
||||
prompt, max_tokens=400 * len(batch)
|
||||
)
|
||||
text = self._extract_json(text)
|
||||
results = json.loads(text)
|
||||
if not isinstance(results, list):
|
||||
results = [results]
|
||||
|
||||
for j, data in enumerate(results):
|
||||
draft_name = data.get("name", batch[j].name if j < len(batch) else None)
|
||||
if not draft_name:
|
||||
continue
|
||||
# Cache each result individually
|
||||
self.db.cache_response(
|
||||
draft_name, _prompt_hash(f"batch-{phash}-{draft_name}"),
|
||||
self.config.claude_model, f"batch[{i}]", json.dumps(data),
|
||||
in_tok // len(results), out_tok // len(results),
|
||||
)
|
||||
rating = self._parse_rating(draft_name, data)
|
||||
self.db.upsert_rating(rating)
|
||||
draft = self.db.get_draft(draft_name)
|
||||
if draft:
|
||||
draft.categories = rating.categories
|
||||
self.db.upsert_draft(draft)
|
||||
count += 1
|
||||
except (json.JSONDecodeError, anthropic.APIError) as e:
|
||||
console.print(f"[red]Batch {i//batch_size+1} failed: {e}[/]")
|
||||
# Fallback: rate individually
|
||||
for d in batch:
|
||||
r = self.rate_draft(d.name)
|
||||
if r:
|
||||
count += 1
|
||||
|
||||
return count
|
||||
|
||||
def rate_all_unrated(self, limit: int = 300, batch_size: int = 5) -> int:
|
||||
"""Rate all drafts that haven't been rated yet, using batching."""
|
||||
unrated = self.db.unrated_drafts(limit=limit)
|
||||
if not unrated:
|
||||
console.print("All drafts already rated.")
|
||||
return 0
|
||||
|
||||
console.print(f"Rating [bold]{len(unrated)}[/] drafts in batches of {batch_size}...")
|
||||
count = 0
|
||||
with Progress(
|
||||
SpinnerColumn(),
|
||||
TextColumn("[progress.description]{task.description}"),
|
||||
BarColumn(),
|
||||
MofNCompleteColumn(),
|
||||
console=console,
|
||||
) as progress:
|
||||
task = progress.add_task("Analyzing...", total=len(unrated))
|
||||
for i in range(0, len(unrated), batch_size):
|
||||
batch = unrated[i:i + batch_size]
|
||||
names = ", ".join(d.name.split("-")[-1][:12] for d in batch)
|
||||
progress.update(task, description=f"Batch: {names}")
|
||||
n = self.rate_batch(batch, batch_size=batch_size)
|
||||
count += n
|
||||
progress.advance(task, advance=len(batch))
|
||||
|
||||
in_tok, out_tok = self.db.total_tokens_used()
|
||||
console.print(
|
||||
f"Rated [bold green]{count}[/] drafts "
|
||||
f"| Total tokens used: {in_tok:,} in + {out_tok:,} out"
|
||||
)
|
||||
return count
|
||||
|
||||
def compare_drafts(self, draft_names: list[str]) -> str:
|
||||
"""Compare multiple drafts and return analysis text."""
|
||||
parts = []
|
||||
for name in draft_names:
|
||||
draft = self.db.get_draft(name)
|
||||
if draft is None:
|
||||
console.print(f"[yellow]Skipping unknown draft: {name}[/]")
|
||||
continue
|
||||
parts.append(f"### {draft.title}\n**{name}**\n{draft.abstract}")
|
||||
|
||||
if len(parts) < 2:
|
||||
return "Need at least 2 valid drafts to compare."
|
||||
|
||||
prompt = COMPARE_PROMPT.format(
|
||||
drafts_section="\n\n---\n\n".join(parts)
|
||||
)
|
||||
|
||||
try:
|
||||
text, _, _ = self._call_claude(prompt, max_tokens=2048)
|
||||
return text
|
||||
except anthropic.APIError as e:
|
||||
return f"Error: {e}"
|
||||
405
src/ietf_analyzer/cli.py
Normal file
405
src/ietf_analyzer/cli.py
Normal file
@@ -0,0 +1,405 @@
|
||||
"""CLI entry point — all user-facing commands."""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
import click
|
||||
from rich.console import Console
|
||||
from rich.table import Table
|
||||
|
||||
from .config import Config
|
||||
from .db import Database
|
||||
|
||||
console = Console()
|
||||
|
||||
|
||||
def _get_config() -> Config:
|
||||
cfg = Config.load()
|
||||
return cfg
|
||||
|
||||
|
||||
@click.group()
|
||||
@click.version_option(version="0.1.0")
|
||||
def main():
|
||||
"""IETF Draft Analyzer — track, categorize, and rate AI/agent Internet-Drafts."""
|
||||
pass
|
||||
|
||||
|
||||
# ── fetch ────────────────────────────────────────────────────────────────────
|
||||
|
||||
|
||||
@main.command()
|
||||
@click.option("--keywords", "-k", multiple=True, help="Extra keywords to search for")
|
||||
@click.option("--since", "-s", help="Only fetch drafts newer than this date (YYYY-MM-DD)")
|
||||
@click.option("--download-text/--no-download-text", default=True, help="Download full text of drafts")
|
||||
def fetch(keywords: tuple[str, ...], since: str | None, download_text: bool):
|
||||
"""Fetch AI/agent drafts from IETF Datatracker."""
|
||||
from .fetcher import Fetcher
|
||||
|
||||
cfg = _get_config()
|
||||
db = Database(cfg)
|
||||
fetcher = Fetcher(cfg)
|
||||
|
||||
kw_list = list(cfg.search_keywords)
|
||||
if keywords:
|
||||
kw_list.extend(keywords)
|
||||
|
||||
try:
|
||||
drafts = fetcher.search_drafts(keywords=kw_list, since=since)
|
||||
for draft in drafts:
|
||||
db.upsert_draft(draft)
|
||||
console.print(f"Stored [bold green]{len(drafts)}[/] drafts in database")
|
||||
|
||||
if download_text:
|
||||
missing = db.drafts_without_text()
|
||||
if missing:
|
||||
console.print(f"Downloading text for [bold]{len(missing)}[/] drafts...")
|
||||
texts = fetcher.download_texts(missing)
|
||||
for name, text in texts.items():
|
||||
draft = db.get_draft(name)
|
||||
if draft:
|
||||
draft.full_text = text
|
||||
db.upsert_draft(draft)
|
||||
finally:
|
||||
fetcher.close()
|
||||
db.close()
|
||||
|
||||
|
||||
# ── list ─────────────────────────────────────────────────────────────────────
|
||||
|
||||
|
||||
@main.command("list")
|
||||
@click.option("--limit", "-n", default=30, help="Number of drafts to show")
|
||||
@click.option("--sort", "-s", default="time DESC", help="Sort order (e.g. 'time DESC', 'name ASC')")
|
||||
def list_drafts(limit: int, sort: str):
|
||||
"""List tracked drafts."""
|
||||
cfg = _get_config()
|
||||
db = Database(cfg)
|
||||
try:
|
||||
drafts = db.list_drafts(limit=limit, order_by=sort)
|
||||
total = db.count_drafts()
|
||||
|
||||
table = Table(title=f"Tracked Drafts ({total} total, showing {len(drafts)})")
|
||||
table.add_column("Date", style="dim", width=10)
|
||||
table.add_column("Name", style="cyan", max_width=55)
|
||||
table.add_column("Title", max_width=50)
|
||||
table.add_column("Pg", justify="right", width=4)
|
||||
table.add_column("Text", justify="center", width=4)
|
||||
table.add_column("Rated", justify="center", width=5)
|
||||
|
||||
for d in drafts:
|
||||
has_text = "\u2713" if d.full_text else ""
|
||||
rated = "\u2713" if db.get_rating(d.name) else ""
|
||||
table.add_row(d.date, d.name, d.title[:50], str(d.pages or ""), has_text, rated)
|
||||
|
||||
console.print(table)
|
||||
finally:
|
||||
db.close()
|
||||
|
||||
|
||||
# ── search ───────────────────────────────────────────────────────────────────
|
||||
|
||||
|
||||
@main.command()
|
||||
@click.argument("query")
|
||||
@click.option("--limit", "-n", default=20, help="Max results")
|
||||
def search(query: str, limit: int):
|
||||
"""Full-text search across stored drafts."""
|
||||
cfg = _get_config()
|
||||
db = Database(cfg)
|
||||
try:
|
||||
results = db.search_drafts(query, limit=limit)
|
||||
if not results:
|
||||
console.print(f"No results for [bold]{query}[/]")
|
||||
return
|
||||
|
||||
table = Table(title=f"Search: {query} ({len(results)} results)")
|
||||
table.add_column("Date", style="dim", width=10)
|
||||
table.add_column("Name", style="cyan")
|
||||
table.add_column("Title")
|
||||
|
||||
for d in results:
|
||||
table.add_row(d.date, d.name, d.title[:60])
|
||||
|
||||
console.print(table)
|
||||
finally:
|
||||
db.close()
|
||||
|
||||
|
||||
# ── show ─────────────────────────────────────────────────────────────────────
|
||||
|
||||
|
||||
@main.command()
|
||||
@click.argument("name")
|
||||
def show(name: str):
|
||||
"""Show detailed info for a draft."""
|
||||
from .reports import Reporter
|
||||
|
||||
cfg = _get_config()
|
||||
db = Database(cfg)
|
||||
reporter = Reporter(cfg, db)
|
||||
try:
|
||||
draft = db.get_draft(name)
|
||||
if draft is None:
|
||||
console.print(f"[red]Draft not found: {name}[/]")
|
||||
return
|
||||
|
||||
rating = db.get_rating(name)
|
||||
|
||||
console.print(f"\n[bold]{draft.title}[/]")
|
||||
console.print(f"[dim]{draft.name}[/] rev {draft.rev} | {draft.date} | {draft.pages or '?'} pages")
|
||||
console.print(f"Group: {draft.group or 'individual'} | {draft.datatracker_url}")
|
||||
console.print(f"\n[italic]{draft.abstract}[/]\n")
|
||||
|
||||
if rating:
|
||||
console.print("[bold]AI Assessment[/]")
|
||||
console.print(f" Score: [bold green]{rating.composite_score:.1f}[/]")
|
||||
console.print(f" Summary: {rating.summary}\n")
|
||||
|
||||
table = Table(show_header=True)
|
||||
table.add_column("Dimension", width=12)
|
||||
table.add_column("Score", justify="center", width=7)
|
||||
table.add_column("Notes")
|
||||
table.add_row("Novelty", f"{rating.novelty}/5", rating.novelty_note)
|
||||
table.add_row("Maturity", f"{rating.maturity}/5", rating.maturity_note)
|
||||
table.add_row("Overlap", f"{rating.overlap}/5", rating.overlap_note)
|
||||
table.add_row("Momentum", f"{rating.momentum}/5", rating.momentum_note)
|
||||
table.add_row("Relevance", f"{rating.relevance}/5", rating.relevance_note)
|
||||
console.print(table)
|
||||
|
||||
if rating.categories:
|
||||
console.print(f"\nCategories: {', '.join(rating.categories)}")
|
||||
else:
|
||||
console.print("[dim]Not yet rated — run: ietf analyze {name}[/]")
|
||||
|
||||
# Save detailed report too
|
||||
path = reporter.draft_detail(name)
|
||||
if path:
|
||||
console.print(f"\n[dim]Report saved: {path}[/]")
|
||||
finally:
|
||||
db.close()
|
||||
|
||||
|
||||
# ── analyze ──────────────────────────────────────────────────────────────────
|
||||
|
||||
|
||||
@main.command()
|
||||
@click.argument("name", required=False)
|
||||
@click.option("--all", "analyze_all", is_flag=True, help="Analyze all unrated drafts")
|
||||
@click.option("--limit", "-n", default=50, help="Max drafts to analyze (with --all)")
|
||||
def analyze(name: str | None, analyze_all: bool, limit: int):
|
||||
"""Analyze and rate drafts using Claude."""
|
||||
from .analyzer import Analyzer
|
||||
|
||||
cfg = _get_config()
|
||||
db = Database(cfg)
|
||||
analyzer = Analyzer(cfg, db)
|
||||
|
||||
try:
|
||||
if analyze_all:
|
||||
count = analyzer.rate_all_unrated(limit=limit)
|
||||
console.print(f"Analyzed [bold green]{count}[/] drafts")
|
||||
elif name:
|
||||
rating = analyzer.rate_draft(name)
|
||||
if rating:
|
||||
console.print(f"\n[bold green]Rating for {name}:[/]")
|
||||
console.print(f" Score: {rating.composite_score:.1f}")
|
||||
console.print(f" Summary: {rating.summary}")
|
||||
console.print(f" Novelty={rating.novelty} Maturity={rating.maturity} "
|
||||
f"Overlap={rating.overlap} Momentum={rating.momentum} "
|
||||
f"Relevance={rating.relevance}")
|
||||
else:
|
||||
console.print("[red]Analysis failed[/]")
|
||||
else:
|
||||
console.print("Provide a draft name or use --all")
|
||||
finally:
|
||||
db.close()
|
||||
|
||||
|
||||
# ── compare ──────────────────────────────────────────────────────────────────
|
||||
|
||||
|
||||
@main.command()
|
||||
@click.argument("names", nargs=-1, required=True)
|
||||
def compare(names: tuple[str, ...]):
|
||||
"""Compare multiple drafts for overlap and unique contributions."""
|
||||
from .analyzer import Analyzer
|
||||
|
||||
cfg = _get_config()
|
||||
db = Database(cfg)
|
||||
analyzer = Analyzer(cfg, db)
|
||||
|
||||
try:
|
||||
result = analyzer.compare_drafts(list(names))
|
||||
console.print(result)
|
||||
finally:
|
||||
db.close()
|
||||
|
||||
|
||||
# ── embed ────────────────────────────────────────────────────────────────────
|
||||
|
||||
|
||||
@main.command()
|
||||
def embed():
|
||||
"""Generate embeddings for all drafts (requires Ollama)."""
|
||||
from .embeddings import Embedder
|
||||
|
||||
cfg = _get_config()
|
||||
db = Database(cfg)
|
||||
embedder = Embedder(cfg, db)
|
||||
|
||||
try:
|
||||
count = embedder.embed_all_missing()
|
||||
console.print(f"Embedded [bold green]{count}[/] drafts")
|
||||
finally:
|
||||
db.close()
|
||||
|
||||
|
||||
# ── similar ──────────────────────────────────────────────────────────────────
|
||||
|
||||
|
||||
@main.command()
|
||||
@click.argument("name")
|
||||
@click.option("--top", "-n", default=10, help="Number of similar drafts to show")
|
||||
def similar(name: str, top: int):
|
||||
"""Find drafts most similar to a given draft."""
|
||||
from .embeddings import Embedder
|
||||
|
||||
cfg = _get_config()
|
||||
db = Database(cfg)
|
||||
embedder = Embedder(cfg, db)
|
||||
|
||||
try:
|
||||
results = embedder.find_similar(name, top_n=top)
|
||||
if not results:
|
||||
console.print(f"[yellow]No similar drafts found (need embeddings — run `ietf embed` first)[/]")
|
||||
return
|
||||
|
||||
table = Table(title=f"Drafts similar to {name}")
|
||||
table.add_column("Similarity", justify="right", width=10)
|
||||
table.add_column("Draft", style="cyan")
|
||||
table.add_column("Title")
|
||||
|
||||
for sim_name, score in results:
|
||||
draft = db.get_draft(sim_name)
|
||||
title = draft.title[:60] if draft else ""
|
||||
table.add_row(f"{score:.3f}", sim_name, title)
|
||||
|
||||
console.print(table)
|
||||
finally:
|
||||
db.close()
|
||||
|
||||
|
||||
# ── clusters ─────────────────────────────────────────────────────────────────
|
||||
|
||||
|
||||
@main.command()
|
||||
@click.option("--threshold", "-t", default=0.85, help="Similarity threshold for clustering")
|
||||
def clusters(threshold: float):
|
||||
"""Find clusters of highly similar (potentially overlapping) drafts."""
|
||||
from .embeddings import Embedder
|
||||
|
||||
cfg = _get_config()
|
||||
db = Database(cfg)
|
||||
embedder = Embedder(cfg, db)
|
||||
|
||||
try:
|
||||
cluster_list = embedder.find_clusters(threshold=threshold)
|
||||
if not cluster_list:
|
||||
console.print("No clusters found at this threshold.")
|
||||
return
|
||||
|
||||
console.print(f"\n[bold]Found {len(cluster_list)} clusters[/] (threshold={threshold})\n")
|
||||
for i, cluster in enumerate(cluster_list, 1):
|
||||
console.print(f"[bold cyan]Cluster {i}[/] ({len(cluster)} drafts):")
|
||||
for name in cluster:
|
||||
draft = db.get_draft(name)
|
||||
title = draft.title[:60] if draft else ""
|
||||
console.print(f" - {name} [dim]{title}[/]")
|
||||
console.print()
|
||||
finally:
|
||||
db.close()
|
||||
|
||||
|
||||
# ── report ───────────────────────────────────────────────────────────────────
|
||||
|
||||
|
||||
@main.group()
|
||||
def report():
|
||||
"""Generate markdown reports."""
|
||||
pass
|
||||
|
||||
|
||||
@report.command()
|
||||
def overview():
|
||||
"""Overview table of all rated drafts."""
|
||||
from .reports import Reporter
|
||||
cfg = _get_config()
|
||||
db = Database(cfg)
|
||||
reporter = Reporter(cfg, db)
|
||||
try:
|
||||
path = reporter.overview()
|
||||
console.print(f"Report saved: [bold]{path}[/]")
|
||||
finally:
|
||||
db.close()
|
||||
|
||||
|
||||
@report.command()
|
||||
def landscape():
|
||||
"""Category-grouped landscape view."""
|
||||
from .reports import Reporter
|
||||
cfg = _get_config()
|
||||
db = Database(cfg)
|
||||
reporter = Reporter(cfg, db)
|
||||
try:
|
||||
path = reporter.landscape()
|
||||
console.print(f"Report saved: [bold]{path}[/]")
|
||||
finally:
|
||||
db.close()
|
||||
|
||||
|
||||
@report.command()
|
||||
@click.option("--days", "-d", default=7, help="Look back N days")
|
||||
def digest(days: int):
|
||||
"""What's new digest."""
|
||||
from .reports import Reporter
|
||||
cfg = _get_config()
|
||||
db = Database(cfg)
|
||||
reporter = Reporter(cfg, db)
|
||||
try:
|
||||
path = reporter.digest(since_days=days)
|
||||
console.print(f"Report saved: [bold]{path}[/]")
|
||||
finally:
|
||||
db.close()
|
||||
|
||||
|
||||
# ── config ───────────────────────────────────────────────────────────────────
|
||||
|
||||
|
||||
@main.command("config")
|
||||
@click.option("--set", "set_key", nargs=2, help="Set a config key (e.g. --set claude_model claude-opus-4-20250514)")
|
||||
def config_cmd(set_key: tuple[str, str] | None):
|
||||
"""Show or modify configuration."""
|
||||
from dataclasses import asdict
|
||||
cfg = _get_config()
|
||||
|
||||
if set_key:
|
||||
key, value = set_key
|
||||
if hasattr(cfg, key):
|
||||
# Coerce types
|
||||
current = getattr(cfg, key)
|
||||
if isinstance(current, float):
|
||||
value = float(value)
|
||||
elif isinstance(current, int):
|
||||
value = int(value)
|
||||
elif isinstance(current, list):
|
||||
import json
|
||||
value = json.loads(value)
|
||||
setattr(cfg, key, value)
|
||||
cfg.save()
|
||||
console.print(f"Set [bold]{key}[/] = {value}")
|
||||
else:
|
||||
console.print(f"[red]Unknown config key: {key}[/]")
|
||||
else:
|
||||
from dataclasses import asdict
|
||||
for key, val in asdict(cfg).items():
|
||||
console.print(f" [bold]{key}:[/] {val}")
|
||||
44
src/ietf_analyzer/config.py
Normal file
44
src/ietf_analyzer/config.py
Normal file
@@ -0,0 +1,44 @@
|
||||
"""Configuration management."""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
import json
|
||||
from dataclasses import dataclass, field, asdict
|
||||
from pathlib import Path
|
||||
|
||||
DEFAULT_DATA_DIR = Path(__file__).resolve().parent.parent.parent / "data"
|
||||
CONFIG_FILE = DEFAULT_DATA_DIR / "config.json"
|
||||
|
||||
DEFAULT_KEYWORDS = [
|
||||
"agent",
|
||||
"ai-agent",
|
||||
"llm",
|
||||
"autonomous",
|
||||
"machine-learning",
|
||||
"artificial-intelligence",
|
||||
]
|
||||
|
||||
|
||||
@dataclass
|
||||
class Config:
|
||||
data_dir: str = str(DEFAULT_DATA_DIR)
|
||||
db_path: str = str(DEFAULT_DATA_DIR / "drafts.db")
|
||||
ollama_url: str = "http://localhost:11434"
|
||||
ollama_embed_model: str = "nomic-embed-text"
|
||||
claude_model: str = "claude-sonnet-4-20250514"
|
||||
search_keywords: list[str] = field(default_factory=lambda: list(DEFAULT_KEYWORDS))
|
||||
# Only fetch drafts newer than this (ISO date string)
|
||||
fetch_since: str = "2024-01-01"
|
||||
# Polite delay between API requests (seconds)
|
||||
fetch_delay: float = 0.5
|
||||
|
||||
def save(self) -> None:
|
||||
Path(self.data_dir).mkdir(parents=True, exist_ok=True)
|
||||
CONFIG_FILE.write_text(json.dumps(asdict(self), indent=2))
|
||||
|
||||
@classmethod
|
||||
def load(cls) -> Config:
|
||||
if CONFIG_FILE.exists():
|
||||
data = json.loads(CONFIG_FILE.read_text())
|
||||
return cls(**{k: v for k, v in data.items() if k in cls.__dataclass_fields__})
|
||||
return cls()
|
||||
375
src/ietf_analyzer/db.py
Normal file
375
src/ietf_analyzer/db.py
Normal file
@@ -0,0 +1,375 @@
|
||||
"""SQLite database layer with FTS5 full-text search."""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
import json
|
||||
import sqlite3
|
||||
from datetime import datetime, timezone
|
||||
from pathlib import Path
|
||||
|
||||
import numpy as np
|
||||
|
||||
from .config import Config
|
||||
from .models import Draft, Rating
|
||||
|
||||
SCHEMA = """
|
||||
CREATE TABLE IF NOT EXISTS drafts (
|
||||
name TEXT PRIMARY KEY,
|
||||
rev TEXT NOT NULL,
|
||||
title TEXT NOT NULL,
|
||||
abstract TEXT NOT NULL DEFAULT '',
|
||||
time TEXT,
|
||||
dt_id INTEGER,
|
||||
pages INTEGER,
|
||||
words INTEGER,
|
||||
"group" TEXT,
|
||||
group_uri TEXT,
|
||||
expires TEXT,
|
||||
ad TEXT,
|
||||
shepherd TEXT,
|
||||
states TEXT DEFAULT '[]', -- JSON array
|
||||
full_text TEXT,
|
||||
categories TEXT DEFAULT '[]', -- JSON array
|
||||
tags TEXT DEFAULT '[]', -- JSON array
|
||||
fetched_at TEXT
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS ratings (
|
||||
draft_name TEXT PRIMARY KEY REFERENCES drafts(name),
|
||||
novelty INTEGER NOT NULL,
|
||||
maturity INTEGER NOT NULL,
|
||||
overlap INTEGER NOT NULL,
|
||||
momentum INTEGER NOT NULL,
|
||||
relevance INTEGER NOT NULL,
|
||||
summary TEXT NOT NULL DEFAULT '',
|
||||
novelty_note TEXT DEFAULT '',
|
||||
maturity_note TEXT DEFAULT '',
|
||||
overlap_note TEXT DEFAULT '',
|
||||
momentum_note TEXT DEFAULT '',
|
||||
relevance_note TEXT DEFAULT '',
|
||||
categories TEXT DEFAULT '[]', -- JSON array
|
||||
rated_at TEXT
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS embeddings (
|
||||
draft_name TEXT PRIMARY KEY REFERENCES drafts(name),
|
||||
model TEXT NOT NULL,
|
||||
vector BLOB NOT NULL, -- numpy float32 array as bytes
|
||||
created_at TEXT
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS llm_cache (
|
||||
draft_name TEXT NOT NULL,
|
||||
prompt_hash TEXT NOT NULL,
|
||||
model TEXT NOT NULL,
|
||||
request_json TEXT NOT NULL, -- full prompt sent
|
||||
response_json TEXT NOT NULL, -- raw Claude response
|
||||
input_tokens INTEGER,
|
||||
output_tokens INTEGER,
|
||||
created_at TEXT,
|
||||
PRIMARY KEY (draft_name, prompt_hash)
|
||||
);
|
||||
|
||||
CREATE VIRTUAL TABLE IF NOT EXISTS drafts_fts USING fts5(
|
||||
name, title, abstract, full_text,
|
||||
content='drafts',
|
||||
content_rowid='rowid'
|
||||
);
|
||||
|
||||
-- Triggers to keep FTS index in sync
|
||||
CREATE TRIGGER IF NOT EXISTS drafts_ai AFTER INSERT ON drafts BEGIN
|
||||
INSERT INTO drafts_fts(rowid, name, title, abstract, full_text)
|
||||
VALUES (new.rowid, new.name, new.title, new.abstract, new.full_text);
|
||||
END;
|
||||
|
||||
CREATE TRIGGER IF NOT EXISTS drafts_ad AFTER DELETE ON drafts BEGIN
|
||||
INSERT INTO drafts_fts(drafts_fts, rowid, name, title, abstract, full_text)
|
||||
VALUES ('delete', old.rowid, old.name, old.title, old.abstract, old.full_text);
|
||||
END;
|
||||
|
||||
CREATE TRIGGER IF NOT EXISTS drafts_au AFTER UPDATE ON drafts BEGIN
|
||||
INSERT INTO drafts_fts(drafts_fts, rowid, name, title, abstract, full_text)
|
||||
VALUES ('delete', old.rowid, old.name, old.title, old.abstract, old.full_text);
|
||||
INSERT INTO drafts_fts(rowid, name, title, abstract, full_text)
|
||||
VALUES (new.rowid, new.name, new.title, new.abstract, new.full_text);
|
||||
END;
|
||||
"""
|
||||
|
||||
|
||||
class Database:
|
||||
def __init__(self, config: Config | None = None):
|
||||
self.config = config or Config.load()
|
||||
self.db_path = self.config.db_path
|
||||
Path(self.db_path).parent.mkdir(parents=True, exist_ok=True)
|
||||
self._conn: sqlite3.Connection | None = None
|
||||
|
||||
@property
|
||||
def conn(self) -> sqlite3.Connection:
|
||||
if self._conn is None:
|
||||
self._conn = sqlite3.connect(self.db_path)
|
||||
self._conn.row_factory = sqlite3.Row
|
||||
self._conn.execute("PRAGMA journal_mode=WAL")
|
||||
self._conn.execute("PRAGMA foreign_keys=ON")
|
||||
self._conn.executescript(SCHEMA)
|
||||
return self._conn
|
||||
|
||||
def close(self) -> None:
|
||||
if self._conn:
|
||||
self._conn.close()
|
||||
self._conn = None
|
||||
|
||||
# --- Drafts ---
|
||||
|
||||
def upsert_draft(self, draft: Draft) -> None:
|
||||
self.conn.execute(
|
||||
"""INSERT INTO drafts (name, rev, title, abstract, time, dt_id, pages, words,
|
||||
"group", group_uri, expires, ad, shepherd, states, full_text, categories, tags, fetched_at)
|
||||
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
|
||||
ON CONFLICT(name) DO UPDATE SET
|
||||
rev=excluded.rev, title=excluded.title, abstract=excluded.abstract,
|
||||
time=excluded.time, dt_id=excluded.dt_id, pages=excluded.pages,
|
||||
words=excluded.words, "group"=excluded."group", group_uri=excluded.group_uri,
|
||||
expires=excluded.expires, ad=excluded.ad, shepherd=excluded.shepherd,
|
||||
states=excluded.states,
|
||||
full_text=COALESCE(excluded.full_text, full_text),
|
||||
categories=excluded.categories, tags=excluded.tags,
|
||||
fetched_at=excluded.fetched_at
|
||||
""",
|
||||
(
|
||||
draft.name, draft.rev, draft.title, draft.abstract, draft.time,
|
||||
draft.dt_id, draft.pages, draft.words, draft.group, draft.group_uri,
|
||||
draft.expires, draft.ad, draft.shepherd,
|
||||
json.dumps(draft.states), draft.full_text,
|
||||
json.dumps(draft.categories), json.dumps(draft.tags),
|
||||
draft.fetched_at or datetime.now(timezone.utc).isoformat(),
|
||||
),
|
||||
)
|
||||
self.conn.commit()
|
||||
|
||||
def get_draft(self, name: str) -> Draft | None:
|
||||
row = self.conn.execute("SELECT * FROM drafts WHERE name = ?", (name,)).fetchone()
|
||||
if row is None:
|
||||
return None
|
||||
return self._row_to_draft(row)
|
||||
|
||||
def list_drafts(
|
||||
self,
|
||||
limit: int = 100,
|
||||
offset: int = 0,
|
||||
order_by: str = "time DESC",
|
||||
) -> list[Draft]:
|
||||
# Sanitize order_by to prevent injection
|
||||
allowed = {"time", "name", "title", "pages", "words", "fetched_at"}
|
||||
parts = order_by.split()
|
||||
col = parts[0] if parts else "time"
|
||||
direction = parts[1].upper() if len(parts) > 1 else "DESC"
|
||||
if col not in allowed:
|
||||
col = "time"
|
||||
if direction not in ("ASC", "DESC"):
|
||||
direction = "DESC"
|
||||
safe_order = f'"{col}" {direction}' if col == "group" else f"{col} {direction}"
|
||||
|
||||
rows = self.conn.execute(
|
||||
f"SELECT * FROM drafts ORDER BY {safe_order} LIMIT ? OFFSET ?",
|
||||
(limit, offset),
|
||||
).fetchall()
|
||||
return [self._row_to_draft(r) for r in rows]
|
||||
|
||||
def count_drafts(self) -> int:
|
||||
return self.conn.execute("SELECT COUNT(*) FROM drafts").fetchone()[0]
|
||||
|
||||
def search_drafts(self, query: str, limit: int = 50) -> list[Draft]:
|
||||
rows = self.conn.execute(
|
||||
"""SELECT d.* FROM drafts d
|
||||
JOIN drafts_fts f ON d.rowid = f.rowid
|
||||
WHERE drafts_fts MATCH ?
|
||||
ORDER BY rank
|
||||
LIMIT ?""",
|
||||
(query, limit),
|
||||
).fetchall()
|
||||
return [self._row_to_draft(r) for r in rows]
|
||||
|
||||
def drafts_without_text(self, limit: int = 100) -> list[Draft]:
|
||||
rows = self.conn.execute(
|
||||
"SELECT * FROM drafts WHERE full_text IS NULL LIMIT ?", (limit,)
|
||||
).fetchall()
|
||||
return [self._row_to_draft(r) for r in rows]
|
||||
|
||||
# --- Ratings ---
|
||||
|
||||
def upsert_rating(self, rating: Rating) -> None:
|
||||
self.conn.execute(
|
||||
"""INSERT INTO ratings (draft_name, novelty, maturity, overlap, momentum, relevance,
|
||||
summary, novelty_note, maturity_note, overlap_note, momentum_note, relevance_note,
|
||||
categories, rated_at)
|
||||
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
|
||||
ON CONFLICT(draft_name) DO UPDATE SET
|
||||
novelty=excluded.novelty, maturity=excluded.maturity, overlap=excluded.overlap,
|
||||
momentum=excluded.momentum, relevance=excluded.relevance, summary=excluded.summary,
|
||||
novelty_note=excluded.novelty_note, maturity_note=excluded.maturity_note,
|
||||
overlap_note=excluded.overlap_note, momentum_note=excluded.momentum_note,
|
||||
relevance_note=excluded.relevance_note, categories=excluded.categories,
|
||||
rated_at=excluded.rated_at
|
||||
""",
|
||||
(
|
||||
rating.draft_name, rating.novelty, rating.maturity, rating.overlap,
|
||||
rating.momentum, rating.relevance, rating.summary,
|
||||
rating.novelty_note, rating.maturity_note, rating.overlap_note,
|
||||
rating.momentum_note, rating.relevance_note,
|
||||
json.dumps(rating.categories),
|
||||
rating.rated_at or datetime.now(timezone.utc).isoformat(),
|
||||
),
|
||||
)
|
||||
self.conn.commit()
|
||||
|
||||
def get_rating(self, draft_name: str) -> Rating | None:
|
||||
row = self.conn.execute(
|
||||
"SELECT * FROM ratings WHERE draft_name = ?", (draft_name,)
|
||||
).fetchone()
|
||||
if row is None:
|
||||
return None
|
||||
return self._row_to_rating(row)
|
||||
|
||||
def unrated_drafts(self, limit: int = 100) -> list[Draft]:
|
||||
rows = self.conn.execute(
|
||||
"""SELECT d.* FROM drafts d
|
||||
LEFT JOIN ratings r ON d.name = r.draft_name
|
||||
WHERE r.draft_name IS NULL
|
||||
LIMIT ?""",
|
||||
(limit,),
|
||||
).fetchall()
|
||||
return [self._row_to_draft(r) for r in rows]
|
||||
|
||||
def drafts_with_ratings(self, limit: int = 200) -> list[tuple[Draft, Rating]]:
|
||||
rows = self.conn.execute(
|
||||
"""SELECT d.*, r.novelty, r.maturity, r.overlap, r.momentum, r.relevance,
|
||||
r.summary, r.novelty_note, r.maturity_note, r.overlap_note,
|
||||
r.momentum_note, r.relevance_note, r.categories as r_categories, r.rated_at
|
||||
FROM drafts d
|
||||
JOIN ratings r ON d.name = r.draft_name
|
||||
ORDER BY (r.novelty * 0.30 + r.relevance * 0.25 + r.maturity * 0.20
|
||||
+ r.momentum * 0.15 + (6 - r.overlap) * 0.10) DESC
|
||||
LIMIT ?""",
|
||||
(limit,),
|
||||
).fetchall()
|
||||
results = []
|
||||
for r in rows:
|
||||
draft = self._row_to_draft(r)
|
||||
rating = Rating(
|
||||
draft_name=r["draft_name"] if "draft_name" in r.keys() else draft.name,
|
||||
novelty=r["novelty"], maturity=r["maturity"], overlap=r["overlap"],
|
||||
momentum=r["momentum"], relevance=r["relevance"], summary=r["summary"],
|
||||
novelty_note=r["novelty_note"], maturity_note=r["maturity_note"],
|
||||
overlap_note=r["overlap_note"], momentum_note=r["momentum_note"],
|
||||
relevance_note=r["relevance_note"],
|
||||
categories=json.loads(r["r_categories"]) if r["r_categories"] else [],
|
||||
rated_at=r["rated_at"],
|
||||
)
|
||||
results.append((draft, rating))
|
||||
return results
|
||||
|
||||
# --- Embeddings ---
|
||||
|
||||
def store_embedding(self, draft_name: str, model: str, vector: np.ndarray) -> None:
|
||||
self.conn.execute(
|
||||
"""INSERT INTO embeddings (draft_name, model, vector, created_at)
|
||||
VALUES (?, ?, ?, ?)
|
||||
ON CONFLICT(draft_name) DO UPDATE SET
|
||||
model=excluded.model, vector=excluded.vector, created_at=excluded.created_at
|
||||
""",
|
||||
(draft_name, model, vector.astype(np.float32).tobytes(),
|
||||
datetime.now(timezone.utc).isoformat()),
|
||||
)
|
||||
self.conn.commit()
|
||||
|
||||
def get_embedding(self, draft_name: str) -> np.ndarray | None:
|
||||
row = self.conn.execute(
|
||||
"SELECT vector FROM embeddings WHERE draft_name = ?", (draft_name,)
|
||||
).fetchone()
|
||||
if row is None:
|
||||
return None
|
||||
return np.frombuffer(row["vector"], dtype=np.float32)
|
||||
|
||||
def all_embeddings(self) -> dict[str, np.ndarray]:
|
||||
rows = self.conn.execute("SELECT draft_name, vector FROM embeddings").fetchall()
|
||||
return {
|
||||
r["draft_name"]: np.frombuffer(r["vector"], dtype=np.float32)
|
||||
for r in rows
|
||||
}
|
||||
|
||||
def drafts_without_embeddings(self, limit: int = 500) -> list[str]:
|
||||
rows = self.conn.execute(
|
||||
"""SELECT d.name FROM drafts d
|
||||
LEFT JOIN embeddings e ON d.name = e.draft_name
|
||||
WHERE e.draft_name IS NULL
|
||||
LIMIT ?""",
|
||||
(limit,),
|
||||
).fetchall()
|
||||
return [r["name"] for r in rows]
|
||||
|
||||
# --- LLM Cache ---
|
||||
|
||||
def cache_response(
|
||||
self, draft_name: str, prompt_hash: str, model: str,
|
||||
request_json: str, response_json: str,
|
||||
input_tokens: int = 0, output_tokens: int = 0,
|
||||
) -> None:
|
||||
self.conn.execute(
|
||||
"""INSERT INTO llm_cache (draft_name, prompt_hash, model, request_json,
|
||||
response_json, input_tokens, output_tokens, created_at)
|
||||
VALUES (?, ?, ?, ?, ?, ?, ?, ?)
|
||||
ON CONFLICT(draft_name, prompt_hash) DO UPDATE SET
|
||||
model=excluded.model, response_json=excluded.response_json,
|
||||
input_tokens=excluded.input_tokens, output_tokens=excluded.output_tokens,
|
||||
created_at=excluded.created_at
|
||||
""",
|
||||
(draft_name, prompt_hash, model, request_json, response_json,
|
||||
input_tokens, output_tokens, datetime.now(timezone.utc).isoformat()),
|
||||
)
|
||||
self.conn.commit()
|
||||
|
||||
def get_cached_response(self, draft_name: str, prompt_hash: str) -> str | None:
|
||||
row = self.conn.execute(
|
||||
"SELECT response_json FROM llm_cache WHERE draft_name = ? AND prompt_hash = ?",
|
||||
(draft_name, prompt_hash),
|
||||
).fetchone()
|
||||
return row["response_json"] if row else None
|
||||
|
||||
def total_tokens_used(self) -> tuple[int, int]:
|
||||
row = self.conn.execute(
|
||||
"SELECT COALESCE(SUM(input_tokens),0), COALESCE(SUM(output_tokens),0) FROM llm_cache"
|
||||
).fetchone()
|
||||
return (row[0], row[1])
|
||||
|
||||
# --- Helpers ---
|
||||
|
||||
@staticmethod
|
||||
def _row_to_draft(row: sqlite3.Row) -> Draft:
|
||||
d = dict(row)
|
||||
return Draft(
|
||||
name=d["name"], rev=d["rev"], title=d["title"], abstract=d["abstract"],
|
||||
time=d["time"], dt_id=d.get("dt_id"), pages=d.get("pages"),
|
||||
words=d.get("words"), group=d.get("group"), group_uri=d.get("group_uri"),
|
||||
expires=d.get("expires"), ad=d.get("ad"), shepherd=d.get("shepherd"),
|
||||
states=json.loads(d.get("states") or "[]"),
|
||||
full_text=d.get("full_text"),
|
||||
categories=json.loads(d.get("categories") or "[]"),
|
||||
tags=json.loads(d.get("tags") or "[]"),
|
||||
fetched_at=d.get("fetched_at"),
|
||||
)
|
||||
|
||||
@staticmethod
|
||||
def _row_to_rating(row: sqlite3.Row) -> Rating:
|
||||
d = dict(row)
|
||||
return Rating(
|
||||
draft_name=d["draft_name"], novelty=d["novelty"], maturity=d["maturity"],
|
||||
overlap=d["overlap"], momentum=d["momentum"], relevance=d["relevance"],
|
||||
summary=d["summary"],
|
||||
novelty_note=d.get("novelty_note", ""),
|
||||
maturity_note=d.get("maturity_note", ""),
|
||||
overlap_note=d.get("overlap_note", ""),
|
||||
momentum_note=d.get("momentum_note", ""),
|
||||
relevance_note=d.get("relevance_note", ""),
|
||||
categories=json.loads(d.get("categories") or "[]"),
|
||||
rated_at=d.get("rated_at"),
|
||||
)
|
||||
136
src/ietf_analyzer/embeddings.py
Normal file
136
src/ietf_analyzer/embeddings.py
Normal file
@@ -0,0 +1,136 @@
|
||||
"""Embedding generation via Ollama and similarity computation."""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
import numpy as np
|
||||
import ollama as ollama_lib
|
||||
from rich.console import Console
|
||||
from rich.progress import Progress, SpinnerColumn, TextColumn, BarColumn, MofNCompleteColumn
|
||||
|
||||
from .config import Config
|
||||
from .db import Database
|
||||
|
||||
console = Console()
|
||||
|
||||
|
||||
def _cosine_similarity(a: np.ndarray, b: np.ndarray) -> float:
|
||||
dot = np.dot(a, b)
|
||||
norm = np.linalg.norm(a) * np.linalg.norm(b)
|
||||
if norm == 0:
|
||||
return 0.0
|
||||
return float(dot / norm)
|
||||
|
||||
|
||||
class Embedder:
|
||||
def __init__(self, config: Config | None = None, db: Database | None = None):
|
||||
self.config = config or Config.load()
|
||||
self.db = db or Database(self.config)
|
||||
self.client = ollama_lib.Client(host=self.config.ollama_url)
|
||||
|
||||
def embed_text(self, text: str) -> np.ndarray:
|
||||
"""Generate an embedding for a single text string."""
|
||||
# Truncate to ~8k tokens worth of text (roughly 32k chars)
|
||||
truncated = text[:32000]
|
||||
resp = self.client.embed(model=self.config.ollama_embed_model, input=truncated)
|
||||
return np.array(resp["embeddings"][0], dtype=np.float32)
|
||||
|
||||
def embed_draft(self, draft_name: str) -> np.ndarray | None:
|
||||
"""Generate and store an embedding for a draft using its abstract + title."""
|
||||
draft = self.db.get_draft(draft_name)
|
||||
if draft is None:
|
||||
console.print(f"[red]Draft not found: {draft_name}[/]")
|
||||
return None
|
||||
|
||||
# Combine title + abstract + beginning of full text for richer embedding
|
||||
parts = [draft.title, draft.abstract]
|
||||
if draft.full_text:
|
||||
# Include first ~4k chars of body
|
||||
parts.append(draft.full_text[:4000])
|
||||
text = "\n\n".join(p for p in parts if p)
|
||||
|
||||
vec = self.embed_text(text)
|
||||
self.db.store_embedding(draft_name, self.config.ollama_embed_model, vec)
|
||||
return vec
|
||||
|
||||
def embed_all_missing(self) -> int:
|
||||
"""Generate embeddings for all drafts that don't have one yet."""
|
||||
missing = self.db.drafts_without_embeddings()
|
||||
if not missing:
|
||||
console.print("All drafts already have embeddings.")
|
||||
return 0
|
||||
|
||||
count = 0
|
||||
with Progress(
|
||||
SpinnerColumn(),
|
||||
TextColumn("[progress.description]{task.description}"),
|
||||
BarColumn(),
|
||||
MofNCompleteColumn(),
|
||||
console=console,
|
||||
) as progress:
|
||||
task = progress.add_task("Generating embeddings...", total=len(missing))
|
||||
for name in missing:
|
||||
try:
|
||||
self.embed_draft(name)
|
||||
count += 1
|
||||
except Exception as e:
|
||||
console.print(f"[red]Failed to embed {name}: {e}[/]")
|
||||
progress.advance(task)
|
||||
|
||||
console.print(f"Generated [bold green]{count}[/] embeddings")
|
||||
return count
|
||||
|
||||
def find_similar(self, draft_name: str, top_n: int = 10) -> list[tuple[str, float]]:
|
||||
"""Find the most similar drafts to a given draft."""
|
||||
target_vec = self.db.get_embedding(draft_name)
|
||||
if target_vec is None:
|
||||
# Try generating it on the fly
|
||||
target_vec = self.embed_draft(draft_name)
|
||||
if target_vec is None:
|
||||
return []
|
||||
|
||||
all_embeddings = self.db.all_embeddings()
|
||||
similarities: list[tuple[str, float]] = []
|
||||
for name, vec in all_embeddings.items():
|
||||
if name == draft_name:
|
||||
continue
|
||||
sim = _cosine_similarity(target_vec, vec)
|
||||
similarities.append((name, sim))
|
||||
|
||||
similarities.sort(key=lambda x: x[1], reverse=True)
|
||||
return similarities[:top_n]
|
||||
|
||||
def similarity_matrix(self) -> tuple[list[str], np.ndarray]:
|
||||
"""Compute pairwise similarity matrix for all embedded drafts."""
|
||||
all_embeddings = self.db.all_embeddings()
|
||||
names = sorted(all_embeddings.keys())
|
||||
n = len(names)
|
||||
matrix = np.zeros((n, n), dtype=np.float32)
|
||||
for i in range(n):
|
||||
for j in range(i, n):
|
||||
sim = _cosine_similarity(all_embeddings[names[i]], all_embeddings[names[j]])
|
||||
matrix[i, j] = sim
|
||||
matrix[j, i] = sim
|
||||
return names, matrix
|
||||
|
||||
def find_clusters(self, threshold: float = 0.85) -> list[list[str]]:
|
||||
"""Find clusters of highly similar drafts using simple greedy clustering."""
|
||||
names, matrix = self.similarity_matrix()
|
||||
if len(names) == 0:
|
||||
return []
|
||||
|
||||
visited = set()
|
||||
clusters: list[list[str]] = []
|
||||
|
||||
for i, name in enumerate(names):
|
||||
if name in visited:
|
||||
continue
|
||||
cluster = [name]
|
||||
visited.add(name)
|
||||
for j in range(len(names)):
|
||||
if names[j] not in visited and matrix[i, j] >= threshold:
|
||||
cluster.append(names[j])
|
||||
visited.add(names[j])
|
||||
if len(cluster) > 1:
|
||||
clusters.append(cluster)
|
||||
|
||||
return clusters
|
||||
204
src/ietf_analyzer/fetcher.py
Normal file
204
src/ietf_analyzer/fetcher.py
Normal file
@@ -0,0 +1,204 @@
|
||||
"""Datatracker API client — search, fetch metadata, download full text."""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
import time as time_mod
|
||||
from datetime import datetime, timezone
|
||||
|
||||
import httpx
|
||||
from rich.console import Console
|
||||
from rich.progress import Progress, SpinnerColumn, TextColumn, BarColumn, MofNCompleteColumn
|
||||
|
||||
from .config import Config
|
||||
from .models import Draft
|
||||
|
||||
API_BASE = "https://datatracker.ietf.org/api/v1"
|
||||
TEXT_BASE = "https://www.ietf.org/archive/id"
|
||||
SEARCH_FIELDS = ("name__contains", "abstract__contains")
|
||||
|
||||
console = Console()
|
||||
|
||||
|
||||
class Fetcher:
|
||||
def __init__(self, config: Config | None = None):
|
||||
self.config = config or Config.load()
|
||||
self.client = httpx.Client(timeout=30, follow_redirects=True)
|
||||
self._group_cache: dict[str, str] = {}
|
||||
|
||||
def close(self) -> None:
|
||||
self.client.close()
|
||||
|
||||
# --- Search & fetch metadata ---
|
||||
|
||||
def search_drafts(
|
||||
self,
|
||||
keywords: list[str] | None = None,
|
||||
since: str | None = None,
|
||||
limit_per_keyword: int = 200,
|
||||
) -> list[Draft]:
|
||||
"""Search for drafts matching keywords. Deduplicates by name."""
|
||||
keywords = keywords or self.config.search_keywords
|
||||
since = since or self.config.fetch_since
|
||||
seen: dict[str, Draft] = {}
|
||||
|
||||
with Progress(
|
||||
SpinnerColumn(),
|
||||
TextColumn("[progress.description]{task.description}"),
|
||||
BarColumn(),
|
||||
MofNCompleteColumn(),
|
||||
console=console,
|
||||
) as progress:
|
||||
# Search both name and abstract for each keyword
|
||||
searches = []
|
||||
for kw in keywords:
|
||||
for field in SEARCH_FIELDS:
|
||||
searches.append((kw, field))
|
||||
|
||||
task = progress.add_task("Searching Datatracker...", total=len(searches))
|
||||
|
||||
for kw, search_field in searches:
|
||||
progress.update(task, description=f"Searching {search_field.split('__')[0]}: {kw}")
|
||||
drafts = self._paginated_search(search_field, kw, since, limit_per_keyword)
|
||||
for d in drafts:
|
||||
if d.name not in seen:
|
||||
seen[d.name] = d
|
||||
progress.advance(task)
|
||||
|
||||
console.print(f"Found [bold green]{len(seen)}[/] unique drafts")
|
||||
return list(seen.values())
|
||||
|
||||
def _paginated_search(
|
||||
self,
|
||||
search_field: str,
|
||||
keyword: str,
|
||||
since: str,
|
||||
max_results: int,
|
||||
) -> list[Draft]:
|
||||
results: list[Draft] = []
|
||||
offset = 0
|
||||
page_size = 100
|
||||
|
||||
while offset < max_results:
|
||||
params = {
|
||||
"format": "json",
|
||||
search_field: keyword,
|
||||
"time__gte": since,
|
||||
"type__slug": "draft",
|
||||
"limit": min(page_size, max_results - offset),
|
||||
"offset": offset,
|
||||
}
|
||||
try:
|
||||
resp = self.client.get(f"{API_BASE}/doc/document/", params=params)
|
||||
resp.raise_for_status()
|
||||
except httpx.HTTPError as e:
|
||||
console.print(f"[red]API error: {e}[/]")
|
||||
break
|
||||
|
||||
data = resp.json()
|
||||
objects = data.get("objects", [])
|
||||
if not objects:
|
||||
break
|
||||
|
||||
for obj in objects:
|
||||
results.append(self._api_obj_to_draft(obj))
|
||||
|
||||
offset += len(objects)
|
||||
if not data.get("meta", {}).get("next"):
|
||||
break
|
||||
|
||||
time_mod.sleep(self.config.fetch_delay)
|
||||
|
||||
return results
|
||||
|
||||
def fetch_draft(self, name: str) -> Draft | None:
|
||||
"""Fetch a single draft by name."""
|
||||
try:
|
||||
resp = self.client.get(
|
||||
f"{API_BASE}/doc/document/{name}/", params={"format": "json"}
|
||||
)
|
||||
resp.raise_for_status()
|
||||
return self._api_obj_to_draft(resp.json())
|
||||
except httpx.HTTPError as e:
|
||||
console.print(f"[red]Error fetching {name}: {e}[/]")
|
||||
return None
|
||||
|
||||
# --- Full text ---
|
||||
|
||||
def download_full_text(self, draft: Draft) -> str | None:
|
||||
"""Download the plain text of a draft."""
|
||||
url = draft.text_url
|
||||
try:
|
||||
resp = self.client.get(url)
|
||||
resp.raise_for_status()
|
||||
return resp.text
|
||||
except httpx.HTTPError:
|
||||
# Try without revision if it fails
|
||||
try:
|
||||
alt_url = f"{TEXT_BASE}/{draft.name}.txt"
|
||||
resp = self.client.get(alt_url)
|
||||
resp.raise_for_status()
|
||||
return resp.text
|
||||
except httpx.HTTPError as e:
|
||||
console.print(f"[dim]Could not download text for {draft.name}: {e}[/]")
|
||||
return None
|
||||
|
||||
def download_texts(self, drafts: list[Draft]) -> dict[str, str]:
|
||||
"""Download full text for multiple drafts. Returns {name: text}."""
|
||||
results: dict[str, str] = {}
|
||||
with Progress(
|
||||
SpinnerColumn(),
|
||||
TextColumn("[progress.description]{task.description}"),
|
||||
BarColumn(),
|
||||
MofNCompleteColumn(),
|
||||
console=console,
|
||||
) as progress:
|
||||
task = progress.add_task("Downloading draft texts...", total=len(drafts))
|
||||
for draft in drafts:
|
||||
text = self.download_full_text(draft)
|
||||
if text:
|
||||
results[draft.name] = text
|
||||
progress.advance(task)
|
||||
time_mod.sleep(self.config.fetch_delay)
|
||||
console.print(f"Downloaded [bold green]{len(results)}[/] / {len(drafts)} texts")
|
||||
return results
|
||||
|
||||
# --- Group resolution ---
|
||||
|
||||
def resolve_group(self, group_uri: str) -> str:
|
||||
"""Resolve a group API URI to a group acronym/name."""
|
||||
if not group_uri:
|
||||
return ""
|
||||
if group_uri in self._group_cache:
|
||||
return self._group_cache[group_uri]
|
||||
try:
|
||||
resp = self.client.get(
|
||||
f"https://datatracker.ietf.org{group_uri}", params={"format": "json"}
|
||||
)
|
||||
resp.raise_for_status()
|
||||
name = resp.json().get("acronym", resp.json().get("name", ""))
|
||||
self._group_cache[group_uri] = name
|
||||
time_mod.sleep(self.config.fetch_delay)
|
||||
return name
|
||||
except httpx.HTTPError:
|
||||
return ""
|
||||
|
||||
# --- Helpers ---
|
||||
|
||||
def _api_obj_to_draft(self, obj: dict) -> Draft:
|
||||
return Draft(
|
||||
name=obj.get("name", ""),
|
||||
rev=obj.get("rev", "00"),
|
||||
title=obj.get("title", ""),
|
||||
abstract=obj.get("abstract", "").strip(),
|
||||
time=obj.get("time", ""),
|
||||
dt_id=obj.get("id"),
|
||||
pages=obj.get("pages"),
|
||||
words=obj.get("words"),
|
||||
group=None, # Resolved lazily
|
||||
group_uri=obj.get("group", ""),
|
||||
expires=obj.get("expires"),
|
||||
ad=obj.get("ad"),
|
||||
shepherd=obj.get("shepherd"),
|
||||
states=[s for s in (obj.get("states") or []) if isinstance(s, str)],
|
||||
fetched_at=datetime.now(timezone.utc).isoformat(),
|
||||
)
|
||||
72
src/ietf_analyzer/models.py
Normal file
72
src/ietf_analyzer/models.py
Normal file
@@ -0,0 +1,72 @@
|
||||
"""Data models for drafts, ratings, and categories."""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
from dataclasses import dataclass, field
|
||||
from datetime import datetime
|
||||
|
||||
|
||||
@dataclass
|
||||
class Draft:
|
||||
name: str # e.g. "draft-zheng-dispatch-agent-identity-management"
|
||||
rev: str # e.g. "00"
|
||||
title: str
|
||||
abstract: str
|
||||
time: str # ISO datetime from API
|
||||
dt_id: int | None = None # Datatracker document ID
|
||||
pages: int | None = None
|
||||
words: int | None = None
|
||||
group: str | None = None # Working group name (resolved)
|
||||
group_uri: str | None = None # Raw API URI
|
||||
expires: str | None = None
|
||||
ad: str | None = None # Area director URI
|
||||
shepherd: str | None = None
|
||||
states: list[str] = field(default_factory=list)
|
||||
full_text: str | None = None
|
||||
categories: list[str] = field(default_factory=list)
|
||||
tags: list[str] = field(default_factory=list)
|
||||
fetched_at: str | None = None
|
||||
|
||||
@property
|
||||
def text_url(self) -> str:
|
||||
return f"https://www.ietf.org/archive/id/{self.name}-{self.rev}.txt"
|
||||
|
||||
@property
|
||||
def datatracker_url(self) -> str:
|
||||
return f"https://datatracker.ietf.org/doc/{self.name}/"
|
||||
|
||||
@property
|
||||
def date(self) -> str:
|
||||
"""Return just the date portion of time."""
|
||||
if self.time:
|
||||
return self.time[:10]
|
||||
return ""
|
||||
|
||||
|
||||
@dataclass
|
||||
class Rating:
|
||||
draft_name: str
|
||||
novelty: int # 1-5
|
||||
maturity: int # 1-5
|
||||
overlap: int # 1-5 (5 = highly overlapping with others)
|
||||
momentum: int # 1-5
|
||||
relevance: int # 1-5
|
||||
summary: str # 2-4 sentence AI summary
|
||||
novelty_note: str = ""
|
||||
maturity_note: str = ""
|
||||
overlap_note: str = ""
|
||||
momentum_note: str = ""
|
||||
relevance_note: str = ""
|
||||
categories: list[str] = field(default_factory=list)
|
||||
rated_at: str | None = None
|
||||
|
||||
@property
|
||||
def composite_score(self) -> float:
|
||||
"""Weighted composite: novelty and relevance matter most."""
|
||||
return (
|
||||
self.novelty * 0.30
|
||||
+ self.relevance * 0.25
|
||||
+ self.maturity * 0.20
|
||||
+ self.momentum * 0.15
|
||||
+ (6 - self.overlap) * 0.10 # Invert: less overlap = better
|
||||
)
|
||||
177
src/ietf_analyzer/reports.py
Normal file
177
src/ietf_analyzer/reports.py
Normal file
@@ -0,0 +1,177 @@
|
||||
"""Markdown report generation."""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
from datetime import datetime, timezone
|
||||
from pathlib import Path
|
||||
|
||||
from .config import Config
|
||||
from .db import Database
|
||||
from .models import Draft, Rating
|
||||
|
||||
STAR = {1: "\u2581", 2: "\u2583", 3: "\u2585", 4: "\u2587", 5: "\u2588"}
|
||||
|
||||
|
||||
def _bar(score: int) -> str:
|
||||
return STAR.get(score, "?")
|
||||
|
||||
|
||||
def _score_str(rating: Rating) -> str:
|
||||
return f"{rating.composite_score:.1f}"
|
||||
|
||||
|
||||
class Reporter:
|
||||
def __init__(self, config: Config | None = None, db: Database | None = None):
|
||||
self.config = config or Config.load()
|
||||
self.db = db or Database(self.config)
|
||||
self.output_dir = Path(self.config.data_dir) / "reports"
|
||||
self.output_dir.mkdir(parents=True, exist_ok=True)
|
||||
|
||||
def overview(self) -> str:
|
||||
"""Generate a sortable overview table of all rated drafts."""
|
||||
pairs = self.db.drafts_with_ratings()
|
||||
total = self.db.count_drafts()
|
||||
now = datetime.now(timezone.utc).strftime("%Y-%m-%d %H:%M UTC")
|
||||
|
||||
lines = [
|
||||
f"# IETF AI/Agent Draft Overview",
|
||||
f"*Generated {now} — {len(pairs)} rated / {total} tracked drafts*\n",
|
||||
"| Score | Draft | Date | N | M | O | Mom | R | Summary |",
|
||||
"|------:|-------|------|:-:|:-:|:-:|:---:|:-:|---------|",
|
||||
]
|
||||
|
||||
for draft, rating in pairs:
|
||||
name_link = f"[{draft.name}]({draft.datatracker_url})"
|
||||
lines.append(
|
||||
f"| {_score_str(rating)} | {name_link} | {draft.date} "
|
||||
f"| {_bar(rating.novelty)} | {_bar(rating.maturity)} "
|
||||
f"| {_bar(rating.overlap)} | {_bar(rating.momentum)} "
|
||||
f"| {_bar(rating.relevance)} | {rating.summary[:80]}... |"
|
||||
)
|
||||
|
||||
lines.append("\n*N=Novelty, M=Maturity, O=Overlap, Mom=Momentum, R=Relevance (block height = score 1-5)*")
|
||||
|
||||
report = "\n".join(lines)
|
||||
path = self.output_dir / "overview.md"
|
||||
path.write_text(report)
|
||||
return str(path)
|
||||
|
||||
def landscape(self) -> str:
|
||||
"""Generate a category-grouped landscape report."""
|
||||
pairs = self.db.drafts_with_ratings()
|
||||
now = datetime.now(timezone.utc).strftime("%Y-%m-%d %H:%M UTC")
|
||||
|
||||
# Group by category
|
||||
by_cat: dict[str, list[tuple[Draft, Rating]]] = {}
|
||||
for draft, rating in pairs:
|
||||
cats = rating.categories or ["Uncategorized"]
|
||||
for cat in cats:
|
||||
by_cat.setdefault(cat, []).append((draft, rating))
|
||||
|
||||
lines = [
|
||||
f"# IETF AI/Agent Draft Landscape",
|
||||
f"*Generated {now}*\n",
|
||||
]
|
||||
|
||||
for cat in sorted(by_cat.keys()):
|
||||
items = by_cat[cat]
|
||||
items.sort(key=lambda x: x[1].composite_score, reverse=True)
|
||||
lines.append(f"\n## {cat} ({len(items)} drafts)\n")
|
||||
for draft, rating in items:
|
||||
lines.append(
|
||||
f"- **[{draft.name}]({draft.datatracker_url})** "
|
||||
f"(score: {_score_str(rating)}) — {rating.summary[:100]}"
|
||||
)
|
||||
|
||||
report = "\n".join(lines)
|
||||
path = self.output_dir / "landscape.md"
|
||||
path.write_text(report)
|
||||
return str(path)
|
||||
|
||||
def draft_detail(self, draft_name: str) -> str:
|
||||
"""Generate a detailed report for a single draft."""
|
||||
draft = self.db.get_draft(draft_name)
|
||||
if draft is None:
|
||||
return ""
|
||||
|
||||
rating = self.db.get_rating(draft_name)
|
||||
|
||||
lines = [
|
||||
f"# {draft.title}",
|
||||
f"**{draft.name}** rev {draft.rev}\n",
|
||||
f"- **Date:** {draft.date}",
|
||||
f"- **Pages:** {draft.pages or '?'}",
|
||||
f"- **Group:** {draft.group or 'individual'}",
|
||||
f"- **Datatracker:** {draft.datatracker_url}",
|
||||
f"- **Text:** {draft.text_url}\n",
|
||||
f"## Abstract\n{draft.abstract}\n",
|
||||
]
|
||||
|
||||
if rating:
|
||||
lines.extend([
|
||||
f"## AI Assessment (score: {_score_str(rating)})\n",
|
||||
f"**Summary:** {rating.summary}\n",
|
||||
f"| Dimension | Score | Notes |",
|
||||
f"|-----------|:-----:|-------|",
|
||||
f"| Novelty | {rating.novelty}/5 | {rating.novelty_note} |",
|
||||
f"| Maturity | {rating.maturity}/5 | {rating.maturity_note} |",
|
||||
f"| Overlap | {rating.overlap}/5 | {rating.overlap_note} |",
|
||||
f"| Momentum | {rating.momentum}/5 | {rating.momentum_note} |",
|
||||
f"| Relevance | {rating.relevance}/5 | {rating.relevance_note} |",
|
||||
f"\n**Categories:** {', '.join(rating.categories) if rating.categories else 'none'}",
|
||||
])
|
||||
else:
|
||||
lines.append("*Not yet rated — run `ietf analyze` to generate a rating.*")
|
||||
|
||||
report = "\n".join(lines)
|
||||
path = self.output_dir / f"{draft_name}.md"
|
||||
path.write_text(report)
|
||||
return str(path)
|
||||
|
||||
def digest(self, since_days: int = 7) -> str:
|
||||
"""Generate a digest of recently fetched/updated drafts."""
|
||||
from datetime import timedelta
|
||||
cutoff = (datetime.now(timezone.utc) - timedelta(days=since_days)).isoformat()
|
||||
now = datetime.now(timezone.utc).strftime("%Y-%m-%d %H:%M UTC")
|
||||
|
||||
# Get recent drafts by fetched_at
|
||||
all_drafts = self.db.list_drafts(limit=500, order_by="fetched_at DESC")
|
||||
recent = [d for d in all_drafts if d.fetched_at and d.fetched_at >= cutoff]
|
||||
|
||||
lines = [
|
||||
f"# Weekly Digest — IETF AI/Agent Drafts",
|
||||
f"*Generated {now} — showing drafts fetched in last {since_days} days*\n",
|
||||
f"**{len(recent)} drafts** in this period\n",
|
||||
]
|
||||
|
||||
if not recent:
|
||||
lines.append("No new drafts found. Run `ietf fetch` to update.")
|
||||
else:
|
||||
# Split into rated and unrated
|
||||
rated = []
|
||||
unrated = []
|
||||
for d in recent:
|
||||
r = self.db.get_rating(d.name)
|
||||
if r:
|
||||
rated.append((d, r))
|
||||
else:
|
||||
unrated.append(d)
|
||||
|
||||
if rated:
|
||||
rated.sort(key=lambda x: x[1].composite_score, reverse=True)
|
||||
lines.append("## Top Rated New Drafts\n")
|
||||
for draft, rating in rated[:10]:
|
||||
lines.append(
|
||||
f"1. **[{draft.name}]({draft.datatracker_url})** "
|
||||
f"(score: {_score_str(rating)}) — {rating.summary[:120]}"
|
||||
)
|
||||
|
||||
if unrated:
|
||||
lines.append(f"\n## Awaiting Analysis ({len(unrated)} drafts)\n")
|
||||
for d in unrated[:20]:
|
||||
lines.append(f"- [{d.name}]({d.datatracker_url}) — {d.title}")
|
||||
|
||||
report = "\n".join(lines)
|
||||
path = self.output_dir / "digest.md"
|
||||
path.write_text(report)
|
||||
return str(path)
|
||||
Reference in New Issue
Block a user