Alfred, the built-in assistant
The in-app assistant: what it knows, its limits and its AI endpoint.
Alfred answers questions about the model, the data and the documents inside the app, using the same tools as external agents (the six model tools except get_access, which it does not need, plus the ten library_ tools, starting from library_context) and the same guide, under the signed-in user's entitlements and collection grants. Open it from any page with ✦ Ask Alfred (a small window; icons for a new chat, full screen and close), or full screen for a chat-first experience.
- It knows which page you are on ("what does this field mean?" on a field page).
- It decides when it needs the documents: a data question uses the model and the data only, a policy question searches the Library, and a general question is answered without any tool.
- It streams its answer, shows each tool it calls, and lists the entities, fields and topics it used as links.
- Alfred reads a collection only if it allows agents to read it and Documents may be sent to the AI model is on, because Alfred sends what it reads to its model.
- It has a set number of lookups per question (
ALFRED_MAX_LOOKUPS, default 10); when they run out, it answers from what it found. Tool results longer thanALFRED_TOOL_RESULT_CHARSare cut before the model reads them. - The conversation is kept in the browser tab (the last 40 messages) until you clear it or close the tab. Each question sends the conversation's text, not earlier tool results.
- Answers never load images or outside content by themselves, and instructions found inside data, model text or documents are treated as content, not commands. Internal collections are never quoted in customer-facing text.
- Limited to
ALFRED_PER_MINquestions per user per minute.
Alfred uses a chat model through the AI endpoint (Settings > AI): any OpenAI-compatible server (OpenRouter, a LiteLLM gateway, Ollama, vLLM...). Set the address, the key (optional for servers that need none), the model, reasoning and temperature there, and press Test the endpoint. OpenRouter-only request fields are sent only when the address is OpenRouter's. Without an endpoint, Alfred is off and everything else works.