Skip to content

Custom evaluation steps and order and switching decision types for safety categories #3967

Description

@nervgh

Overview

Docker Agent has Safety Modes and single Evaluation Order.

I need an autonomous safe (pre-configured) agent which works on tasks for hours without my (human) engagement. Let's call it Human-On-The-Loop (not Human-In-The-Loop).

Let mean under "an autonomous agent" such an agent which has all appropriate permissions and no asks human's confirmation.

Let mean under "a safe agent" such an agent which constrains to perform only "safe operations" (safety mode "strict" or "balanced") plus operations which user marks as safe ones.

However, right now I have to choose:

  • use balanced safety mode to automatically allow safe operations BUT manually confirm destructive AND unknown ones
  • use autonomous safety mode to automatically allow all operations (destructive AND unknown)

But actually, my needs are:

  • autonomous working (no manual human confirmation)
  • allow my custom operations which I describe via toolset (like lint, test-unit, test-e2e)
  • allow safe operations (in terms of "safety modes")
  • deny everything else

Motivation

I want to create a safe autonomous agent easily.

I expect my agent will works for the hours without human's confirmation on operations.

I expect reusing the built-in "safety patterns".

Use cases

No response

Proposed solution

Custom evaluation steps and order

Let's imagine I can configure evaluation order:

  • deny (by default) -> allow -> ask (it's current implementation)
  • deny (by default) -> allow (no ask everything, it's very close to my needs)
  • allow (safe ops + white list via permissions) -> deny everything else (it is exactly what I need)

Switching decision types for safety categories

Let's imagine I can configure decision type for current safety categories to build my own rules:

  • allow:safe
  • deny:destructive
  • deny:uknown

Power of both: Custom evaluation steps and order + Switching decision types for safety categories

Now, I can easily describe what I need:

  1. Set the order: allow -> deny (without ask step):
  2. Allow
    1. Add allowed permissions for my custom tools like lint, test-unit, etc
    2. Reuse safety patterns for other safe operations
  3. Deny everything else

Alternatives

No response

Related issues

No response

Additional context

No response

Metadata

Metadata

Assignees

Labels

area/agentFor work that has to do with the general agent loop/agentic features of the apparea/configFor configuration parsing, YAML, environment variablesarea/securityAuthentication, authorization, secrets, vulnerabilities

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions