Documentation

Tools

All 31 tools grouped by the question you are trying to answer, with the shaped response size each returns.

Tools are shaped around a question, not around an API endpoint. Several call more than one upstream and compose the result; all of them reduce the response before it reaches your model.

Which tool for which question

You want to knowTool
Everything about one advisoryvulnetix_vuln
Is it actually being exploited?vulnetix_exploits
Is there a deadline on it?vulnetix_kev_status
How do I fix it?vulnetix_remediation
Should I add this dependency?vulnetix_package_search
What affects this package?vulnetix_package_vulns
Which version is safe?vulnetix_package_versions
What about this exact coordinate?vulnetix_purl
Who is attacking with it?vulnetix_threat_actors, vulnetix_iocs
Is it still being seen in the wild?vulnetix_sightings
Which ATT&CK techniques?vulnetix_attack_techniques
Can I detect it without patching?vulnetix_detection_rules
Can I mitigate without patching?vulnetix_workarounds
Which vendor advisory applies to me?vulnetix_advisories
How fast did this get weaponised?vulnetix_timeline
Has the vendor said we are unaffected?vulnetix_vex
Is the upstream project healthy?vulnetix_scorecard
What should I look at today?vulnetix_soc_triage
What is new in KEV?vulnetix_kev
I only remember the nicknamevulnetix_search
Is this runtime still supported?vulnetix_eol_products
What is happening in the landscape?vulnetix_threat_feed
Should I patch now or defer?vulnetix_triage_reason
How do I not write this bug?vulnetix_secure_code_write
Did the fix actually work?vulnetix_exploit_test
What exactly do I change?vulnetix_fix_plan
Something with no tool yetvdb_request

Every result carries _meta

"_meta": {
  "vulnetix/plan": "community",
  "vulnetix/rateLimit": { "limit": "unlimited", "remaining": "unlimited", "reset": "1786406400" },
  "vulnetix/upstream": { "calls": 1, "ms": 4889, "bytes": 2606569, "cached": false },
  "vulnetix/shaping": { "rawBytes": 2606569, "shapedBytes": 10613, "ratio": 0.00407 }
}
KeyMeaning
vulnetix/planTier this call was served at
vulnetix/rateLimitQuota position, straight from the API
vulnetix/upstreamCalls made, milliseconds, raw bytes, cache hit
vulnetix/shapingRaw versus shaped size, and how much was reduced
vulnetix/degradedOn composing tools, which legs failed
vulnetix/aiOn AI tools, the model and token cost, or why it was skipped

Measured response sizes

Against CVE-2021-44228 on a Community credential, live:

ToolRawShaped
vulnetix_vuln (summary)2,606,57110,613
vulnetix_vuln (detail: full)2,606,571207,604
vulnetix_remediation467,15627,288
vulnetix_timeline288,0809,051
vulnetix_advisories277,1498,190
vulnetix_workarounds161,222198
vulnetix_package_search (express)100,1255,435
vulnetix_package_vulns (express)84,27411,899
vulnetix_threat_feed (5 legs)145,31818,371

Nothing a decision rests on is dropped. See Response shaping for exactly what is kept.

Errors are results, not exceptions

A failing tool returns a normal result with isError: true and a message written for the agent. A rate limit says explicitly not to retry; a 401 says which header to set. See Errors.