Skip to main content

What is a Resource?

A Resource is an external asset — a URL, a Google Drive file, or a block of raw text — that Octave ingests, indexes, and makes searchable alongside your Library. Where the Library captures your structured GTM knowledge (personas, motions, competitors), Resources capture the unstructured content that supports it: blog posts, case study PDFs, sales decks, internal wiki pages, technical docs. Together they form the full grounding surface every agent and Context Search can pull from.

Resource types

Indexing lifecycle

When you create a Resource, Octave:
  1. Fetches the content (crawls the URL, reads the Drive file, accepts the text directly)
  2. Chunks it into semantically meaningful segments
  3. Embeds the chunks for semantic search
  4. Tags segments by relevance to existing Library entities where appropriate
You can check ingestion progress with GET /api/v2/resource/status and re-index a resource at any time. Indexing is asynchronous — large resources take time, and the status endpoint is the canonical way to know when a resource is ready for retrieval.

How agents use Resources

When an agent runs — Sequence, Content, Call Prep, Enrich — it can retrieve relevant Resource chunks as part of its grounding context, alongside Library entities and findings. This is what lets a Sequence Agent reference a specific case study by name without you pasting it into the prompt: the case study lives as a Resource, and the agent retrieves the right segments at runtime. The POST /api/v2/context Context Search endpoint exposes this retrieval directly — pass a query, get the relevant Resource chunks (plus Library entities and findings) back.

Linked entities and drift

A source doc and the Library entities it backs can fall out of step: the doc gets rewritten, or the entity is refined from new evidence while the doc stays put. Linking a resource to the entities it supports (for example, a new case study to the personas, use cases, and proof points it covers) lets Octave check for that divergence. A drift check compares a linked doc, such as a Google Doc, Notion page, Linear doc, or watched web page, with the current state of each linked entity and returns a verdict per entity: contradicts, invalidates, strengthens, validates, or immaterial, along with what changed and which side moved. When the divergence is material, it also proposes a consolidated update to the doc. Pass propose: true to save that proposal as a suggestion for review; accepting it posts an attributed comment on the source doc. The resource’s metadata.lastDriftCheck records the most recent check.

Resources vs Library entities

A Resource is content. A Library entity is strategy. Resources are how you bring existing content into Octave without restructuring it; Library entities are how you encode the strategic patterns you want every agent to operate on. Most workspaces use both: Resources hold the source material, Library entities hold the conclusions you’ve drawn from it.

Managing Resources via API

  • GET /api/v2/resource/list — list resources
  • GET /api/v2/resource/get — get a specific resource
  • POST /api/v2/resource/create — create a resource (URL, Google Drive, or text)
  • GET /api/v2/resource/status — check indexing status
  • POST /api/v2/resource/search — semantic search across resources
  • DELETE /api/v2/resource/delete — delete one or more resources
  • POST /api/v2/resource/link-entities — link or unlink Library entities to a resource
  • POST /api/v2/resource/check-drift — check a linked resource for drift against its entities