LLM and bot participants
A Behaverse task is normally completed by a human participant. Setting its agentType to bot hands the task to a simulated participant instead, which is useful for:
- Piloting – run the full study end-to-end before recruiting anyone.
- Simulation – generate synthetic data with a known response policy (e.g. an 80%-accuracy “tired” participant).
- Multi-agent studies – mix human and bot participants in the same flow. See Multi-agent collaboration.
Response sources
Bot behavior is configured per task in the botConfigurations YAML property. The ResponseSource field selects the policy:
ResponseSource |
Behavior |
|---|---|
internal |
Unity’s built-in bot, shipped with the Behaverse runtime. |
external |
Uniform random responses, generated outside the task. |
llm |
Responses generated by an LLM (Claude or Ollama), optionally with vision. |
LLM provider setup
Global LLM defaults live in the modeler’s Settings: provider (claude or ollama), model, and the Ollama endpoint URL (default http://localhost:11434). A task’s botConfigurations can override the provider and model per task via the LLM: block.
botConfigurations
A worked example from the shipped bot_claude.studyflow – a “tired participant” persona playing a 1-back warm-up block:
ResponseSource: llm
LLM:
Provider: claude
Model: claude-haiku-4-5
Prompt: |
You are a tired participant near the end of a long 1-back session.
Aim for about 80% accuracy. Occasionally miss matches when your
attention drifts. Never explain; reply with exactly Match or NonMatch.
Speed: 20
SkipInstructions: trueThe key fields:
Prompt– free-form persona/system prompt. Be explicit about the expected answer format (“reply with exactly Match or NonMatch”) so responses parse cleanly.IncludeScreenshot: true– attaches a PNG frame of the task to each request, for visual tasks that need a vision-capable model (e.g. WhichOne).Speed– bot pacing multiplier.SkipInstructions– skip the instruction screens, which the bot does not need.MaxResponseTime– LLM round-trips are slower than human key presses; bumpMaxResponseTimein the task’sconfigurations(and/ormaxResponseTimeinbotConfigurations) so the bot is not timed out mid-request.
See the property descriptions in src/assets/schemas/behaverse.moddle.yaml for the full vocabulary.
Shipped examples
Three ready-to-run examples are available from the modeler’s Examples menu (sources in src/assets/examples/):
bot_claude.studyflow– Claude-powered bots with distinct personas, including a vision task viaIncludeScreenshot.bot_ollama.studyflow– the same pattern against a local Ollama server.bot_external.studyflow– uniform random responses, no LLM required.
What’s next
- Running a studyflow – how the runner executes Behaverse tasks, and the timeline merge semantics for
configurations. - Elements – the Behaverse task element reference.
- Multi-agent collaboration – modeling studies with several interacting agents.