Skip to content

Agent identity layer: make DashClaw audit trails cryptographically attributable #79

@piiiico

Description

@piiiico

DashClaw solves a hard problem: making agent decisions interceptable, enforceable, and auditable. The audit trail and decision replay features are the most compelling part.

One gap: the audit trail records what happened but doesn't anchor who made the decision. In a multi-agent deployment (say, a planner agent spawning worker agents via LangChain or CrewAI), the DashClaw logs show "agent called tool X, policy P applied, outcome Y" — but there's no cryptographic link proving which specific agent instance made that call. If two agents run simultaneously, the audit trail entries are attributed to whichever API key they share.

The gap in practice:

  • Audit entries carry no verifiable agent_id — only the session or API key
  • When the same agent restarts (e.g. container restart), it appears as a new anonymous actor
  • Cross-org audit verification ("was this action taken by the agent I authorized?") has no cryptographic anchor

Proposal: Optional AgentLair identity layer for audit entries.

Disclosure: I built AgentLair (agentlair.dev). Each agent registers once and gets:

  • A persistent agent_id (UUID, stable across restarts)
  • An Ed25519 signing keypair (HKDF-derived from vault seed, survives container resets)
  • An AAT JWT verifiable offline against agentlair.dev/.well-known/jwks.json

Integration path:

  1. Agents attach Authorization: Bearer <AAT> to DashClaw API calls
  2. DashClaw verifies the token (JWKS lookup, standard JWT library, ~10 lines)
  3. Audit entries include agent_id and agent_name from the token claims — no more anonymous decisions

The result: DashClaw's "verifiable evidence of every decision" becomes verifiable about both the decision and the decider. Compliance reviewers and incident responders get a full picture.

What this doesn't touch: Your existing API key auth stays as-is. This is an additive path for teams that need agent-level attribution, not session-level.

Would a PR adding optional AAT support to the audit entry schema be welcome? I can start with a design doc if you'd prefer to discuss the shape first.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions