{% extends "base.html" %} {% block title %}{{ form_title|capitalize }} - Memorizz{% endblock %} {% block head %} {% endblock %} {% block content %} {% macro section_summary(key, title, description) %} {{ title }} {{ description }} {% endmacro %} {% from '_ui.html' import page_header, id_chip %} {% set form_back = ('/agents/' ~ agent_id ~ '/playground', 'Agent playground') if is_edit else ('/agents', 'All agents') %} {% if is_edit %} {% call page_header(form_title|capitalize, 'Instructions, model, memory, tools and runtime. Every setting here has a Python SDK equivalent.', 'Agents', back=form_back) %} Agent ID{{ id_chip(agent_id|string, 40) }} {% endcall %} {% else %} {{ page_header(form_title|capitalize, 'Instructions, model, memory, tools and runtime. Every setting here has a Python SDK equivalent.', 'Agents', back=form_back) }} {% endif %} {% if error %}
! {{ error }}
{% endif %} {% if template_notice %}
{{ template_notice }}
{% endif %} {% if not is_edit and agent_templates %}

Start from a template

Fills in the form below. Review it, then save the agent.
{% for template in agent_templates %}
{{ template.category }} {% if not template.builtin %}Yours{% endif %}

{{ template.title }}

{% if template.summary %}

{{ template.summary }}

{% endif %} {% if template.chips %}
    {% for chip in template.chips %}
  • {{ chip }}
  • {% endfor %}
{% endif %}
{% if not template.builtin %}
{% endif %}
{% endfor %}

Make your own: set up the form, then use Save as template at the bottom. An agent's edit page has it too.

{% endif %}
{% if is_edit %}{% endif %} {% if not is_edit %} {% endif %}
{{ section_summary('identity', 'Identity', 'What the agent is called and the instruction it always follows.') }}

Sent with every request, ahead of memory and the conversation. Keep it to the agent's job, rules and tone.

Sets the default memory types. Assistant keeps conversations, a persona and entity facts; Workflow keeps tool workflows; Deep research keeps a shared research memory.

{{ section_summary('model', 'Model', 'The model that answers, and an optional cheaper background model for summaries, compaction and consolidation.') }}

Optional provider-specific fields (e.g. azure_endpoint, api_version, ollama host, HuggingFace settings, temperature, base_url for local-openai).

Summaries, context compaction, reflection, skill distillation and memory consolidation run on this model; replies keep the chat model. A smaller, cheaper model is usually enough.

{{ section_summary('persona', 'Persona', 'The name, role, goals and background the agent speaks from. Optional.') }}

Presets apply the role's default goals and background. Edit the fields below afterwards to customize.

Selecting a saved persona links this agent to its evolution history. Edits become a new version when saved.

{{ section_summary('memory', 'Memory', 'What the agent remembers, who can see it, and how it is kept tidy.') }}

Comma or newline separated. Blank gives the agent a memory of its own when it first runs; share an ID to let agents share a memory.

Facts about people, places and things, recalled when relevant.

Records multi-step tool workflows so the agent can reuse them.

Reuses an earlier answer to a near-identical question.

Conversation privacy and memory upkeepSealed conversations, where entity facts live, background consolidation

Nothing a user says in one conversation reaches another: recall, entity facts and cached answers stay in their conversation, and the shared persona can't be changed from one. Knowledge bases stay shared.

Where the facts the agent stores about people and things live. A sealed conversation keeps them to itself.

Merges duplicate entities and summaries, retires facts stored twice or replaced by newer ones, and adds facts the user stated that were never saved. Nothing is deleted; every change can be undone with memorizz learning consolidation-restore.

Off leaves each plan waiting for review on the learning control plane.

{% set fg = forgetting if forgetting is defined and forgetting else {} %}
Forgetting (per-agent overrides)How memories are ranked and when unused ones are hidden

Memories are ranked by recency since last use, importance and relevance (Generative Agents). Blank fields inherit the global defaults from Settings → Forgetting mechanism.

Suppression only ever hides a memory from retrieval after an approved dry run on the learning control-plane page; nothing is deleted and every suppression can be restored.

{{ section_summary('learning', 'Learning', 'Turn repeated successful work into skills, under review.') }}

