<pclass="small mute">{{ what }} An assistant reviews a proposal when asked, or drafts its description; its answers are shown as the person who asked, via the assistant. It never approves.</p>
{% if o.on() %}<spanclass="tag head">on</span>{% else if o.off_above %}<spanclass="tag dim"title="An assistant of this name is turned off at a level above">off above</span>{% else %}<spanclass="tag dim">off</span>{% endif %}
<formclass="tiny"method="post"action="{{ base }}/assistants"><inputtype="hidden"name="_csrf"value="{{ csrf }}"><inputtype="hidden"name="id"value="{{ r.id }}"><buttonname="action"value="test"title="Send a one-line message and show the answer or the error">TEST CONNECTION</button><buttonname="action"value="toggle">{% if r.enabled %}turn off{% else %}turn on{% endif %}</button><buttonname="action"value="delete"class="danger-btn"onclick="returnconfirm('Delete {{ r.name }}?')">delete</button></form>
<selectid="aa{{ r.id }}"name="api">{% for api in a.apis %}<optionvalue="{{ api }}"{% ifr.api== *api %} selected{% endif %}>{{ api }}</option>{% endfor %}</select>
<selectid="aapi"name="api">{% for api in a.apis %}<optionvalue="{{ api }}">{{ api }}{% if *api == "chat-completions" %} (OpenAI, Gemini, DeepSeek, Mistral, Ollama, most others){% else %} (Anthropic){% endif %}</option>{% endfor %}</select>
<pclass="small mute">Sent as a bearer token, or as the API key for Anthropic; kept sealed on the server and never shown again. Leave it empty for an endpoint that needs none.</p>
<divclass="model-row"><inputtype="text"id="amodel"name="model"list="amodel-list"placeholder="pick from List models"requiredautocomplete="off"><buttontype="button"class="small"data-list-models="{{ base }}/assistants/models"data-for="amodel"data-csrf="{{ csrf }}">LIST MODELS</button></div>
65
<datalistid="amodel-list"></datalist>
66
<pclass="small mute"data-models-note="amodel">The endpoint's own list, once the provider and token are set. A model it does not list is refused on save.</p>
{% for (from, text) in a.inherited_prompts %}<details><summaryclass="small mute">From {{ from }}</summary><preclass="snippet">{{ text }}</pre></details>{% endfor %}
76
<labelfor="aprompt">What every assistant is told here{% if !a.inherited_prompts.is_empty() %}, after the prompts above{% endif %}</label>
77
<textareaid="aprompt"name="prompt"rows="6"placeholder="Review for correctness first. This project is written in Rust; the style guide is in docs/style.md.">{{ a.prompt }}</textarea>