Operate the Rowbutt model fallback
Check which model answers Rowbutt, keep turns off ChatGPT for a while or until a change, and drill the fallback.
Rowbutt sends each model request to ChatGPT first, and to MATE_FALLBACK_MODEL when ChatGPT cannot answer. Model routing says when. Use this runbook when MateModelPrimaryFailing fires, to keep turns off ChatGPT, or to show that the fallback can continue a thread.
Before you start#
- Be the user in
MATE_ALLOWED_USER_IDSon Discord, or inMATE_SLACK_ALLOWED_USER_IDSon Slack. - Mention Rowbutt with each command.
- For the log check, get
kubectlaccess to offsite (Get cluster admin access).
Check the route#
Mention Rowbutt with
chatgpt status.Result: mate says
Now: primary., orNow: fallback sincewith the reason and the time of the next try.Read the failures of the mate log.
kubectl --context offsite -n mate logs deploy/mate | grep 'ChatGPT failed' | tail -5Result: each line names the
reasonand the HTTPstatus.
Pause and resume#
A pause sends every turn to the fallback without a deploy. mate keeps the pause in memory, so a restart ends it. CD restarts mate at each new mate image, often several times a day.
- Say
chatgpt pausefor 60 minutes, orchatgpt pause <minutes>for up to 10080. - To end the pause, say
chatgpt resume.
Switch to the fallback until a change#
A switch in the Deployment stays through restarts.
In
clusters/offsite/apps/mate/deployment.yaml, setMATE_MODELto the value ofMATE_FALLBACK_MODEL.Set
MATE_FALLBACK_MODELtonone.Merge the change in a pull request.
Result: after Flux rolls mate, its
mate startinglog line shows"chatgpt":false. mate neither refreshes the ChatGPT token nor answerschatgptcommands, and the model answers achatgptcommand as a prompt.To switch back, revert the change in a pull request.
Result: mate answers
chatgpt statusagain. If it says mate is not signed in, do Sign Rowbutt in to ChatGPT.
Drill the fallback#
A drill shows that the fallback model can continue a thread that ChatGPT started.
In a thread that ChatGPT answered, say
chatgpt pause 5.Ask Rowbutt for a task that runs a command.
Result: the status line starts with
↪️, and the fallback model finishes the turn.Say
chatgpt resume.
If something goes wrong#
| Symptom | Cause | Action |
|---|---|---|
MateModelPrimaryFailing fires. | chatgpt.com is out of reach or fails, or refuses the request, such as for a model the plan lacks. | Do Check the route. Make sure that chatgpt.com is in clusters/offsite/apps/mate/network-policy.yaml on port 443. Check the plan. |
A turn ends with ↪️ ChatGPT's usage limit is reached. | The plan's usage limit is spent. | Wait for the reset. To stop the tries, say chatgpt pause. |
| A pause ends before its time. | mate restarted. | Say chatgpt pause again, or do Switch to the fallback until a change. |
A turn ends with 🔑. | mate holds no working ChatGPT sign-in. | Do Sign Rowbutt in to ChatGPT. |
Related#
Linked from 4
- RowbuttA chat bot, code name mate, that answers the owner in Discord and Slack threads with a coding agent whose tools run in a sandbox on the offsite cluster.
- Evaluate the Rowbutt modelsRead what Rowbutt's recorded turns say about each model, and replay its recorded tool decisions against a candidate model before changing MATE_MODEL or the fallback.
- RunbooksStep-by-step procedures for the hosts, clusters, network, secrets and apps, grouped by area.
- Sign Rowbutt in to ChatGPTSign mate in to the owner's ChatGPT subscription from chat, check the sign-in, and sign it out.