cognis-digital

agentpassport

Community cognis-digital
Updated

Verifiable AI-agent identity + multi-hop delegation chains anchored to a human principal (the unsolved 2026 agent-auth gap)

agentpassport

Cryptographically prove which human authorized which AI agent to do what โ€” even 4 hops deep.

License: COCL 1.0 MCP Standards Suite

#ai-agents #identity #authorization #agentic-ai #mcp #security #oauth

The unsolved 2026 problem: ~80% of orgs running autonomous agents can't trace an agent's actions backto a human, and 45% still authenticate agents with shared API keys. OAuth/MCP handle one hop โ€” but thedelegation chain loses its anchor at hop 3-4. agentpassport fixes exactly that: signed, scope-narrowingdelegation chains you can verify back to a human principal.

pip install cognis-agentpassport
agentpassport issue researcher --principal chris --scopes read,search,write --key K > p.json
agentpassport delegate p.json summarizer --scopes read,search --key K2 > p2.json   # subset only
agentpassport verify p2.json --keys '{"human:chris":"K","agent:researcher":"K2"}' --require write
# โ†’ valid:false, violation: required scope 'write' not held at final hop  โœ… escalation blocked

๐Ÿ”Ž Example output

Real, reproducible output from the tool โ€” runs offline:

$ agentpassport-emit --version
agentpassport 0.2.0
$ agentpassport-emit --help
usage: agentpassport [-h] [--version] {issue,delegate,verify} ...

Verifiable agent identity + multi-hop delegation.

positional arguments:
  {issue,delegate,verify}

options:
  -h, --help            show this help message and exit
  --version             show program's version number and exit

Blocks above are real agentpassport output โ€” reproduce them from a clone.

Sample result format (illustrative values โ€” run on your own data for real findings):

{
    "findings": [
        {
            "id": "1234567890",
            "title": "Suspicious Network Traffic",
            "description": "Potential malicious activity detected on network 192.168.1.100",
            "created_by": "cognis-connect",
            "created_at": "2023-02-15T14:30:00Z"
        }
    ]
}

Usage โ€” step by step

  1. Install the tool:
    pip install cognis-agentpassport
    
  2. Issue a passport for an agent, anchoring it to a human principal with an explicit scope set. --key signs it:
    agentpassport issue researcher --principal chris --scopes read,search,write --key K > p.json
    
  3. Delegate to a child agent โ€” scopes can only narrow (subset), never escalate:
    agentpassport delegate p.json summarizer --scopes read,search --key K2 > p2.json
    
  4. Verify the chain back to the human. --keys is a JSON map of issuer-to-key; --require asserts a scope must be held at the final hop:
    agentpassport verify p2.json --keys '{"human:chris":"K","agent:researcher":"K2"}' --require write
    # -> valid:false, violation: required scope 'write' not held at final hop  (escalation blocked)
    echo $?   # non-zero when verification fails
    
  5. Automate in CI / a gateway โ€” verify the presented passport before honoring an agent action:
    - run: pip install cognis-agentpassport
    - run: agentpassport verify "$AGENT_PASSPORT" --keys "$TRUSTED_KEYS" --require write
    

Short-lived delegation (TTL / expiry)

Standing agent credentials are a blast-radius problem. Add --ttl <seconds> at issue ordelegate time and the hop carries a signed exp; verify rejects the chain once it lapses.A child's expiry is clamped to never outlive its parent. Passports issued without a TTLnever expire (fully backward-compatible with 0.1.x credentials).

agentpassport issue deploy-agent --principal release-bot --scopes deploy:staging --key K --ttl 900 > p.json
agentpassport verify p.json --keys '{"human:release-bot":"K"}'                 # valid now
agentpassport verify p.json --keys '{"human:release-bot":"K"}' --at 9999999999 # valid:false โ€” expired

--at <unix> pins the clock for deterministic checks (CI, tests); omit it in production to usethe wall clock. The verify output now also reports expires_at (earliest expiry in the chain).

Demos โ€” real, runnable scenarios

