Skip to content

[FEATURE] Cryptographic identity and kill switch for multi-agent crews in production #5082

@theaniketgiri

Description

@theaniketgiri

Feature Area

Agent capabilities

Is your feature request related to a an existing bug? Please link it here.

NA — this is a new feature request for production agent security.

Describe the solution you'd like

Cryptographic identity and per-agent kill switch for multi-agent crews.

When deploying CrewAI crews in production, each agent should have:

  1. Cryptographic identity — Ed25519 keypair per agent, so every action is mathematically provable
  2. Per-agent boundaries — AnalystAgent can research but CANNOT trade. TradingAgent can trade up to $10K but CANNOT delete records. Enforced at the protocol level, not the prompt level.
  3. Selective kill switch — Revoke ONE compromised agent without shutting down the entire crew

An open-source protocol called AIP (Agent Identity Protocol) that provides this. Working CrewAI demo:

from aip_protocol import AgentPassport, RevocationStore

analyst = AgentPassport.create(
    domain="acme-capital.com", agent_name="analyst-bot",
    allowed_actions=["research", "analyze"],
    denied_actions=["trade", "delete_records"],
    monetary_limit_per_txn=0,
)

trader = AgentPassport.create(
    domain="acme-capital.com", agent_name="trading-bot",
    allowed_actions=["trade", "analyze"],
    denied_actions=["delete_records"],
    monetary_limit_per_txn=10000,
)

# Kill only the rogue trader — analyst keeps working
store = RevocationStore()
store.revoke(agent_id=trader.agent_id, reason="anomalous_trading_pattern")

Describe alternatives you've considered

  • Prompt-level guardrails — Telling agents "don't do X" in system prompts. Easily bypassed by prompt injection.
  • API key scoping — Limits API access but doesn't verify which agent in a crew is making the call or enforce monetary limits.
  • LLM-as-judge — Using a second LLM to validate actions. Adds ~500ms latency and is probabilistic, not deterministic.

AIP is deterministic, sub-millisecond, and operates outside the LLM context — it cannot be bypassed by prompt engineering.

Additional context

Willingness to Contribute

Yes, I'd be happy to submit a pull request

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions