hotel-agent. The saved manifest
is your reusable source; each new agent gets its own copy to validate against.
On this page:
- Quickstart: save a contract and use it
- Create the contract: choose rules and save
- Build an agent: guided setup or a coding assistant
- Check the agent: validate and compile
- Advanced: external editors, storage and command help
- Troubleshooting: common symptoms and fixes
- Where to go next
Quickstart
Run these complete commands from the directory that will hold your agent:Terminal
A manifest approves choices; it does not create models, tools or prompts.
Complete the agent setup before validating or running it.
1. Create the contract
Inacme-corp, set the company name and revision under Identity.
Then open the sections your company needs to restrict.
Omitted rules add no restriction, so you do not need to fill every section.
For Models, choose a role, then Add provider. Selecting a service offers
Allow all models or Add model ID. The second opens the input directly;
repeat it for more models. Each role supports several providers.
Keep
slng as the provider for models served through SLNG. Its model IDs can
name different makers. Direct deepgram or cartesia connections are separate
provider entries. Approval still depends on the target supporting that binding.
Move through the editor
Arrow keys edit text in a form; they do not move between its controls.
After adding a value, Add stays selected: press Enter to add another.
Completed edits stay in the draft when you leave a list or section.
New provider and region entries join it once their required fields are complete.
Switching sections asks before discarding incomplete input.
Only Review and save → Save manifest writes the file.
The review names changes, validation errors and the destination.
Existing saved names are never overwritten by
create.
2. Build an agent from it
Choose one route for the samehotel-agent example:
These commands are alternatives. Do not run them all against the same directory.
--manifest selects directly, even if an unrelated default is broken.
--from-manifest opens a picker and cannot be combined with --manifest or --draft.
For the assistant route, install the Unmute skill and
give it the use case and saved name acme-corp. It creates the draft, reads the
copied rules, implements the agent, then validates and compiles it.
A draft has no chosen models, targets or channels and is not yet runnable.
Both routes copy the exact contract into hotel-agent/manifest and link it
from agent.yaml. Commit both files. Validation then works on another computer
or in CI without the saved library.
3. Check the agent
After completinghotel-agent, run the validation and compilation commands
from the quickstart. Both read hotel-agent/manifest, not the saved library.
Fix the agent when it violates a company rule; do not weaken the contract.
A successful compile does not test a conversation. Use the browser loop
for LiveKit or Pipecat. SLNG has no unmute dev; follow its
deployment workflow.
Advanced
Update the saved contract
Reopen the same contract when your company rules change:Terminal
Editing
acme-corp does not change hotel-agent/manifest or any existing
package. See updating a package contract
before replacing its copy.Choose the default for future agents
Terminal
unmute init uses this default. The first saved manifest becomes the
default automatically; later creations offer to change it.
Direct selection with --manifest changes only the new agent.
manifest use requires a valid saved manifest and changes no existing package.
Edit YAML in an external editor
Use this alternative when you prefer YAML or need to repair an invalid saved file:Terminal
--editor uses VISUAL, falling back to EDITOR. The editor must wait until
you close the file. This edits the complete contract, not a fragment to merge.
The same flag also works with manifest create acme-corp --editor for a new name.
Temporary drafts are validated before saving. A failed editor or invalid draft
leaves the saved file untouched and reports the draft path.
Successful replacements use the same backup protection as the terminal editor.
Storage and terminal support
Saved files live under the user config directory atunmute/manifests/<name>/manifest; unmute/default-manifest holds the default name.
Names use letters, digits, hyphens and underscores. Omitting a name from
manifest create prompts for one.
The editor needs at least 60 columns and 18 rows. Smaller terminals retain the
draft and ask you to resize. TERM=dumb uses numbered prompts with :sections
and :help instead of F2 and F1.
The editor does not offer Allow nothing for models. Existing empty model
rules must be repaired before saving. YAML and --editor still support them;
see the manifest reference for all rule meanings.
Command help
Terminal — unmute manifest --help
Terminal — unmute manifest create --help
Terminal — unmute manifest edit --help
Terminal — unmute manifest use --help
Troubleshooting
Where to go next
Build an agent
Create hotel-agent from the contract you saved.
Use a coding assistant
Let the skill complete the use case within your company rules.