ravi knowledge searches, who may use it, how to read its results, and how to set up contact memory and proposals.
What it searches
ravi knowledge search merges two places into one ranked list:
- The Console: meetings recorded by the Ravi bot, published Ravi Page routes, and notes the organization approved.
- This machine: local chat history (
chat.db) and local meeting transcripts under~/.ravi/meetings/, indexed into~/.ravi/knowledge.db.
ref, a trust tier, a header that says where it came from, and a url when there is one.
When the Console is unreachable or you are not logged in, the search still returns local results and lists
console_unavailable: <code> or console_not_logged_in under issues. console_needs_login means your login predates Knowledge: run ravi login again. --who is cut to 80 characters.
Who may use it
Knowledge answers only the operator’s own turns:- the terminal;
- the operator’s own direct chat with an agent, in a session no one else shares;
- the operator’s own
ravi sessions send|askand cron routines, when the session is theirs alone (a session made from the terminal, an--isolatedcron, or their private direct chat). In a shared session the reason isshared_session.
KNOWLEDGE_TURN_NOT_OPERATOR, and the agent tells the person to ask in private.
Knowledge also refuses (exit 3, KNOWLEDGE_EXPOSURE_UNSAFE) while ravi doctor reports a failing permissions.knowledge_exposure check: an agent that people outside the organization can reach (through an open instance, a route, or an enabled trigger on mail, inbound interactions, the Console inbox, watches, webhooks or a custom topic) must be chat-only, or explicit-only with only Knowledge and a few harmless capabilities. Fix it with ravi agents permissions <id> chat-only or by closing that agent’s outside routes.
The agent grant
scope: open does not mean every agent may run it. An agent needs execute:group:knowledge or read:knowledge:* (plus mutate:knowledge:remember to remember facts). The bootstrap floor does not include Knowledge.
Reading results
Every excerpt is fenced:
Meeting speech is attributed to the speaker’s display name, which participants choose themselves: it is not proof of identity, and speech is not a decision.
Every payload has a
next list with the commands that make sense next. When a search misses, search the other person’s name with --since 30d, then ravi knowledge read <ref> --around 2.
ravi knowledge sources shows what the Console indexes (--failing for failed jobs) and the size of the local index. ravi knowledge marks --url <page url> shows which page routes are marked for clients, and the card where an org member marks them.
Contact memory
Contact memory is local and opt-in per agent. Opted-in agents get a short reference packet about the contact in their direct chats, plus the page sections the organization marked for that conversation.rememberfrom a chat is active only when the text is in the operator’s own last message; otherwise it is saved as a draft that you confirm from the terminal with--confirm.- Your own notes about a contact guide the agent in that contact’s chat but are never quoted: the packet lists them apart, and the agent is told never to repeat them to the contact.
forget <id>archives at once.forget --aboutarchives every item of the subject, removes its chat rows from the local index and stops Ravi from learning it again.--redactoverwrites the text and keeps a tombstone. It is a write brake: without--executeit prints the plan and exits 3.
Proposals
Proposals go to the Console, where an organization member approves them on a card.--execute, propose prints the plan (kind, size in bytes, project and audience, never the text) and exits 3. --project defaults to the knowledge.project setting.