Continual learning enables this automatically unless you explicitly turn it off.

User authority treats a retrieved skill as optional task context. Developer authority gives an activated skill application-instruction priority below system policy. OpenAI receives a developer message; Anthropic receives the same reviewed instructions in its top-level system parameter.

Required for developer authority so generated skills cannot gain application-level authority without an explicit activation review. Existing skills keep the authority stored on their own record.

Runs deterministic comparisons in a background queue after the response is stored. Shadow skills are not injected, and no LLM judge or tool is called by this evaluator. Semantic retrieval may use the configured embedding provider. Readiness remains advisory; activation is always explicit.

{{ section_summary('tools', 'Tools & integrations', 'Web search, code execution, browser control, skills and connected services.') }}
Reuse results of repeated calls to tools marked cacheable, and MCP tools their server marks read-only and idempotent. Results stay fresh for 5 minutes.

When enabled, the agent gets `internet_search` and `open_web_page` tools. Configure API keys in Settings.

Enable code execution in a secure sandbox. Requires the corresponding API key in Settings (E2B, Daytona) or GraalPy installed locally.

Adds the browser_control tool. Every model-initiated task is treated as side-effecting and pauses for durable operator approval. Runtime, model, domain allowlist, headless mode, step limit, and timeout are configured with the MEMORIZZ_BROWSER_USE_* settings.

MCP servers such as Notion, Gmail, Google Calendar and GitHub are attached on MCP connections{% if not is_edit %} once the agent is saved{% endif %}. Every change they make waits for approval.

{% if agent_tools %}
Registered tools {{ agent_tools|length }}
{% for tool in agent_tools %}
{{ tool.name }} {% if tool.description %} {{ tool.description }} {% endif %}
{% endfor %}

Tools are registered programmatically via the Python SDK. This list is read-only.

{% endif %}
{{ section_summary('runtime', 'Runtime & orchestration', 'Tool-call limits, coding harnesses, delegates and access to a codebase.') }}

Maximum tool-calling rounds per run (default: 20).

Continuous mode may consume a very large number of tokens. The agent will keep running tool loops until the task is complete.

Agent harness runtimeCodex, Claude Code and other coding agents

The model the harness runs. Blank uses the harness's own default.

MemoRizz remains the memory, approval, observability, and verification control plane. Runtime mode routes the complete turn externally; delegate mode gives the native MemAgent bounded harness tools. Risky run envelopes require host approval.

Open the Agent Harnesses console to probe adapters and inspect durable runs.

Delegates{% if delegate_ids %} {{ delegate_ids|length }}{% endif %}Other agents this one hands work to

Delegates are other saved agents this agent hands parts of a request to. The agent's model splits each request among them, each delegate works on its part as a subagent, and the agent combines their results. In harness runs each delegate shows as a subagent in the trace. Every delegate makes its own model calls, so delegated requests cost more.

Agents to delegate to {% for choice in delegate_choices %} {% else %}

There are no other saved agents yet. Add a harness below, or create the agents you want to delegate to first, then pick them here.

{% endfor %}
{% if not ui_read_only %} {% endif %}

Off keeps the delegates saved but the agent answers every request itself.

Off makes such a request fail instead.

Listing them skips one model call.

{% if delegation_has_plan %}

This agent follows a fixed plan set in code. The plan is kept as it is; these settings choose which agents it can use and how their results are combined.

{% endif %}
Codebase accessRead files and run allowlisted commands

When enabled, the agent can inspect files and run allowlisted commands within configured roots.

One path per line (or comma-separated). Empty uses the current working directory.

Disabled by default. Enables file creation and edits under allowed roots.

Deletes require writes and remain guarded by root and wildcard protections.

{{ section_summary('channels', 'Automations & channels', 'Scheduled jobs and the channels people can reach the agent on.') }}

When enabled (and Oracle is connected), the agent can create durable scheduled jobs from chat.

IANA timezone name used when timezone is omitted for automations.

When enabled, this agent can be set as the active WhatsApp communicator. Users can then chat with this agent via WhatsApp.

This message will be sent when a user first contacts the agent via WhatsApp (feature coming soon).

Cancel
{% endblock %} {% block scripts %} {% endblock %}