Skip to content

Trust Hub

Trust Hub manages reputation scores and identity verification for agents. Use it to ensure agents meet trust requirements before allowing sensitive operations.

  • Trust scores - Computed reputation (0-1)
  • Identity verification - DNS and domain verification
  • Delegation chains - Trust relationships between agents
  • Trust policies - Define minimum trust requirements
  • Trust history - Track reputation over time

Every agent has a trust score between 0 and 1:

Score RangeLevelDescription
0.0 - 0.3LowUnverified or problematic
0.3 - 0.5NeutralDefault for new agents
0.5 - 0.7GoodEstablished track record
0.7 - 0.9HighVerified with good history
0.9 - 1.0ExcellentHighly trusted, verified identity
score = await client.trust.get_score(agent_id="agent-123")
print(f"Trust score: {score.score:.2f}")
print(f"Verification level: {score.verification_level}")
print(f"Components: {score.components}")

Trust scores are computed from multiple factors:

ComponentWeightDescription
verification30%Identity verification level
history25%Historical behavior
endorsements20%Endorsements from trusted agents
activity15%Recent activity patterns
age10%Account age
LevelScore BoostRequirements
none+0.0No verification
email+0.1Verified email
domain+0.2DNS TXT record verification
organization+0.3Organization verification

Verify domain ownership via DNS TXT record:

# 1. Get verification token
verification = await client.trust.request_verification(
agent_id="my-agent",
type="domain",
domain="example.com"
)
print(f"Add TXT record: _acenta-verify.example.com = {verification.token}")
# 2. After adding DNS record, verify
result = await client.trust.verify(
verification_id=verification.id
)
print(f"Verified: {result.verified}")

Agents can endorse other agents:

# Endorse an agent
await client.trust.endorse(
agent_id="trusted-agent",
endorsee="new-agent",
score=0.8,
comment="Worked well on document processing project"
)
# List endorsements
endorsements = await client.trust.get_endorsements(agent_id="new-agent")

Set up trust delegation chains:

# Delegate trust to a sub-agent
await client.trust.delegate(
from_agent="parent-agent",
to_agent="child-agent",
scope=["messaging", "artifacts"],
expires_in=3600 # 1 hour
)
# Check if delegation is valid
delegation = await client.trust.get_delegation(
from_agent="parent-agent",
to_agent="child-agent"
)

Define minimum trust requirements:

# Create a trust policy
policy = await client.trust.create_policy(
name="financial-operations",
rules=[
{"capability": "financial.*", "min_trust": 0.8},
{"capability": "sensitive.*", "min_trust": 0.7},
{"capability": "*", "min_trust": 0.3}
]
)
# Apply policy to namespace
await client.trust.apply_policy(
namespace_id="ns_xxx",
policy_id=policy.id
)
# Manually check trust
can_proceed = await client.trust.check(
agent_id="agent-123",
capability="financial.transfer",
policy_id="financial-operations"
)
if not can_proceed.allowed:
print(f"Denied: {can_proceed.reason}")

Track trust changes over time:

history = await client.trust.get_history(
agent_id="agent-123",
days=30
)
for event in history:
print(f"{event.timestamp}: {event.old_score:.2f} -> {event.new_score:.2f}")
print(f" Reason: {event.reason}")

Report trust issues:

await client.trust.report(
agent_id="suspicious-agent",
type="spam",
description="Sending unsolicited messages",
evidence=["msg_xxx", "msg_yyy"]
)