Every passport under demos/ is a genuine HMAC-signed artifact produced by thelibrary (regenerate with python scripts/build_demos.py). Each folder has a SCENARIO.md withwhere the data came from, the exact command, and how to act on the result.

Demo Scenario
02-rag-4-hop-chain 4-hop RAG pipeline anchored to a human; final hop can't write
03-escalation-tamper Hand-edited scopes โ€” caught by both bad-signature and escalation checks
04-ci-ttl-deploy 15-minute CI deploy token; valid in-window, expired after
05-least-privilege-fanout One human, three sibling agents each holding only their slice
06-rotated-key-mismatch Wrong/rotated signing key โ†’ bad signature
07-missing-issuer-key Incomplete trust map fails closed
08-mcp-tool-gating Gate MCP tool calls; shell.exec blocked, fs.write allowed
09-auto-narrow-subset Over-broad delegate request auto-narrowed to a subset

Architecture

flowchart LR
  H[๐Ÿ‘ค Human principal] -->|issue scopes| A1[Agent: researcher]
  A1 -->|delegate โІ scopes| A2[Agent: summarizer]
  A2 -->|delegate โІ scopes| A3[Agent: tool-runner]
  A3 --> V{verify chain}
  V -->|walks back to| H
  V --> R[valid? ยท principal ยท violations]

Why it's different

Every hop is HMAC-signed and can only narrow scopes โ€” escalation is detected. Verification walks thewhole chain back to the human anchor, so you get the one thing OAuth/MCP can't give you today:accountable, multi-hop agent authorization.

Use it from any AI stack

MCP server (agentpassport mcp), JSON in/out for any agent runtime, drop-in foruncensored-fleet / LangChain / CrewAI delegation.

Prior art / standards

Aligned with IETF draft-klrc-aiagent-auth (AIMS), NIST agent-identity concept paper, MCP, andMastercard Agent Pay tokenization. Production: anchor the HMAC demo in real PKI / SPIFFE.

Related

๐Ÿค– uncensored-fleet ยท ๐Ÿ›ก๏ธ guardpost ยท ๐Ÿงฐ toolguard ยท ๐Ÿ—‚๏ธ the suite

โญ Star it โ€” agent identity is the problem nobody's solved yet.

Interoperability

agentpassport composes with the 300+ tool Cognis suite โ€” JSON in/out and a sharedOpenAI-compatible /v1 backbone. See INTEROP.md for thesuite map, composition patterns, and reference stacks.

Integrations

Forward agentpassport's findings to STIX/MISP/Sigma/Splunk/Elastic/Slack/webhooks viacognis-connect. See INTEGRATIONS.md.

License

COCL v1.0 โ€” see LICENSE.

MCP Server ยท Populars

MCP Server ยท New

    Cassette-Editor

    Oh My Cassette: Chat Your Raw Clips Into a Finished Cut

    ไฝ ็š„้š่บซ AI ๅ‰ช่พ‘ๆญๆกฃ | Pocket AI co-editor for video montage โ€” AI video editing plugin & MCP server for Claude Code, Codex, Hermes & OpenCode

    Community Cassette-Editor
    trendsmcp-ai

    Trends MCP

    MCP server for live trend data. Query Google Search, YouTube, TikTok, Reddit, Amazon, Wikipedia, News sentiment, Web Traffic, App Downloads, Steam, npm and more. Works with Claude, Cursor, VS Code, GitHub Copilot, ChatGPT, Windsurf, Cline, Raycast and any MCP-compatible.

    Community trendsmcp-ai
    jacob-bd

    Gemini Notebook (formerly Google NotebookLM) CLI & MCP Server

    Programmatic access to Gemini Notebook - via command-line interface (CLI), Model Context Protocol (MCP) server, and AI agent skills.

    Community jacob-bd
    PxyUp

    Fitter โ€” web data for AI agents

    New way for collect information from the API's/Websites

    Community PxyUp
    kayhendriksen

    foehn

    Download MeteoSwiss Open Government Data โ€” weather stations, radar, hail, forecasts and climate series โ€” via Python API, CLI, or MCP server, as DataFrames, Parquet, xarray Datasets or Zarr stores

    Community kayhendriksen