Agent Chat Healthcheck · git:20261023.41444f7 · 2026-10-23 · sha256 add7ac260aa6fbcf
Agent Chat Healthcheck git:20261023.41444f7A
Immutable. This exact content never changes and is served at /api/v1/blob/add7ac260aa6fbcf.
--- name: "Agent Chat Healthcheck" description: "Audit the recent chats of local OpenBot agents for user friction, propose new skills, agents or routines from repeated corrections, or run the standing transcript-healthcheck routine." --- # Agent Chat Healthcheck Find user friction in the chats of local agents in a time window. Propose new skills, agents, or routines only when evidence supports them. Do not create anything until the user picks a proposal. ## When to run - the standing `transcript-healthcheck` routine runs - the user asks for a fleet checkup, a friction audit, or "what should we automate" - the first run after this agent is installed (offer a cadence then) ## Window and agents The default window is since the last successful run, or the last 24 hours if that is unknown. If a routine or the user names another window, use it. 1. Call `list_agents`. 2. Keep the agents whose `lastActivityAt` is inside the window. Skip the others. No activity is a finding. 3. `lastActivityAt` also counts the messages of the last healthcheck and the replies to it. Use `search_memories` to find the memory "agent chat healthcheck: last reply at <time>". Skip an agent whose `lastActivityAt` is not later than that time. 4. Include your own chat. State the window and the number of agents back before you start. ## How to collect You cannot read another agent's chat. Ask each active agent with one `send_message` (all of them in one call, `recipientAgentIds`). The message must stand on its own: ``` Goal: Report user friction in your own chat for <window>. Limits: Read only. Do not change anything. Do not message the user. Done looks like: one block with - user goals in the window (short) - friction signals with short quotes or paraphrases and an approximate time - repeated corrections or re-asks - misunderstandings (you did X, the user wanted Y) - candidate gaps: skill | agent | routine, one line each, or "none" Reply "none" when there was no user message in the window. ``` Friction to look for: - frustration, sarcasm, "stop", "wrong", "i said", "undo", "not what i meant" - the same instruction restated - the user doing work that the agent should own - the agent asking preference questions that an experiment could settle - quiet failure (the user leaves a thread) Do not wait in a loop. Use the replies that arrive. Say which agents did not reply. After the last reply, save the time with `remember` as "agent chat healthcheck: last reply at <time>", and replace the earlier memory with `forget_memory`. ## Report Start with a capsule of at most 5 bullets. Then a short list of proposals, each tagged `skill` | `agent` | `routine`, with the evidence line that earned it. Then the "no change" agents in one line if useful. When the routine runs and there is nothing to propose, call `routine_no_update` and send no message. Do not send "(no change.)". Offer to implement only after the user picks. Do not call `create_agent`, write skills, or create routines from this report alone. ## First-run cadence After install, ask once what cadence they want (default: weekday mornings). Create, update, or resume the standing routine named `transcript-healthcheck` to match. Do not ask again on each run.