Knowledge Base
Your workspace's reference library - playbooks, briefs, research, anything you want Amdahl and your team to be able to search and cite. Manage it in the app, over the API, or from an MCP agent.
In the app
Open Knowledge Basefrom the sidebar to upload documents, search across everything you’ve added, and open a document to read or chat with it. Search is hybrid - it blends semantic meaning with keyword matching - so “our refund policy” finds the right doc even if it never uses that phrase. The search box runs the same hybrid backend the API and agents use, not a substring filter, so results rank by relevance.
When you upload a document
Each document carries metadata that makes it more useful to Amdahl, set in the upload dialog:
- Description - what the document is.
- How should agents use it? - guidance on how Amdahl should use the doc (for example “cite this as the canonical pricing source” or “tone reference only”).
- Document type, tags, and an optional review cadence that flags the doc for a freshness check every N days.
On upload, Amdahl also auto-extracts a short summary of the document. That usage guidance and the extracted summary are injected into Knowledge Base chat alongside the retrieved excerpts, so answers respect how you intended each doc to be used - not just the raw text that matched.
Embedding lifecycle
A document isn’t searchable the instant it’s uploaded. Amdahl chunks it and computes embeddings asynchronously, and a document only appears in search and chat once that work is ready. Each document reports an embedding status:
pending- queued; chunking / embedding hasn’t completed yet.indexing- chunks are being written and made discoverable.ready- fully indexed and live in search and chat.failed- indexing couldn’t complete (see below).
Markdown you paste in is indexed in a few seconds. A binary file (PDF, DOCX, PPTX) is first converted, so it lands as pending and settles to ready a little later - poll the document, or watch the status badge in the app, until it flips.
Reliability and observability
Indexing is self-healing. A background reaper automatically re-embeds documents that get stuck in pending or indexing (for example after a transient embedding outage), so a doc that stalls recovers on its own without any action from you.
A document that genuinely can’t be indexed - after repeated attempts - is marked failed with a diagnosable reason (for example the file produced no usable text, a storage error, or a sustained embedding outage) rather than spinning forever. Failures surface in two places:
- In the Knowledge Base. A failed (or still-processing) document shows a health badge in the list, and its detail panel shows a human status label plus the failure reason - so you can see why without leaving the page.
- In the operator issues inbox.Failed documents are also aggregated into a single “N knowledge base documents failed to embed” issue, in the same inbox as every other workspace problem. The issue auto-resolves once the failures clear.
From a failed document you can hit Retry embedding to re-run indexing manually (the same recovery the reaper does, on demand). Fix-and-retry or re-upload, and the doc rejoins search and chat once it reaches ready.
Over the API
Upload and read knowledge-base documents with your X-API-Key (see Using the API). The exact routes and input schemas are in the /api/platform/v1/operations catalog under the knowledge_base.* operations - search, upload, update, delete, plus the list / get reads and chat:
curl https://app.amdahl.co/api/platform/v1/operations \
-H "X-API-Key: amdahl_sk_live_your_key_here" \
-H "Accept: application/json"
# look for: knowledge_base.search / .chat / .upload / .update / .deleteReads need knowledge_base:read; writes need knowledge_base:write. A soft delete (the default) archives the document and is reversible; a hard delete purges the row and additionally requires knowledge_base:delete.
From an MCP agent
Connect an MCP client (see Using MCP) and the agent gets a knowledge_base tool so it can pull documents into the loop without leaving chat:
search- hybrid (semantic + keyword) search across the library.chat- ask a question and get a cited answer grounded in the matching documents.upload- add a document to the library.update- rename, retag, or edit a document.delete- archive a document (soft delete by default; a hard delete asks for confirmation first).list/get- browse and read documents, including their embedding status.
An agent that uploads a document should poll get until the embedding status is ready before relying on it in search or chat - until then the doc is uploaded but not yet discoverable.