{% extends "admin/_layout.html" %} {% from "_macros.html" import icon %} {% set section = "crowd" %} {% block title %}A crowd - {{ brand.name }}{% endblock %} {% block heading %}A crowd{% endblock %} {% block admin_content %} {# Its own page rather than a card on Agents, which is where it shipped in 1.6.0. Sitting there made it read as an agent-chat feature -- the owner took it for one, reasonably, because that is what the page is called -- and a crowd has nothing to do with agent chats: it works in any conversation. #}

{{ t("Several models answering one turn, in any chat. Not an agent-chat feature: it works in an ordinary conversation, and the control is in the composer beside the tool switches.") }}

{% if saved %}
{{ icon("check", "icon--sm") }} {{ t("Settings saved.") }}
{% endif %}

A chat can have more than one model in it. The chat's own model answers, then each of the others in turn; then the order runs {{ t("backwards") }}, each one asked whether it disagrees with anything; and it ends back at the first, which either closes or sends them round again.

{{ icon("warning", "icon--sm") }} One turn costs {{ t("models × rounds × 2 − 1") }} replies — four models over two rounds is fifteen — and on a single local endpoint every change of speaker also loads a different model. Larger crowds of smaller models, and sometimes of bigger ones, start going round in circles: that is what the round limit is for, and it is a limit ordinary work will reach rather than a runaway backstop.

{{ t("Off by default. With it on, every chat's composer offers the other models; a chat with none ticked behaves exactly as it always has.") }}

{{ t("Four is already eight replies a turn at one round each. More voices past that tend to repeat each other rather than add anything.") }}

{{ t("A round is out and back. Two gives the first model one chance to change its mind after hearing the objections, which is the point of the whole thing; three is where going in circles starts.") }}

{{ t("Across every speaker, not each. A member whose endpoint has stalled cannot then hold the round open all afternoon.") }}

{{ t("The disagreements are what a crowd is for; a column of bubbles saying nothing is what makes somebody switch it off. The text is still there behind a disclosure.") }}

{% endblock %}