Knowledge bases
A knowledge base holds entries, and an entry is Markdown. Either you write it, or a site writes it: a site is one URL — or one URL pattern — that Vatio reads, converts to Markdown, and re-reads every night.
vatio kb create docs
vatio kb follow docs acme.com/help/** # one entry per page that matches
vatio kb write docs horarios horarios.md # or write one yourself
vatio kb show docsCreate one base per set of pages you want kept apart — anything only one agent should read belongs in its own.
Reference the base on the agent that reads it, and give it knowledge_lookup:
agent:
instructions: |
Search knowledge_lookup before answering questions about Acme's policies.
If the results do not answer the question, say so.
tools: [knowledge_lookup]
knowledge: [docs]Run vatio push after changing these references. A referenced base must already exist — a misspelled name fails the push rather than quietly becoming an empty base. Removing a reference does not delete its content.
Sites
A site is one field, and one rule: a URL is that URL, a pattern is every page that matches it.
| What you write | What it reads |
|---|---|
acme.com | the home page, and only it |
acme.com/help | that one page |
acme.com/** | every page of the site |
acme.com/help/** | that section, however deep |
acme.com/blog/* | the posts directly under /blog |
* matches within one path segment; ** matches across segments. Nothing is implied: acme.com/help never means "and everything under it". URLs must be public HTTP or HTTPS.
Vatio discovers pages through an exact path, llms.txt, a sitemap, or links on the site. It respects robots.txt and can render pages whose content needs JavaScript. Content behind a click or a search is better written as an entry.
Every site is read again nightly, and vatio kb refresh BASE [URL] reads them now. A page whose Markdown has not changed costs one request and nothing else — it is not re-indexed and not re-embedded.
vatio kb unfollow BASE URL stops reading a site and deletes the entries it wrote: they are a copy of pages that live somewhere else, and keeping them would leave the base answering from something nothing refreshes any more.
Entries
vatio kb write docs refunds refunds.md # creates it, or replaces what is there
vatio kb cat docs refunds # exactly what Vatio holds
vatio kb cat docs refunds | edit | vatio kb write docs refundsvatio kb write BASE ENTRY [FILE] puts Markdown under a name, reading stdin when no file is given. The entry's title comes from its own # heading. Headings divide an entry into searchable sections; write each one so it can answer a question on its own.
An entry a site wrote is not editable — the next read would overwrite it without a word. Change the site, or write your own entry instead.
Use vatio kb show docs to check each site's status and errors, and which entries are ready to answer from. Reading and indexing are asynchronous: an entry shows as ready once its sections have been embedded. Test retrieval in a conversation afterwards.
vatio kb rm-entry BASE ENTRY deletes one entry. vatio kb rm BASE deletes a base only when no deployed agent references it.
Knowledge is shared by all environments. Writing, refreshing, and deleting content can change live answers immediately. Deployment rollback does not restore knowledge content.
Allow VatioBot
If you own a site whose robots.txt blocks crawling, allow VatioBot in that site's robots.txt:
User-agent: VatioBot
Allow: /Then run vatio kb reindex BASE SOURCE. There is no option to bypass the site's crawl policy.
