Detectors¶
AgentSniff uses eight detection modules that run concurrently. Each produces signals with confidence levels that are fused into a single score per host.
| Detector | Method | Requires Root | Confidence |
|---|---|---|---|
| DNS Monitor | Passive DNS monitoring for LLM API domain queries | Yes* | High |
| Port Scanner | Async TCP scanning of agent-related ports | No | Low-Medium |
| AgentPin Prober | .well-known/agent-identity.json discovery |
No | Confirmed |
| MCP Detector | JSON-RPC 2.0 / SSE probing for MCP servers | No | Confirmed |
| Endpoint Prober | HTTP probing for agent framework signatures | No | Medium-High |
| TLS Fingerprint | JA3 fingerprinting of agent HTTP clients | Yes* | High |
| Traffic Analyzer | Behavioral pattern analysis (burst detection, LLM call patterns) | Yes* | Medium-High |
| SSE Detector | Server-Sent Events pattern detection | Yes* | Medium |
* Falls back to non-root alternatives automatically.
DNS Monitor¶
Passively captures DNS queries on the network and matches against 60+ known LLM API domains including OpenAI, Anthropic, Google, Mistral, Groq, Together, Cohere, DeepSeek, and Chinese providers (DashScope, Moonshot, Zhipu, MiniMax, Baidu, ByteDance).
Also matches domain suffixes for Azure OpenAI (*.openai.azure.com), AWS Bedrock (*.bedrock-runtime.amazonaws.com), GCP Vertex (*.aiplatform.googleapis.com), and others.
Fallback: When raw sockets are unavailable, resolves the top 20 LLM API domains and cross-references their IPs against active connections in /proc/net/tcp.
Port Scanner¶
Async TCP scanner targeting 24+ ports associated with:
- MCP servers: 3000, 3001, 8080
- Agent frameworks: 8000 (FastAPI/vLLM), 8001, 5000 (Flask), 8888 (Jupyter)
- LLM inference: 11434 (Ollama), 1234 (LM Studio), 4000 (LiteLLM)
- Vector databases: 6333 (Qdrant), 8090 (Weaviate), 19530 (Milvus)
- Agent platforms: 3100 (Dify), 3080 (LibreChat), 8501 (Streamlit)
- IDE agents: 65432 (Continue.dev), 8443 (code-server), 2024 (LangGraph Studio)
Includes banner grabbing for service identification and self-corroboration.
AgentPin Prober¶
Probes hosts for AgentPin discovery documents at /.well-known/agent-identity.json. Valid AgentPin identities provide confirmed detection with full cryptographic provenance including issuer, capabilities, delegation chains, and revocation status.
Follows the AgentPin spec's no-redirect security policy. Probes HTTPS and HTTP across common ports (443, 8443, 8080, 3000, 8000, 80).
MCP Detector¶
Probes for Model Context Protocol servers by sending JSON-RPC 2.0 initialize requests and checking for SSE endpoints. On confirmed servers, enumerates available tools, resources, and prompts.
Detects both HTTP+SSE and direct JSON-RPC transports.
Endpoint Prober¶
Probes HTTP endpoints for signatures of 58+ agent frameworks. Pre-filters closed ports with a quick TCP connect check before firing HTTP probes.
For each reachable port, checks:
- Framework-specific endpoints (e.g.,
/crew/statusfor CrewAI,/runsfor LangGraph) - Framework-identifying response headers (e.g.,
x-langchain-*,semantic-kernel-version) - Agent metadata documents (
/.well-known/agents.json,/AGENTS.md,/SKILL.md) - OpenAPI specs with AI-related content (
/openapi.json,/docs)
Detected frameworks include: LangChain, CrewAI, AutoGen, Dify, Flowise, n8n, PydanticAI, LangGraph, AG2, Haystack, Composio, Letta, Mastra, and many more. Also detects IDE agents (Cursor, Copilot, Windsurf, Claude Code) via user-agent matching.
TLS Fingerprint¶
Computes JA3 hashes from TLS ClientHello messages to identify agent HTTP client libraries (Python requests, httpx, aiohttp, Node.js fetch, Rust reqwest).
Fallback: Active TLS server probing on agent-associated ports when passive capture isn't available.
Traffic Analyzer¶
Profiles network hosts by behavioral patterns characteristic of AI agents:
- Burst detection — Bursty tool invocation sequences
- ORA loop — Observe-reason-act timing patterns (tool call interspersed with LLM API call)
- API diversity — Connections to many different API targets
- LLM API connections — Active TCP connections to known LLM API IPs
Also analyzes /proc/net/tcp for established connections to known LLM API IP addresses.
SSE Detector¶
Detects Server-Sent Events (SSE) streaming patterns characteristic of LLM responses. Looks for long-lived HTTP connections with text/event-stream content from known LLM API IPs.
Requires: Raw socket access for passive capture. No fallback.
Selecting Detectors¶
Run specific detectors only:
Available detector names: dns_monitor, port_scanner, agentpin_prober, mcp_detector, endpoint_prober, tls_fingerprint, traffic_analyzer, sse_detector.