agent.json is the agent. create writes it, add, remove, set and unset edit it, validate checks it, and deploy generates the deployable function from it. Every problem validate reports names the field and the fix.
Identity and Model
Phone, Email, Web and Channels
Voice and Messaging cover what happens at
deploy and at runtime.
Voice
Every knob is optional; unset, a call runs with the settings below.set voice.<knob> <value> changes one, and unset voice.<knob> restores the default.
Memory
set memory '{ … }' writes the block, set memory.namespace <name> changes one field of it, and unset memory removes it. Without the block nothing is read or written. Memory covers the behaviour.
Limits, Approvals, Tools
Tool Entries
A tool call whose execution fails answers the model with text (
{ "error": "<tool> failed: …" }) and the run goes on; arguments that fail the tool’s schema still fail the run, and an MCP server’s own error result is passed through as its text. Each call writes one {"toolCall":"<tool>", …its arguments, "ms":…,"ok":…} line to the logs, with error when ok is false.
Secrets
secrets lists names only. telnyx-acp add secret <NAME> prompts for the value (hidden; stdin when piped), stores it on the platform and binds it; the value never touches agent.json or a command line. Some secrets have a meaning of their own:
TELNYX_PUBLIC_KEY: the account’s webhook public key. A project with a phone number, an email inbox or a channel needs it; the deployed webhook handlers verify every signature with it and answer 401 without it.deployasks for it once on a terminal.OPENAI_API_KEY,ANTHROPIC_API_KEY,GOOGLE_API_KEY,GROQ_API_KEY: sent as the caller’s key for anopenai/*,anthropic/*,google/*orgroq/*model.
What Deploy Writes
deployed is the CLI’s record and is not edited by hand. It holds:
functionId,functionName(what the platform knows the function as; the verbs address it by this, so renaming the agent does not lose it),mountUrlandactorTyperevision, the active revision’s id, andrevisions, a note per revision this CLI shipped, keyed by id: the project’s git short SHA, ormanualoutside a git repositoryphones[], per number the artifacts, whetherdeploycreated them, and where the number was beforeemail, the inbox, its address and domain, the webhook, and whetherdeploycreated eachchannels[], each artifact’s previous webhook, sodeletecan restore it