{% load json_filters %} {# Read-only summary of agentic controls — only shows fields that have values. #}
{% if agentic.tools.expected or agentic.tools.forbidden or agentic.retrieval.sources or agentic.trajectory.required_sequence or agentic.budgets.max_tool_calls or agentic.enforcement.mode %}

Trace and tools

{% if agentic.tools.expected %}
Required tools: {{ agentic.tools.expected|tools_names }}
{% endif %} {% if agentic.tools.forbidden %}
Forbidden tools: {{ agentic.tools.forbidden|join:", " }}
{% endif %} {% if agentic.retrieval.sources %}
Required sources: {{ agentic.retrieval.sources|join:", " }}
{% endif %} {% if agentic.trajectory.required_sequence %}
Required sequence: {{ agentic.trajectory.required_sequence|join:" → " }}
{% endif %} {% if agentic.budgets.max_tool_calls %}
Max tool calls: {{ agentic.budgets.max_tool_calls }}
{% endif %} {% if agentic.enforcement.mode %}
Enforcement mode: {{ agentic.enforcement.mode }}
{% endif %}
{% endif %} {% if agentic.retrieval.min_documents or agentic.retrieval.max_documents or agentic.rerank.required or agentic.rerank.min_calls or agentic.rerank.max_calls %}

Retrieval and reranking

{% if agentic.retrieval.min_documents %}
Min retrieved documents: {{ agentic.retrieval.min_documents }}
{% endif %} {% if agentic.retrieval.max_documents %}
Max retrieved documents: {{ agentic.retrieval.max_documents }}
{% endif %} {% if agentic.rerank.required %}
Require reranking: yes
{% endif %} {% if agentic.rerank.min_calls %}
Min rerank calls: {{ agentic.rerank.min_calls }}
{% endif %} {% if agentic.rerank.max_calls %}
Max rerank calls: {{ agentic.rerank.max_calls }}
{% endif %}
{% endif %} {% if agentic.policy.read_only or agentic.policy.allowed_data_scopes or agentic.policy.forbidden_data_scopes or agentic.policy.forbidden_side_effects or agentic.policy.allowed_destinations or agentic.policy.allow_side_effects %}

Policy

{% if agentic.policy.read_only %}
Read-only policy: on
{% endif %} {% if agentic.policy.allowed_data_scopes %}
Allowed data scopes: {{ agentic.policy.allowed_data_scopes|join:", " }}
{% endif %} {% if agentic.policy.forbidden_data_scopes %}
Forbidden data scopes: {{ agentic.policy.forbidden_data_scopes|join:", " }}
{% endif %} {% if agentic.policy.forbidden_side_effects %}
Forbidden side effects: {{ agentic.policy.forbidden_side_effects|join:", " }}
{% endif %} {% if agentic.policy.allowed_destinations %}
Allowed destinations: {{ agentic.policy.allowed_destinations|join:", " }}
{% endif %} {% if agentic.policy.allow_side_effects %}
Allow side effects: on
{% endif %}
{% endif %} {% if agentic.guardrails.required or agentic.guardrails.must_pass or agentic.guardrails.before_actions or agentic.approvals.required_for or agentic.approvals.must_precede_execution %}

Guardrails and approvals

{% if agentic.guardrails.required %}
Required guardrails: {{ agentic.guardrails.required|join:", " }}
{% endif %} {% if agentic.guardrails.must_pass %}
Must-pass guardrails: {{ agentic.guardrails.must_pass|join:", " }}
{% endif %} {% if agentic.guardrails.before_actions %}
Before actions: {{ agentic.guardrails.before_actions|jsonify }}
{% endif %} {% if agentic.approvals.required_for %}
Approvals required for: {{ agentic.approvals.required_for|join:", " }}
{% endif %} {% if agentic.approvals.must_precede_execution %}
Approval must precede execution: yes
{% endif %}
{% endif %} {% if agentic.handoffs.allowed or agentic.handoffs.forbidden or agentic.handoffs.required or agentic.handoffs.max_handoffs or agentic.handoffs.max_depth or agentic.trajectory.max_steps or agentic.trajectory.max_retries_per_tool or agentic.trajectory.max_identical_consecutive_calls or agentic.budgets.max_errors or agentic.state.assertions %}

Handoffs, state, errors, and retries

{% if agentic.handoffs.allowed %}
Allowed handoffs: {{ agentic.handoffs.allowed|join:", " }}
{% endif %} {% if agentic.handoffs.forbidden %}
Forbidden handoffs: {{ agentic.handoffs.forbidden|join:", " }}
{% endif %} {% if agentic.handoffs.required %}
Required handoffs: {{ agentic.handoffs.required|join:", " }}
{% endif %} {% if agentic.handoffs.max_handoffs %}
Max handoffs: {{ agentic.handoffs.max_handoffs }}
{% endif %} {% if agentic.handoffs.max_depth %}
Max handoff depth: {{ agentic.handoffs.max_depth }}
{% endif %} {% if agentic.trajectory.max_steps %}
Max trajectory steps: {{ agentic.trajectory.max_steps }}
{% endif %} {% if agentic.trajectory.max_retries_per_tool %}
Max retries per tool: {{ agentic.trajectory.max_retries_per_tool }}
{% endif %} {% if agentic.trajectory.max_identical_consecutive_calls %}
Max identical consecutive calls: {{ agentic.trajectory.max_identical_consecutive_calls }}
{% endif %} {% if agentic.budgets.max_errors %}
Max errors tolerated: {{ agentic.budgets.max_errors }}
{% endif %} {% if agentic.state.assertions %}
State assertions: {{ agentic.state.assertions|jsonify }}
{% endif %}
{% endif %}