Skip to content
DarkPrint
Aautogenintent-router2.1.0

Intent Router

Get card

Clone

npx -y darkprint clone intent-router@2.1.0

There is no repository and no history behind a card. Download hands you the document as it stands, and Clone fetches the same document by name.

↓ 0 downloads

Classify the inbound event against the label set, overridden by a taxonomy supplied for this run, when there is one, and dispatch it down the matching lane, sending anything below the confidence threshold to the escalation lane instead of guessing.

used in 2 blueprints

Specification

152 words · handed to the agent

Read the inbound alert as it arrived and decide which one of outage, degradation, capacity, security or noise it is, unless a label set is supplied for this run, in which case classify against that one instead and ignore the configured labels entirely. Emit the lane you picked on lane with the confidence you had in it, and emit the alert on routed with its label added and payload and metadata otherwise untouched. If your confidence in the best label is below 0.75, route to the on-call lane: handing a misread alert to a person costs far less than confidently sending it down the wrong runbook. Record the lane in your status file as well: put lane in context_updates, set to the value you picked, so a graph downstream can branch on context.lane. A run that leaves that key unwritten reads back as the empty string, and no lane name matches it.

Interfaces

2 in · 2 out

Inputs

2
Inputs declared by this node card
NameData typeRequiredDescription
eventjson requiredThe inbound event as it arrived, payload and metadata untouched.
taxonomyjson optionalA label set supplied per run, which replaces the configured one when present.

Outputs

2
Outputs declared by this node card
NameData typeDescription
lanestatusThe lane the event was routed to, with the classifier's confidence attached.
routedjsonThe event enriched with its label, ready for whichever branch picks it up.

Dependencies

1
  • ticket

The upstream nodes this card expects to receive from. Whenever a blueprint pins this card, each name is checked against a real edge in that graph. A name without a link is not a published card; it refers to a node inside some graph.

Card values

15 declared

Who the node is. The id is the key the DOT pins.

id
intent-router
name
Intent Router
type
decision
phases
none declared
Behaviourcard spec →

What it does, and the prose the agent is handed when the graph runs.

action40 words
Classify the inbound event against the label set, overridden by a taxonomy supplied for this run, when there is one, and dispatch it down the matching lane, sending anything below the confidence threshold to the escalation lane instead of guessing.
spec152 words
Read the inbound alert as it arrived and decide which one of outage, degradation, capacity, security or noise it is, unless a label set is supplied for this run, in which case classify against that one instead and ignore the configured labels entirely. Emit the lane you picked on lane with the confidence you had in it, and emit the alert on routed with its label added and payload and metadata otherwise untouched. If your confidence in the best label is below 0.75, route to the on-call lane: handing a misread alert to a person costs far less than confidently sending it down the wrong runbook. Record the lane in your status file as well: put lane in context_updates, set to the value you picked, so a graph downstream can branch on context.lane. A run that leaves that key unwritten reads back as the empty string, and no lane name matches it.in full above
model
whatever the graph supplies
agent
Alert classifier
skill
skills/intent-router.md
tools
none
mcp
none
params
labels: ["outage","degradation","capacity","security","noise"], default_lane: triage, escalation_lane: on-call, confidence_threshold: 0.75
Interfacescard spec →

What arrives, what leaves, which nodes it expects to hear from, and what may not.

inputs
event : json, taxonomy : json
outputs
lane : status, routed : json
dependencies
ticket
cannot
no type is refused
will_not
change the payload it routes, leave an alert unrouted
Evaluation metadatacard spec →

The keys the static analysis reads. Nothing here instructs the agent.

risk_markers
none
notes207 words
A named escalation_lane and a higher threshold are the difference from 1.1.0: an incident line would rather hand a misread alert to a person than route it confidently to the wrong runbook. taxonomy is optional, so a deployment that never supplies one behaves as before. The version is 2.x because the undertaking was reworded: leave an event unrouted went and leave an alert unrouted arrived. inferBump reads both directions of will_not as minor, since the resolver holds no graph to a sentence. The major is the author's, on the ground that a reworded promise is a changed promise until somebody reads both and decides otherwise. 2.1.0 adds the same sentence 1.1.0 does, on the same lane this card's own threshold names: the lane goes into context_updates as well as onto the port, which is Appendix C's field for a node handing a key to the run context. Until then nothing wrote context.lane, so a guard reading it compared the empty string and the fork on it took its negation arm whatever the classifier decided. A decision card runs as a no-op under engine spec 4.7 and writes neither a status distinction nor a preferred_label, so the spec sentence is the only place this key can come from.
Service fieldscard spec →

The card's own version, and who wrote it.

version
2.1.0
author
autogen
provenance
not stated

Definitions for every card field

Version history

4 versions published
  1. intent-router@2.1.0currentsha256:c82439185a8eb28bba2946094062bc45598dfbe7d58cc1ed8a2fd54e99c563ca

    pinned byIncident Commanderautogen/incident-commander

    minor2.0.0 → 2.1.0something was added; old pins still resolve
    • spec changed, the instruction handed to the agent is different
    • notes changed
  2. intent-router@2.0.0sha256:57360cee498279a76c3fb368be3d3b31b85575fc68963960f7cc3261ba654ab1

    No blueprint pins this exact version.

    major1.1.0 → 2.0.0moving a pin to this version may break a blueprint that resolved against the old one
    • promise leave an event unrouted was withdrawn (nothing checks this automatically)
    • optional input taxonomy was added
    • promise leave an alert unrouted was added
    • parameter escalation_lane was added
    • spec changed, the instruction handed to the agent is different
    • parameter labels changed: ["billing","bug-report","how-to","accoun… → ["outage","degradation","capacity","secu…
    • parameter default_lane changed: "general" → "triage"
    • parameter confidence_threshold changed: 0.6 → 0.75
    • agent changed: "Classifier" → "Alert classifier"
    • action wording changed
    • notes changed
  3. intent-router@1.1.0sha256:ccf5d5f6f091313f6c3313ee1510eb90797a3dd909b3b19e316e123dddf5f52c

    pinned byFrontline Triageautogen/frontline-triage

    minor1.0.0 → 1.1.0something was added; old pins still resolve
    • spec changed, the instruction handed to the agent is different
    • notes changed
  4. intent-router@1.0.0sha256:c93a6122baa8afb583b7b14730b6a6b5d5c615b8296bb55fc4b671b34c20ceb4

    No blueprint pins this exact version.

A digest is a fingerprint (SHA-256) of the card's content, computed without the author and provenance fields. The same card from two people gets the same digest; any edit gets a new one.

Community notes (0)

No notes yet.

Nobody has posted about this node card yet.

Sign in to post a note.