Live Citations vs. Your Own RAG

Part of a series on running AI workflows across model providers — this one is about two different ways to ground answers, and when each source of truth applies.
Two different tools in this series solve a version of the same problem — "make sure the AI's answer is grounded in something real, not just fluent-sounding text" — but they solve it for two genuinely different kinds of knowledge. Perplexity grounds answers in the live public web. DNotifier's built-in knowledge base grounds answers in documents you've uploaded. Confusing which one a given question needs is a common, avoidable mistake.
Two different sources of truth
Perplexity's citations come from searching the open web at the moment of the request — news sites, documentation pages, forums, anywhere its search can reach. That's exactly right for questions whose answer lives out in the world and changes over time: current events, public company information, published research, anything where "what does the internet currently say about this" is the right question to ask.
DNotifier's built-in RAG (retrieval-augmented generation) works differently: you upload your own documents — internal policies, product documentation, past support tickets, contracts — and the system performs semantic search over that private corpus, with no vector database to manage separately. That's exactly right for questions whose answer lives in material that isn't public at all: "what does our refund policy say," "what did we tell this customer last time," "what's the correct internal procedure for this."
Same underlying goal — a grounded, traceable answer — pointed at two completely different bodies of knowledge.
The mistake worth avoiding
Using Perplexity to answer a question about your own private, internal information doesn't work — the public web doesn't contain your internal documents, so there's nothing for it to find. And using your own knowledge base to answer a question about current public events doesn't work either, unless someone has specifically uploaded material covering it — your documents are exactly as current as the last time someone updated them, not any more current than that by default.
This sounds obvious stated plainly, but it's an easy line to blur in practice, especially in an assistant that's meant to handle a wide range of question types. The fix isn't complicated once it's named: route by source of truth, not by asking which tool feels more sophisticated.
When you genuinely need both together
Some questions need to draw on both sources in the same answer. "How does our product's pricing compare to what our competitors are currently charging" needs your own pricing (internal knowledge base) and current competitor pricing (Perplexity, since competitor pricing pages change and a static upload would go stale). Building a workflow that pulls from both, then combines them into one answer, is a genuinely useful pattern for exactly this kind of hybrid question.
const internalPricingAgent = DNotifier.defineAgent({
name: "internalPricingAgent",
async run(ctx) {
return await ctx.sendAI({
message: { messages: [{ role: "user", content: "What is our current pricing structure?" }] },
// grounded against DNotifier's knowledge base
});
},
});
const competitorResearchAgent = DNotifier.defineAgent({
name: "competitorResearchAgent",
provider: "perplexity",
model: "sonar-pro",
async run(ctx) {
return await ctx.sendAI({
message: { messages: [{ role: "user", content: "What is [competitor]'s current pricing? Mention sources." }] },
});
},
});A workflow running both agents and combining their outputs produces a comparison that's current on the competitor side and accurate on the internal side — something neither source alone could produce correctly.
Two grounding sources, one combined answer — neither substitutes for the other.
A use case that shows the payoff of getting this right
A sales enablement assistant was initially built entirely on the internal knowledge base, including for questions like "what's the current market landscape for this deal" — a question the knowledge base simply couldn't answer well, since market conditions change faster than anyone was updating internal documents. Adding a Perplexity-backed research step specifically for market and competitor questions, while keeping product and pricing questions on the internal knowledge base, fixed the gap without requiring the team to manually keep a "competitor landscape" document perpetually current, which nobody had been doing reliably anyway.
Frequently asked questions
Can Perplexity search my private documents if I ask it to?
No — its search reaches the public web only. Private, internal information needs to go through DNotifier's own knowledge base instead.
Does my knowledge base need a vector database I manage separately?
No — DNotifier's built-in knowledge base handles semantic search internally, without a separate vector database to provision or maintain.
Which one should be the default for a general-purpose internal assistant?
The internal knowledge base, generally — most internal questions are about internal information. Route to Perplexity specifically for the subset of questions that are genuinely about current public information.
Is it wasteful to query both sources for every question?
Yes, for questions that clearly only need one — querying both by default adds latency and cost for no benefit when a question is unambiguously internal-only or unambiguously current-events-only. Reserve the combined pattern for genuinely hybrid questions.
The Bottom Line
Next in this series: closing out this batch and the six-provider series so far, with the same lock-in argument that's run through every provider — pick the right tool per task, keep the orchestration layer underneath unchanged.
Read part ten: Avoiding Lock-In: Perplexity and Beyond. Explore dnotifier.com.
DNotifier × Perplexity
Part 9 of 10
- Part 1Perplexity on DNotifier: Setup Guide
- Part 2What Makes Perplexity Different?
- Part 3Perplexity's Sonar API Is Retiring
- Part 4Perplexity's Agent API, Explained
- Part 5Choosing the Right Perplexity Model
- Part 6Perplexity Pricing, Explained
- Part 7Perplexity's Search Filters, Explained
- Part 8Perplexity vs. DNotifier: Where It Fits
- Part 9Live Citations vs. Your Own RAG
- Part 10Avoiding Lock-In: Perplexity and Beyond
Related articles

Avoiding Lock-In: Perplexity and Beyond
Part ten of the DNotifier × Perplexity series — Sonar retirement as a live lock-in lesson, task-based routing, and the six-provider series throughline.

Perplexity vs. DNotifier: Where It Fits
Part eight of the DNotifier × Perplexity series — answer engine versus multi-provider orchestration, Agent API overlap, and composing both in one workflow.

What Makes Perplexity Different?
Part two of the DNotifier × Perplexity series — answer engines versus model vendors, parametric knowledge versus live grounding, and when citations are structural.