Deploying autonomous AI agents into production currently forces developers into a dangerous trade-off:
- The Security Nightmare: You give your agent broad API keys (AWS, Stripe, Database, SMTP). If the agent suffers a prompt injection or hallucinates, those keys are exposed in memory or used in unintended ways.
- The Automation Killer: You try to fix security by enforcing a rigid "Human-In-The-Loop" (HITL) prompt for every single action. Soon, your team suffers from alert fatigue, and the agent loses its main value: automation.
We built Pryxor (Apache 2.0 open-source) to eliminate this false choice using two core architecture principles.
1. Absolute Credential Isolation: The Agent Holds Zero Keys
Traditional guardrails inspect prompts or outputs next to the agent, but the agent process still holds the live environment tokens.
Pryxor sits between the agent and your systems as a Zero Trust Gateway.
Traditional Setup:
[Agent Process (Holds API Keys)] ---> [Prompt Guardrail] ---> [Production Systems]
*(If prompt injection succeeds, keys in memory are compromised)*
Pryxor Architecture:
[Agent Process (Holds ZERO Keys)] ---> [Pryxor Gateway] ---> [Production Systems]
*(Agent emits intention only. Keys live exclusively inside Pryxor)*
Why this matters:
Even if an attacker completely compromises the model through a complex multi-stage prompt injection, there are no credentials to steal. The agent never sees the API key, database password, or bearer token. It can only emit an intent to call a tool.
2. Optimized Human-in-the-Loop: Review by Exception Only
Forcing a human to approve every minor tool call makes autonomous agents useless.
Pryxor solves alert fatigue through a three-gate evaluation engine with an explicit HOLD state:
| Gate | Status | Execution Behavior |
|---|---|---|
| ✅ | APPROVED | Safe, within-policy calls execute automatically using Pryxor's isolated keys. |
| ⏸ | HOLD | Sensitive or out-of-bound calls are quarantined. No system is touched until approved. |
| ⛔ | BLOCKED | Malicious or unauthorized calls are dropped immediately. |
Instead of babysitting every call, your team only intervenes when an action triggers a specific risk rule (e.g., emailing an external domain, mutating production data, or exceeding a rate threshold).
How it Works in Practice
Step 1: The Agent Emits an Intention
The agent attempts to send an email to an external address. It calls the tool payload without needing an SMTP key:
{
"tool_name": "send_email",
"parameters": {
"to": "external_client@partner.com",
"subject": "Invoice Details"
}
}
Step 2: Policy Evaluation (The Exception Rule)
Pryxor evaluates the call against a simple, human-readable JSON policy (configs/sectors/email.json):
{
"type": "declarative",
"rules": [
{
"name": "auto-approve-internal",
"when": {
"tool": "send_email",
"to_domain_in": ["mycompany.com"]
},
"then": { "approve": true }
},
{
"name": "hold-external-recipients",
"when": { "tool": "send_email" },
"then": {
"hold": "EXTERNAL_EMAIL_REQUIRES_APPROVAL",
"message": "External recipient detected. Human review required."
}
}
]
}
-
Internal emails (
@mycompany.com): Executed automatically (APPROVED). Zero human friction. -
External emails: Quarantined instantly (
HOLD). The external server is never contacted, and the agent receives aHOLDstatus, ending its turn gracefully.
Step 3: Out-of-Band Human Sign-Off
An operator reviews the quarantined action in the terminal or CLI and approves it:
$ python pryxor_cli.py actions approve hold_a4bdeee3
Only after human approval does Pryxor execute the real API call using credentials the agent never saw or held.
Zero-Code Integration
Pryxor integrates with your existing stack without requiring you to rewrite your agent logic:
- Model Context Protocol (MCP): Connects natively to Claude Desktop, Cursor, and Zed out of the box.
-
Framework Adapters: Swap out standard tool definitions in LangChain, CrewAI, or OpenAI Agents SDK with
PryxorTool.
from pryxor import PryxorTool
# Replace direct API tools with Zero-Trust Pryxor proxies
email_tool = PryxorTool(
name="send_email",
runtime_url="http://localhost:8080"
)
We Need Your Honest Feedback
Pryxor is early-stage open source (Apache 2.0). The core engine runs as a lightweight Docker container with a single SQLite state file.
We built this because we believe agentic AI cannot reach real enterprise production without zero-trust execution boundaries.
We want you to tear this architecture apart:
- Is credential isolation at the proxy level enough for your production setup?
- What edge cases would break this exception-based
HOLDmodel in your pipeline?
📂 GitHub Repository: github.com/Pryxor/pryxor
⚡ Quickstart: QUICKSTART.md (Run an end-to-end HOLD walkthrough in 5 minutes)
Drop your thoughts, critiques, or feature requests in the comments below!
Top comments (0)