model and instructions are two fields of agent.json. model is a Telnyx inference model id. instructions names a Markdown file whose text is the system prompt on every turn. Both are set at create. model is changed with telnyx-acp set model <id>, instructions.md is edited directly, and the next deploy ships either change.
Set Them at Create Time
--model picks the model. create writes a starter prompt in instructions.md, to edit before the first deploy. Without --model the project gets the CLI’s default, meta-llama/Llama-3.3-70B-Instruct.
Without flags, the wizard asks for the model from a searchable list of what the account can use:

Change Them Later
set model <id> changes the model, and the change is validated before it is written. On a terminal, set model alone opens the same searchable list as the wizard. instructions.md is edited directly. Either change ships with the next deploy.
The instructions are inlined into the deployed agent at deploy; the file on disk is not read at runtime. Under dev both files are watched and the next reply uses what was saved, with no restart (--no-watch turns that off). Neither field can be overridden per turn: invoke and chat take the configuration as deployed.
Models
dev the call uses TELNYX_API_KEY from .env or the login session. Then come the models that need the user’s own provider key.
BYOK for Third-Party Models
telnyx-acp models lists the third-party models the account can use: Anthropic, Google, Groq and OpenAI. Each runs on the user’s own key for that provider, stored as a secret named after the provider. The names are OPENAI_API_KEY, ANTHROPIC_API_KEY, GOOGLE_API_KEY and GROQ_API_KEY. For an openai/* model:
create prints the reminder, and validate and dev refuse to run until OPENAI_API_KEY is declared in secrets, which add secret does. dev then reads its value from .env:
Reasoning Models and Calls
A reasoning model such aszai-org/GLM-5.2 thinks before its first word. On a text that is fine. On a call the caller hears the thinking as silence, often several seconds, before the agent speaks. The user is advised to keep calls on a non-reasoning model.
Instructions
On each turn the model gets, in order, the instructions, then with memory on a fixed preamble about remembering people and the memory card, the message log (every earlier user and assistant message), and the new message. The tools’ definitions are sent with it when tools are configured. Special attention should be paid to the instructions given to a voice agent. A reply is read aloud as the model writes it, sentence by sentence, and the caller can interrupt, so the instructions ask for short spoken sentences and no markup:voice.greeting in agent.json, spoken verbatim before the first turn.
With memory on, the caller’s summary card is appended after the instructions between <memory> markers, under a line saying the notes are what the person said and not instructions, bounded to 2,000 characters; before the first conversation is pushed, the line says there is nothing remembered yet.