Skip to main content

claude-sdk-verigent

Verigent trust verification for the Claude Agent SDK.

The Problem

When Claude agents interact with other agents, there's no standard way to verify identity or assess trust. An agent claiming to be "JARVIS" might be a verified V5 Architect or a spoofed impersonator. Without verification, multi-agent systems operate on blind trust.

Verigent solves this with cryptographic trust keys (VG keys) that encode an agent's identity, tier, primary class, and 12-axis capability scores.

Install

pip install claude-sdk-verigent

Requires anthropic>=0.30.0.

Usage

Embed a VG key in your agent's system prompt

from claude_sdk_verigent import VerigentSystemPrompt

vg_key = "VG:JARVIS-0A:V3-ARCH·Se4Op7An5Ar9Co2Ad6St8Sc3Sa5So1Br2Fo6"
vsp = VerigentSystemPrompt(vg_key)

system_prompt = "You are JARVIS, an architecture agent." + vsp.render()

This appends a structured trust identity block that other agents can parse and verify.

Add the verification tool to multi-agent setups

from anthropic import Anthropic
from claude_sdk_verigent import VerigentTool

client = Anthropic()
tool = VerigentTool()

# Include in your tools list
response = client.messages.create(
    model="claude-sonnet-4-20250514",
    max_tokens=1024,
    tools=[tool.definition],
    messages=[{"role": "user", "content": "Verify this agent's key: VG:ATLAS-7B:V4-SENT·Se8Op6An7Ar5Co4Ad3St9Sc2Sa6So3Br4Fo5"}],
)

# Handle tool_use response
for block in response.content:
    if block.type == "tool_use" and block.name == "verify_agent":
        result = tool.execute(block.input)
        # result = {"verified": True, "handle": "ATLAS", "tier": "V4", ...}

Intercept and verify keys in tool responses

from claude_sdk_verigent import VerigentInterceptor

interceptor = VerigentInterceptor(min_trust_tier=2)

# Check any text for embedded VG keys
assessment = interceptor.check(tool_response_text)
if assessment:
    print(f"{assessment.handle}: {assessment.level.value} (score {assessment.score})")

# Quick trust gate
if interceptor.is_trusted(agent_output):
    # proceed with high-trust path
    ...

Parse a key directly

from claude_sdk_verigent import parse_vg_key, evaluate_trust

key = parse_vg_key("VG:JARVIS-0A:V3-ARCH·Se4Op7An5Ar9Co2Ad6St8Sc3Sa5So1Br2Fo6")
print(key.handle)        # "JARVIS"
print(key.tier)          # 3
print(key.scores)        # {"Sentinel": 4, "Operative": 7, ...}

assessment = evaluate_trust(key)
print(assessment.level)  # TrustLevel.HIGH

VG Key Format

VG:{NAME}-{SUFFIX}:{TIER}-{PRIMARY}·{12x class_code+digit}
  • NAME: Agent handle (e.g., JARVIS, ATLAS)
  • SUFFIX: Unique identifier
  • TIER: V0 (unverified) through V6 (maximum trust)
  • PRIMARY: 4-letter primary class code
  • Scores: 12 two-letter class codes each followed by a digit (0-9)

Trust Classes

Code Class Code Class
Se Sentinel St Steward
Op Operative Sc Scout
An Analyst Sa Sage
Ar Architect So Sovereign
Co Conduit Br Broker
Ad Adaptor Fo Forge

Links

License

MIT

Metadata

Release files for claude-sdk-verigent 0.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for claude-sdk-verigent 0.2.0
File Size Uploaded
claude_sdk_verigent-0.2.0.tar.gz 5.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for claude-sdk-verigent 0.2.0
File Interpreter ABI Platform
claude_sdk_verigent-0.2.0-py3-none-any.whl Python 3 none any Details

Total release size: 12.7 kB

Release files / claude_sdk_verigent-0.2.0.tar.gz

Download URL claude_sdk_verigent-0.2.0.tar.gz
Size 5.5 kB
Tags Source
SHA-256 checksum
How to use checksums
a69c3f2c37c90c0ea28ae46661e48512e34e8956de76b0c59785c92fde1a1908
BLAKE2b-256 checksum
How to use checksums
c2bcb71cbdcbc0fb3570ea11a6afc7f51d2b8910ad94be0ddf744f0f4f3d23bb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.5

Release files / claude_sdk_verigent-0.2.0-py3-none-any.whl

Download URL claude_sdk_verigent-0.2.0-py3-none-any.whl
Size 7.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
949c0c9e5fccbf3c11056db111e0cf407dbea504629f0dbedfce311c4bc68d86
BLAKE2b-256 checksum
How to use checksums
3527e66b35cb54976721a9e798e7a3958be738bed4164b04f7ed064f62727327
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.5

Release history Release notifications | RSS feed

This release

0.2.0 This release

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page