Set up a Knowledge Pack
A Knowledge Pack puts your organization’s documents, data, and definitions in one place. Any AI tool can query it and get cited answers. This guide shows how to build a pack from the CLI, from the start until it is ready for people to use. You can run the CLI yourself or give it to a coding agent. Add documents first, then data, then the questions the pack has to answer correctly.
Before you start
Section titled “Before you start”-
Install the CLI and log in.
Terminal window curl -fsSL https://cli.edisyl.com/install.sh | shedisyl profile create work --endpoint https://api.<your-domain> --useedisyl login --profile workedisyl whoamiIn PowerShell:
Terminal window irm https://cli.edisyl.com/install.ps1 | iexedisyl profile create work --endpoint https://api.<your-domain> --useedisyl login --profile workedisyl whoamiThis installs
edisyl.exeto%LOCALAPPDATA%\Programs\edisyland adds it to your userPATH. Restart any terminals that were already open. They need the restart to pick up the newPATH.Use your edisyl install’s API host in place of
api.<your-domain>. Your edisyl admin has it. See Install & log in. -
Gather documents. Policies, definitions, data dictionaries, process guides. PDF, Markdown, and text all work. The more relevant documents you add, the better the answers.
-
Bring read-only warehouse credentials. A service user with read access only. For Snowflake, use key-pair auth. You enter credentials through the CLI. They never show in the app. See Connect a data source.
Let an agent drive
Section titled “Let an agent drive”The CLI is built for AI agents such as Claude Code to run. The agent can also install and set up the CLI.
Keep the edisyl app open to see the result of each step and to change what edisyl decided.
Build the pack
Section titled “Build the pack”Upload documents first, then connect your data. edisyl reads the documents to learn what your tables and columns mean.
Some steps also work from an AI chat client over MCP. Those steps show both ways. CLI only marks commands that have no MCP tool. You can do those steps in the app or the CLI.
-
Create the pack. In the app, or:
CLI onlyTerminal window edisyl pack create --name "Supplier risk"Ask your agent: Create a pack called Supplier risk.
-
Add the people who build it. On the pack page under Who can build this, or:
CLI onlyTerminal window edisyl pack members add supplier-risk ana@acme.com bo@acme.com --role contributorRoles are
viewer(read),contributor(write), andadmin. Editing PACK.md and the Lexicon needsmanage_packon the pack. -
Add documents. Drag files onto the pack page, or teach them from chat or the CLI. See Add documents for file types and limits.
Attach a file in chat. The assistant calls
teachwith the file.“Teach the attached policy to the Supplier risk pack.”
Terminal window edisyl teach supplier-risk --file ./policy.pdfAsk your agent: Upload everything in ./docs to the Supplier risk pack.
-
Check the documents. Each one shows as Indexed on the pack page.
CLI onlyTerminal window edisyl pack documents list supplier-riskAsk your agent: Which documents are in the pack? Did any fail?
-
Start PACK.md (optional at this stage). Write two to four sentences on the pack’s purpose, what it covers, and who it is for. See Steering with PACK.md.
CLI onlyTerminal window edisyl pack context edit supplier-riskAsk your agent: Draft a PACK.md purpose and show it to me first.
-
Connect your warehouse. This tests the credentials and saves them once.
CLI onlyTerminal window edisyl connections create --name "Snowflake prod" --provider snowflake --config-file sf.jsonAsk your agent: Connect our Snowflake warehouse using sf.json.
-
Add the data source to this pack. Choose the database, and optionally a schema. Pass
CLI only--pack-idto add the source to this pack. Without it, edisyl creates a new pack.Terminal window edisyl data-sources create --name "Procurement" --connection-id <connection-id> \--database PROD --schema PROCUREMENT --pack-id <pack-id>Ask your agent: Add the PROD database to the Supplier risk pack.
New tables that appear in the scope later are synced and enriched automatically every day. Add
--no-auto-add-tablesto hold them for approval instead. See Adding tables to a connected source. -
Enrich the source. This step learns what the columns mean and how the tables join. It does not run automatically. Until it finishes, questions about the data are declined. It can take up to an hour.
CLI onlyTerminal window edisyl data-sources enrich <data-source-id>edisyl action watch <action-id>Ask your agent: Enrich the new data source and tell me when it’s done.
-
Load objectives. Loading objectives starts calibration. Brainstorm them in the edisyl app, or ask your AI client to run the
brainstormtool. The tool asks which workflows the pack supports, such as a weekly review. Then it proposes questions for each step of each workflow. If you already have a list, load it with the CLI. Calibration already started in the background after steps 3 and 7.The assistant calls
brainstorm. It adds the questions you confirm withtarget_questions_create.“Brainstorm objectives with me for the Supplier risk pack. We use it for the weekly supplier review.”
Terminal window edisyl pack objectives structure supplier-risk -f questions.mdAsk your agent: Brainstorm objectives with me for the weekly supplier review.
-
Watch calibration. Pack health in the app shows each measure against its target.
The assistant calls
calibration_status.“How far along is calibration on the Supplier risk pack?”
Terminal window edisyl calibrate status supplier-riskAsk your agent: How far along is calibration?
Get the pack ready for people
Section titled “Get the pack ready for people”Objectives are the questions this pack has to answer correctly, written from the work people do. Calibration tests the pack against them. For each objective the pack answers correctly, calibration stores a verified plan. Real questions then get faster and more accurate answers. See Objectives and Calibration.
-
Brainstorm first. The interview about the pack’s workflows produces much better questions than a list written without it. It runs in the app or through your AI tool. If you already have a list, load it with
edisyl pack objectives structure <pack> -f questions.md. -
Write enough of them. Start with about 10 per data source. Scale the number by the workflows and tables people use, not by the number of sources. Write about 5 per document set (a policy library, a runbook set, a spec set), and up to 10 for a large or heavily used one. Skip reference material nobody asks about.
-
Make them specific. “Which suppliers missed SLA last quarter?” is better than “Tell me about suppliers.” Claude drafts good ones from the pack’s documents. Edit them before loading.
-
Ask a few right away. Pick one to five objectives you want answered today. Ask them with
edisyl ask <pack> "<question>" --wait. A weak answer shows you what to fix. See Improving answers. -
Open the pack to users after the first calibration. Before the first calibration, answers are slower and less consistent.
-
Pause calibration during a rebuild or peak hours. Resuming needs the admin role in your organization.
The assistant calls
calibration_pause. Resuming is CLI only.“Pause calibration on the Supplier risk pack while we rebuild the warehouse.”
Terminal window edisyl calibrate pause <pack> --reason "rebuilding the warehouse"edisyl calibrate resume <pack>
How long it takes
Section titled “How long it takes”| Stage | Time |
|---|---|
| Create the pack, add documents, connect the source | Minutes |
| Enrich a data source | Up to an hour |
| First calibration, small pack | Under an hour |
| First calibration, 150+ tables | 4 to 6 hours. Run it overnight. |
After setup
Section titled “After setup”| To | Say in chat |
|---|---|
| Replace a document with a newer version | “Forget the old supplier policy and teach the attached new version.” The assistant calls forget, then teach. Finding a document’s record id is CLI only. |
| Add or fix a definition or acronym | “Define ‘OTD’ as on-time delivery.” The assistant calls lexicon_edit or lexicon_create. |
| Add a fact the documents lack | “Teach the pack that <fact>.” The assistant calls teach. |
| Test the pack | “Ask the pack <question>.” The assistant calls ask. |
| To | Run |
|---|---|
| Replace a document with a newer version | edisyl pack documents list <pack> to find its record id, then edisyl forget <pack> <record-id> and edisyl teach <pack> --file <new-file> |
| Add or fix a definition or acronym | edisyl pack vocabulary define <pack> <term-id> "<definition>" |
| Add a fact the documents lack | edisyl teach <pack> --text "<fact>" |
| Test the pack | edisyl ask <pack> "<question>" --wait |
Was this page helpful?
Thanks for the feedback.
