Skip to content

Intutic vs Portkey

Portkey is an AI gateway built for LLM observability, caching, and routing. It logs requests, tracks costs, and provides dashboards for monitoring model performance. Intutic is a synchronous enforcement layer that blocks bad actions before they happen.

Palo Alto Networks has announced an acquisition of Portkey, expected to fold it into the Prisma AIRS platform. As of this writing the deal has not been confirmed closed. Worth tracking if Portkey's roadmap or independence matters to your evaluation.

The Core Difference

Portkey observes LLM traffic after the fact. Intutic intercepts tool calls in real time and decides whether to allow, modify, or block them — before the request leaves the machine.

If your AI agent tries to rm -rf /, Portkey will log it. Intutic will kill it.

Comparison

CapabilityIntuticPortkey
Enforcement modelSynchronous — blocks before executionAsync — logs after execution
Latency overheadMeasured per payload size in packages/proxy/benches; not a single published figureN/A (post-hoc)
Circuit breaker actionsBYPASS / ENHANCE / HIJACK / KILLNot available
Custom policy rulesWASM sandbox — run your own rulesJSON config guardrails
Model routingThompson Sampling bandit (cost + quality)Round-robin, fallback chains
Harness coverage39 AI coding agents (Claude Code, Cursor, Antigravity, etc.)SDK-based integration
Config syncBidirectional daemon — SOPs sync to agents, configs sync to cloudOne-way SDK push
Data residencyLocal-first — proxy runs on your machineCloud-hosted gateway
DLP / threat detectionSecrets redaction, SQL injection, prompt injectionBasic content filtering
FinOps & BudgetsLocal daily spend ceilings, pre-execution cost estimation blocks over-budget requestsCost tracking and budget caps
Audit trailFull tool-call-level audit with enforcement decisionsRequest-level logging
Semantic Cache & RecallValkey-backed Custom CachingBasic semantic caching
Agent Sandboxingwasmtime WASM sandbox — 16 MB memory, 1,000,000 fuel, 5ms timeoutNot available

Integration Comparison

Portkey (SDK Integration)

Portkey requires importing their proprietary SDK and wrapping your LLM client calls. This couples your application logic to Portkey's libraries.

javascript
import { Portkey } from 'portkey-ai';

// Initialize the Portkey client
const portkey = new Portkey({
  apiKey: "YOUR_PORTKEY_API_KEY",
  virtualKey: "YOUR_PROVIDER_VIRTUAL_KEY"
});

// Execute wrapped chat completion
const response = await portkey.chat.completions.create({
  messages: [{ role: 'user', content: 'Scan repository files' }],
  model: 'gpt-4o'
});

Intutic (Local Proxy Integration)

Intutic requires zero code changes or vendor SDK imports. Your agent logic remains standard. You simply point your standard OpenAI/Anthropic client to the locally running Intutic proxy gateway (localhost:4000).

javascript
import OpenAI from 'openai';

// Connect to standard client pointing to local Intutic proxy
const openai = new OpenAI({
  apiKey: "YOUR_API_KEY",
  baseURL: "http://127.0.0.1:4000/v1" // Point to Intutic proxy
});

// Standard completion call, automatically governed and audited
const response = await openai.chat.completions.create({
  messages: [{ role: 'user', content: 'Scan repository files' }],
  model: 'gpt-4o'
});

When to Choose Intutic

  • You need to prevent bad actions, not just log them
  • Your agents write files, run commands, and mutate databases
  • You want policy enforcement that runs locally without sending data to a third-party cloud
  • You need coverage across 39 AI coding harnesses out of the box
  • You want to write custom WASM rules for domain-specific enforcement

Measured false-positive rate

Enforcement that fires on benign work gets switched off, so the number that matters is how often it does.

2 of 1,000 benign trajectories (0.2%) trip a detector, plus 0 of 339 benign prompts carrying injection trigger words.

The corpora are external and were not chosen by us: BFCL v3 multi-turn (Apache-2.0) and NotInject (MIT), vendored with checksums rather than fetched at test time. The assertion pins the two firing trajectories by name, not by count — a count still passes when one seed stops firing and another starts. It runs unpiped, so the gate cannot go green on a swallowed failure, and it runs on every push through the versioned pre-push hook rather than only in CI. Source: packages/proxy/tests/anomaly_corpus_test.rs.

Three limits, because a rate without them is marketing:

  • It is a lower bound. BFCL is API-orchestration traffic filtered to successful completion — short (median 6 calls) and clean. Every sequence detector's exposure grows with trajectory length, and agentic coding runs are far longer.
  • It covers 8 of 26 detectors. Seven against the two corpora above, plus one measured against 10,753 real tool and parameter descriptions. The other eighteen read fields no public corpus supplies — graph depth, workflow budget, DLP findings — or fire only on an operator declaration and so have no false-positive rate to measure at all. The split is generated from the registry at test time into packages/proxy/tests/corpus/BASELINE.txt, and a gate fails this page if the two disagree.
  • It says nothing about recall. Nothing in the corpus records a missed catch, so recall is unmeasurable from this data in principle, not merely unmeasured.

When to Choose Portkey

  • You only need request-level observability and caching for LLM API calls
  • Your use case is pure LLM API routing without tool-call interception
  • You don't need synchronous enforcement

Summary

Portkey is an LLM gateway. Intutic is an AI agent firewall. They solve different problems at different layers. If your AI agents interact with infrastructure — files, databases, APIs, git — Intutic is the enforcement layer you need.


The circuit breaker for AI agents