Run a deterministic demo with mock mode¶
You want a repeatable run in the room that does not depend on a live model, spends no tokens, and needs no API key — for a demo, an offline machine, or a flaky-network venue.
Run with the mock profile¶
This activates the mock Spring profile, which registers a deterministic in-JVM stub model and
routes every LLM role (default-llm, cheapest, best) to it. The stub matches each ConfPlanner
prompt and returns canned, valid responses — so a run completes end-to-end (you get a real
PersonalSchedule) while no provider key is read and no network call is made. It spends no
tokens and works fully offline.
The output is fixed (the same platform-leaning schedule every time) — that is the point: a repeatable demo. For a run against your own request and a real model, use a key instead (see Run against a real model).
Pass the profile through the environment, not
-Dspring-boot.run.profiles=mock: the Boot plugin forwards that flag as a program argument, which Spring Shell tries to execute as a command and fails withCommandNotFound.
Invoke the goal with plan¶
Use the plan command — it invokes the schedule goal directly:
plan prints the planning log (the derived action sequence and the world-state, cycle by cycle) by
default, so you can read the plan with no extra flags.
In mock mode use plan, not x
x / execute first ask the model to rank your free-text request against the registered
goals — and that ranking is itself an LLM call, which the deterministic mock does not answer. So
x "..." fails under the mock profile with Text content cannot be empty (the goal ranker
gets an empty response). The plan command skips ranking by invoking PersonalSchedule
directly, which is why it is the key-free path. The -p / -r verbosity flags exist only on
x (the real-model path); plan takes no flags but already prints the plan.
When to use it¶
- A live demo that must not depend on the network or on token budget.
- A quick smoke-run with no
.envconfigured.
For a run against a real model, set a key and follow Run ConfPlanner against a real model instead.
The mock profile is defined in application.yml; see the
configuration reference for the full profile list. For why mock
mode exists alongside the test harness, see
About the runtime harness.