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

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions