For DEBUG=False, collect and serve static files.
python manage.py collectstatic
Also confirm your web server serves Django admin static files.
If the browser still shows old styles, hard refresh the page. Admin assets often use cache-busting query strings such as guided-v8.
Confirm the model admin uses the ai_hub styled change form or mixins.
Expected behavior:
If a new model admin is added, connect it to the shared form style.
Check:
api_key_env_var exists in the process environment,base_url is correct for local providers,For Ollama, confirm:
GET <base_url>/api/tags
returns installed models.
The control center may warn when a configured model is not reported by the provider.
Check:
Examples:
ollama/qwen3:8b
qwen3:8b
gpt-4.1-mini
The exact accepted form depends on the provider adapter.
The training provider is a deterministic stub. Its model name must be exactly training or start with training/ (for example training/assistant). Saving a training-provider model with any other name fails with:
Training-provider models must be named 'training' or start with 'training/'
This is intentional: any other name would not be routed to the stub and would fail at runtime against the real client. Rename the model to follow the convention.
The GAME workspace highlights agents that are already used in GAME sessions or look GAME-ready.
To make an agent easy to identify as GAME-ready, include goal-loop keys in the input contract:
{
"required": ["goal", "iteration", "memory", "game_response_contract"]
}
Also mention goal, action, memory, observation, completion, and final answer in the prompt.
If strict response contracts are enabled, the agent must return valid JSON with:
actionmessagecompletefinal_answerExample:
{
"action": "finish",
"message": "The goal is complete.",
"complete": true,
"final_answer": "Final answer."
}
If this fails often, reduce prompt complexity and keep the first goal smaller.
A GAME service can raise:
GAME feature 'AI_HUB_GAME_..._ENABLED' is disabled. Set ... =True in Django settings to enable it.
This means the matching feature flag is off (the reusable default is fail-closed). Enable the flag in settings or the environment — see 03_CONFIGURATION.md. Remember flags gate the service layer only; the admin add/change forms write directly to the model.
A goal stays in running if its session never reached a terminal state (an interrupted run, or stub sessions left by tests). Cancel orphaned goals — those with no active session — with:
python manage.py cleanup_orphaned_goals --dry-run
python manage.py cleanup_orphaned_goals
A goal with an active session (pending/running/waiting_async) is never touched.
Check:
Common message:
final_output must be valid JSON
Possible causes:
max_tokens_default was too low,Recommended fixes:
final_context.final_output.final_context.final_output_parse_error.The runtime protects against running the same session twice.
Create a new session if you want to rerun the same goal or source payload.
WAITING_ASYNC means the session intentionally stopped for continuation.
Use a worker or continuation process if your runtime mode expects asynchronous completion.
Check:
Warnings are intended to surface configuration drift.
Common causes:
Ask me anything — agents, pipelines, GAME loops, setup or configuration.
Enter to send · Shift+Enter for new line · Ctrl+/ to toggle · Full history →