Your first Package
Build a product-support assistant as a Package, from an empty folder to installed in an Organization.
You'll build Support Bot: an Agent that answers product questions from the installer's own documentation. It's small, but it uses everything that makes a Package portable: an entry point, a Knowledge Base, and Slots for everything the installer brings.
You need: Node.js 22+, and for the last steps an Elizon Organization where your role can install Packages (Owner, Admin or Editor). See Prerequisites.
Scaffold
npx @elizon/cli init support-bot --starter=single-agent
cd support-botPick your coding agent when asked (or pass --agent=). The starter is already valid. Look at what
you got:
Open .elizon/config.yaml and note cliVersion. This guide writes 0.5.0; use yours in every
command below.
Give it an identity
In elizon.yaml, set who you are and what this is:
metadata:
name: support-bot
namespace: acme # your organization, kept the same across all your Packages
version: 0.1.0
displayName: Support Bot
description: Answers product questions from your own documentation.
license: UNLICENSEDWrite the instructions
In agents/support-assistant.yaml, replace config.instructions.content:
instructions:
content: |
You answer questions about the customer's products using only their documentation.
If the documentation doesn't answer the question, say so and suggest contacting support.
Never invent product features, prices or dates.Validate, and read what it tells you
npx @elizon/cli@0.5.0 validateNow make a mistake on purpose: change entryPoint to agents.support-assistent and validate again.
✗ [ENTRY_POINT_NOT_FOUND] entryPoint
`entryPoint` names `agents.support-assistent`, which this Package does not declare
Did you mean `agents.support-assistant`? Declare `support-assistent` under `agents[]`, or point the reference at one of: agents.support-assistant. Every trigger fires the entry point, so it must exist.Every error names where (path), what kind (code) and what to do (the hint). Fix it,
validate again, and you're back to green.
Be honest about data
Support Bot handles customers' questions, so declare it in compliance:
compliance:
dataCategories: [personal_data]
retention:
conversations: 30d
documents: retained_until_deleted
autonomy: advisory
providers: []regions is optional. Add it (for example regions: [EU]) only if the Package really commits to
where data is processed; the installer reads it as your promise.
The installer sees this before installing anything. See The manifest → compliance.
Build
npx @elizon/cli@0.5.0 validate
npx @elizon/cli@0.5.0 buildYou now have acme-support-bot-0.1.0.pkg. It's unsigned, and nobody can install it yet.
Connect and sign
npx @elizon/cli@0.5.0 target add <your-elizon-address>
npx @elizon/cli@0.5.0 sign acme-support-bot-0.1.0.pkg --yesApprove the device in your browser when asked. See Connect a device.
Install
In Studio, open Packages → Install a Package and upload the signed file. The wizard shows what will be created and asks for exactly what the Slots declare:
- LLM: a model for
reasoning, and on the Knowledge Base step a model forembedding, - Knowledge Base: your product documentation (upload files, connect a source, or skip for now),
- Validate and Activate.
The full walkthrough is in Installing a Package.
Try it
Open the installed Agent from Studio → Packages → Support Bot and ask it a question your documentation answers, then one it doesn't. The second answer should say so.
What you've learned
- A Package carries behaviour, never accounts, keys or documents. Those are Slots.
validateis your feedback loop, and it's designed to be read by a coding agent as well as by you.buildis offline and unsigned;signinvolves your Organization; installing is the installer's decision.