Package concepts
What a Package is, what it contains, and the rules that make it portable.
A Package is a set of AI objects that installs into an Organization as one unit and works the
same in every Organization it's installed into. It's written as plain files, checked by the CLI, and
distributed as a single signed .pkg file.
What a Package contains
| Component | Folder | How many | What it is |
|---|---|---|---|
| Agents | agents/ | Any number | An Agent's instructions, model settings, memory, tools and knowledge |
| Teams | teams/ | Any number | A lead plus member Agents, and how they coordinate |
| Workflows | workflows/ | Any number | A graph of steps: triggers, Agents, Teams, branches, human review |
| Tools | tools/ | Any number | MCP servers or OpenAPI tools the Package's objects call |
| Skills | skills/ | Any number | Packaged instructions and reference files an Agent can load |
| Knowledge Bases | knowledge/ | Any number | How documents are indexed and searched. Never the documents |
| Voice | any path | At most one | How a phone line sounds and behaves |
| SIP routing | any path | At most one | How inbound calls reach the Package. Never a carrier or a number |
The manifest, elizon.yaml, lists them all and declares everything around them: identity,
compatibility, compliance, the entry point, Slots, triggers and evaluation. See
The manifest.
One entry point
Every Package has exactly one entry point, the object that runs when the Package is started:
entryPoint: workflows.triage-flowEvery trigger (schedule, webhook, inbound call, API, manual) starts the entry point. Anything else in the Package runs because the entry point calls it.
Objects refer to each other by name
Inside a Package, objects reference each other as <collection>.<name>: agents.intake,
teams.after-hours-desk, knowledgeBases.escalation-policy. Never by a database id. At
install, the Organization creates each object and wires these names to the real resources. See
The reference graph.
What a Package never carries
A Package is written once and installed by people you'll never meet, so it never contains anything that belongs to a particular Organization:
- No secrets. No API key, token, password or connection string, anywhere.
- No destinations. No email address, channel, phone number or endpoint that output goes to.
- No accounts. No model provider account, speech account, calendar account or carrier.
- No documents. A Knowledge Base ships its settings; the installer supplies the documents.
- No Organization identifiers, and no personal data in carried text.
Everything the installer must supply is declared as a Slot. See
Slots. build refuses an artifact that would carry an
Organization identifier or personal data.
Identity and versions
A Package is identified by metadata.namespace + metadata.name (for example
elizon-demo/triage) and versioned with semantic versioning in metadata.version. Installing a
newer version of the same Package into an Organization that already has it is an
update, not a second install.
After install, it's yours
Everything a Package creates becomes an ordinary resource of the Organization: an Agent, a Team, a Workflow, and so on. Operators can open, edit and reuse them like anything they built themselves. Each resource remembers which Package created it, for display and audit only; there's no lock.
Two ways to install
- Studio → Packages → Install a Package: an eleven-step wizard. See Installing a Package.
npx @elizon/cli install: the same engine from a terminal or CI. Seeinstall.
An install started in one can be resumed or rolled back from the other.