FluxyChat

Reference

Agent tool policy

JSON policy-as-code for agent tool allow, deny, and require_approval, aligned with EU AI Act HITL.

FluxyChat evaluates a per-project JSON policy before every agent tool call. Policies merge with existing HITL gates and EU AI Act high-risk overrides.

Effects

EffectBehavior
allowTool runs normally (subject to HITL gate / EU AI Act)
require_approvalForces human approval even if tool not in alwaysRequire
denyTool blocked with policy_denied; audit row written

Policy shape

{
  "version": 1,
  "defaultEffect": "allow",
  "rules": [
    {
      "id": "approve-send",
      "tools": ["sendMessage", "postMessage"],
      "effect": "require_approval",
      "priority": 10,
      "reason": "Outbound messages require HITL"
    },
    {
      "id": "hold-search",
      "tools": ["web_search", "search_*"],
      "effect": "allow",
      "onHoldPhrase": "Searching the knowledge base…",
      "priority": 5
    },
    {
      "id": "deny-delete",
      "tools": ["delete_*"],
      "effect": "deny",
      "priority": 20
    }
  ]
}

Tool patterns support exact names, prefix* wildcards, or regex.

On-hold narration

Add onHoldPhrase to a rule to emit an agent_on_hold room event during tool execution (voice duplex or console preview). Barge-in cancels the filler on the client.

{
  "id": "hold-search",
  "tools": ["web_search"],
  "effect": "allow",
  "onHoldPhrase": "Searching the knowledge base…"
}

API

MethodPathDescription
GET/agents/tool-policyLoad policy
PUT/agents/tool-policyUpsert policy
POST/agents/tool-policy/evaluateDry-run evaluator

Dashboard: Settings → Agent tool policy (/settings/agent-tools).

Audit

Every evaluation inserts into agent_tool_policy_audit (tool, effect, rule_id, run_id, room_id).

On this page