How-toAgents

Knowledge sources

Attach supported text or structured-data URLs to website chat, control fetch frequency, and recover from stale or failed sources.

Knowledge sources are supported text or structured-data URLs fetched on a schedule and supplied to website chat only. Website chat adds all enabled sources with fetched content to a separate system block that marks the material as untrusted data. Knowledge-source bodies are not supplied to Slack conversations or Automation actions.

Before you begin

The URL must be accessible without an interactive sign-in, stable, and safe for the website-chat audience. Do not attach a source that exposes secrets or information that audience should not receive.

The limit is 10 knowledge sources per agent. Disabled sources still count toward that limit. Each fetched response must be no larger than 512,000 bytes (500 KiB) and must be valid UTF-8. Infra One reports this limit in product errors as 500 KB.

Infra One removes Content-Type parameters such as charset, trims whitespace, and lowercases the remaining base type before validation. The base type must be one of:

  • text/plain
  • text/markdown
  • application/json
  • text/yaml
  • application/x-yaml
  • text/xml
  • application/xml
  • text/csv

HTML, PDF, images, audio, video, and binary files are rejected. Unlisted base types, including application/yaml, are unsupported. Unknown content types and invalid UTF-8 are also rejected. Prefer several narrow sources over one unbounded document. A source is evidence, not a permission system.

Add a source

  1. Open the agent card on the Agents page.
  2. In Knowledge sources, optionally enter a Label, then enter the URL.
  3. Choose a Frequency:
    • Every 5 minutes for actively edited, operational material;
    • Every hour for documentation that changes throughout the day;
    • Every 24 hours for stable reference.
  4. Select Add source.
  5. If you need the content before its next schedule, select the circular-arrow control labeled Fetch now.

Fetch now is queued asynchronously as a background job; it does not fetch during the click. For a new source, reload and expand Content preview when it appears. Its newly visible Last fetched value plus OK proves that the first fetch completed successfully. If the changed passage appears in the visible preview, compare that passage with the published source when you need to verify an edit made in the same displayed minute; content outside the preview cannot be checked this way. For an existing fetched source, expand Content preview and record Last fetched first. The value has one-minute precision: if it shows the current UTC minute, wait until the next UTC minute before selecting Fetch now. Reload and expand the preview until Last fetched has advanced, then require OK. OK alone does not prove that the queued refetch completed: an earlier successful fetch can leave the row showing OK while the new job is pending. A retryable failure gets at most three total attempts: the initial attempt and up to two retries. A permanent safety or content-type failure cancels after the first attempt. Scheduled and manual fetches use this same worker contract.

Read the source state

StateMeaningNext action
Never fetchedThe source exists but has not completed a fetch.Wait for its schedule or use Fetch now.
OKThe most recent completed fetch attempt succeeded. A queued or running fetch is not represented.Test a question whose answer appears only in this source.
ErrorThe most recent completed fetch attempt failed. A queued or running fetch is not represented. Previously fetched content, if any, is retained and remains available to website chat.Check the URL, redirects, availability, response size, UTF-8 encoding, and content type. Disable the source if stale content must stop immediately.

The last fetch timestamp tells you when the most recent fetch attempt completed, whether it succeeded or failed. The row state records that attempt's outcome. A green state does not prove that the content contains the answer you expect; it proves that the most recent completed attempt succeeded.

URL safety

Prefer HTTPS so the fetched facts cannot be modified in transit. Plain HTTP is supported and fetched as entered; Infra One does not upgrade it to HTTPS. The public-IP checks below do not provide transport integrity.

When you save a source, its URL must use HTTP or HTTPS, contain no embedded credentials, and must not use the explicitly blocked private or local hostname forms. At fetch time, Infra One resolves every IPv4 and IPv6 answer and refuses the request if any address is private, reserved, or otherwise non-public. It repeats the fetch-time checks after every redirect and follows up to five redirects.

The outbound connection is not pinned to the address that passed validation. A DNS change in the short interval between resolution and connection leaves a theoretical rebinding risk, so attach only sources you trust and control even when the URL passes these checks.

Maintain sources

  • Disable a source before a major rewrite if serving stale content would be harmful.
  • After publishing an urgent correction, expand Content preview and record Last fetched. Because it has one-minute precision, wait until the next UTC minute before using Fetch now when the recorded value shows the current minute. Reload and expand the preview until Last fetched is newer than the correction and has advanced, then require OK. OK alone cannot confirm the new refetch.
  • Wait for OK, then retest a representative website-chat question after every substantial source change.
  • Remove sources that duplicate or contradict an authoritative page.
  • Keep the fetch frequency proportional to how often the source genuinely changes.

Success check

The source shows OK, its latest fetch time is newer than your edit, and website chat can answer a question that depends on the new content. When asked beyond that content, the agent still follows the uncertainty behavior in the system prompt.

Troubleshooting

  • Never fetched means no fetch has completed. Select Fetch now, then wait for the background job.
  • Error can mean an unavailable URL, an unsafe hostname or redirect, more than five redirects, a response larger than 512,000 bytes (500 KiB, reported as 500 KB), invalid UTF-8, or an unsupported content type.
  • A normal HTML page is not a supported source. Provide a supported text or structured-data representation instead.
  • An Error does not clear previously fetched content. Disable or remove the source if that older content must no longer be used.
  • If Slack or an Automation lacks a source fact, test in website chat instead; those surfaces do not receive knowledge-source bodies.

For broader diagnosis, use Troubleshoot agents.