Skip to content

Proposal: add a policy decision layer for agent actions #154

Description

@aparey

Proposal

Add a small deterministic policy decision layer for agent actions.

This is an off-menu layer proposal related to PR #110. The intent is not to replace auth, privacy, trust, payments, or coordination. It adds a narrow decision point an agent can call before taking a risky action.

Why this belongs in NANDA Town

Existing layers answer adjacent questions:

  • auth: who is allowed to hold a credential?
  • privacy: who can see a message?
  • payments: can value move?
  • trust: how reliable is a counterparty?

A policy layer answers a different question: should this concrete action be permitted, denied, or require approval right now?

That matters before agents publish data, spend funds, call external tools, or mutate authority-bearing resources.

Proposed shape

Core interface:

  • PolicyRequest: actor, action, resource, data classes, optional amount, purpose, metadata
  • PolicyDecision: permit, deny, or approval_required
  • Policy: runtime-checkable protocol with decide(request, *, now)

Reference plugins:

  • strict_rules: deny-by-default policy
  • allow_all: intentionally unsafe foil for validators

Scenario:

  • policy_guard
  • Plugin selected from task.config.policy_plugin, not from global LayerConfig
  • Validators check safe reads, sensitive public export denial, high-value payment approval, unknown-amount payment approval, and deny-by-default admin behavior

PR

Prototype: #110

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    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