Repository navigation
v0.24.3
pi now builds the system prompt: SYSTEM.md and APPEND_SYSTEM.md replace persona.md. An agent with no default model still opens its conversations. entries() carries an answer's thinking.
This patch release contains breaking changes. Read Upgrading first.
Upgrading from 0.24.2
persona.mdis refused (#709). Move its content:- to
APPEND_SYSTEM.mdif it holds standing instructions. This text is added to pi's default prompt, which already says who the agent is. This is the usual case, and whatinitnow scaffolds. - to
SYSTEM.mdif it gives the agent an identity of its own. This text replaces pi's default prompt.
- to
createPiAgentFromDir(...).modelSpecisstring | undefined(#708). It is undefined when no default model is set (modeloption,FASTAGENT_MODEL, ormodelinfastagent.config.ts). Code that used it as astringno longer typechecks.- Opening an agent without a default model no longer throws
missing model(#708). A client that caught that error should handlefailed { code: "missing_model" }at invoke instead.
Breaking
Prompt (#709)
- pi builds the system prompt.
piBasePromptandassembleSystemPromptare removed. FastAgent hands piSYSTEM.md(or.pi/SYSTEM.md) as a replacement for pi's default,APPEND_SYSTEM.md(or.pi/APPEND_SYSTEM.md) as an addendum, andAGENTS.mdas project context. FastAgent's own sections (deferred tools, and the self-change note on a deployed host) are added as named sections, so they stay in place under aSYSTEM.md. The machine's~/.pi/agent/SYSTEM.mdandAPPEND_SYSTEM.mdare never used. persona.mdis refused, with a message namingSYSTEM.mdandAPPEND_SYSTEM.md.createPiAgentFromDefinition(dir, { tools })without read/bash/edit/write is refused unlessbaseor aSYSTEM.mdsupplies a prompt, because pi's default prompt describes those tools. A blankSYSTEM.mdorAPPEND_SYSTEM.mdis reported and not used. A blankbaseis refused.LoadedDefinition:personais removed;systemPrompt?,appendSystemPrompt?,prompts,shadowed,ignoredare added. Ininfo --json,personais replaced bysystemPrompt,appendSystemPrompt,prompts,shadowed,ignored.- A skill name containing
/is refused in the definition. A machine skill with such a name is left out, with a warning.
Models (#708)
AgentAssembly.modelSpec, themodelSpecreturned bycreatePiAgentFromDir, andCreatePiAgentFromDefinitionOptions.modelare optional.PiBoundaryWiring.defaults.modelis optional.resolveSessionSettingsreturnsundefinedwhen a session has no model.
New
- An agent with no default model still opens (#708, closes #706). This applies to
createPiAgentFromDirandcreateAgentService.sessions.list(),entries(),state()andupdate()work.- A session that records its model runs on it. pi records the model a session starts on, so every session that has run has one.
- A session with no model of its own fails its invoke with
failed { code: MISSING_MODEL_CODE ("missing_model"), retryable: false }and leaves no record behind.compactanswers the same code.update({ model })gives the session a model. - The CLI is unchanged:
dev,start,invoke,routine runandchatstill refuse to start without a default.
entries()carries an answer's thinking (#710, closes #707). Anassistantentry hasthinking?: string, exactly the text its livemessage_delta { channel: "thinking" }deltas add up to, so reasoning is still readable after a reload or restart. Redacted reasoning is left out, both live and read back. There is one exception: on Bedrock, a reasoning block that streams readable text and then turns redacted shows that text live but not when read back (seedocs/design/session-control.md).- Where the definition's files are read (#709). Skills come from
skills/, then.pi/skills/, then.agents/skills/, then the machine's. Prompt templates come fromprompts/, then.pi/prompts/, then the machine's. Extensions are read fromextensions/only. A name defined twice inside the definition is reported. The/menu (commands()) and dispatch read the same merged list. deploypreflight loads the definition, so a refusal in it (a leftoverpersona.md, a skill name containing/) stops--runbefore an image is built.infoand the startup report show which prompt is in use (pi's default + APPEND_SYSTEM.md, orSYSTEM.md) and the prompt templates.
Docs
The design notes for the agent model and its implementation plan (#703, #705), stage 1 of which is #709.
Full Changelog: v0.24.2...v0.24.3