>_ The Manifest

Embedded Knowledge lets you bundle documents directly in your declarative agent’s app package, no SharePoint, no cloud storage, no infrastructure. Drop the files in, point the manifest at them, and your agent answers from real content.

What Is Embedded Knowledge?

In the declarative agent manifest, capabilities is an array that tells Copilot what your agent can do beyond basic chat. Think of it as a feature menu; you enable what you need and leave the rest off.

Embedded Knowledge is one of those capabilities. It lets you bundle document files (Word, PowerPoint, Excel, PDF, text) directly in your app package. The agent uses them for grounding its responses without needing a SharePoint site or any external storage. The documents ship with the agent.

Why does this matter? Two reasons:

  1. Simplicity: If your knowledge is contained in a few key documents, you don’t need to set up a SharePoint site and manage permissions. The files are right there in the package.
  2. Portability: When someone installs your agent, they get the knowledge included. No “make sure you have access to this SharePoint library” setup instructions. No broken links on day one.

For our HR Onboarding Buddy at Zava Insurance, we have three core documents that every new hire needs:

  • Employee Handbook (employee-handbook.docx): PTO policy, remote work guidelines, code of conduct, org structure, expense policy, DEI programs, performance reviews, and more.
  • Benefits Guide (benefits-guide.docx): Health insurance tiers, 401(k) matching, parental leave, fertility benefits, HSA/FSA options, tuition reimbursement, wellness stipend.
  • IT Setup Guide (it-setup-guide.docx): Laptop configuration, Entra ID provisioning, VPN setup, mobile enrollment, developer environment, software licenses.

These are detailed, real-world documents. The handbook alone covers everything from bereavement leave to the holiday calendar. Let’s wire them up.

Adding Files to the App Package

First, place the .docx files in the appPackage/EmbeddedKnowledge/ folder. This is the default location for embedded knowledge files, though any path within appPackage/ will work. We’ll use the default location in this post:

appPackage/
├── manifest.json
├── declarativeAgent.json
├── instructions.txt
└── EmbeddedKnowledge/
    ├── employee-handbook.docx
    ├── benefits-guide.docx
    └── it-setup-guide.docx
⚠️ Warning

Pay attention to the file constraints! Max 10 files, 1 MB each. Supported formats are .doc, .docx, .ppt, .pptx, .xls, .xlsx, .txt, and .pdf. Markdown files are not supported, but Word documents work perfectly for most scenarios.

Configuring the Manifest

Now open declarativeAgent.json and add the EmbeddedKnowledge capability:

"capabilities": [
  {
    "name": "EmbeddedKnowledge",
    "files": [
      { "file": "EmbeddedKnowledge/employee-handbook.docx" },
      { "file": "EmbeddedKnowledge/benefits-guide.docx" },
      { "file": "EmbeddedKnowledge/it-setup-guide.docx" }
    ]
  }
]
📝 Note

The EmbeddedKnowledge capability requires schema v1.6 or later. Make sure your declarativeAgent.json includes "version": "v1.6" and the $schema URL points to the v1.6 schema.

The file paths are relative to the manifest location. No site IDs, no URLs, no GUIDs; just file paths.

Sensitivity Labels

If your embedded documents have sensitivity labels applied, the highest sensitivity label among all your files will be applied to the entire agent. This ensures the agent respects the most restrictive classification across all its knowledge sources. For HR documents like ours at Zava Insurance, this means the agent automatically inherits the appropriate protection level.

Updating the Instructions

Adding the files is only half the story; you also need to tell the agent how to use them. I updated the instructions to include:

“You have access to three key Zava Insurance documents: the Employee Handbook, Benefits Guide, and IT Setup Guide. Always cite the specific document name when answering from these sources. If a question isn’t covered in any of these documents, say so clearly and do not guess.”

That last part is critical. Without it, the agent might hallucinate answers that sound like they came from a document but didn’t. Always tell your agent to acknowledge when it doesn’t have the answer.

Seeing It in Action

HR Onboarding Buddy

How many PTO days do I get?

According to the Employee Handbook, new employees at Zava Insurance start with 15 PTO days per year. This increases to 20 days after 3 years of service and 25 days after 7 years. PTO requests should be submitted through the HR portal at least 2 weeks in advance for planned absences.

Source: Employee Handbook

What health insurance options are available?

Zava Insurance offers three health plan tiers: Bronze, Silver, and Gold:

  • Bronze: $85/month, $3,000 deductible, best for low healthcare usage
  • Silver: $165/month, $1,500 deductible, balanced coverage
  • Gold: $280/month, $500 deductible, comprehensive coverage with low copays

All plans include dental and vision.

Source: Benefits Guide

How do I set up my VPN?

Here are the steps from the IT Setup Guide:

  1. Download GlobalProtect from the Software Center
  2. Connect to portal: vpn.zavainsurance.com
  3. Authenticate with your Entra ID credentials
  4. Select the ‘Zava-Corp’ gateway

If you get a certificate error, make sure your device is enrolled in Intune first.

Source: IT Setup Guide

Three questions, three documents, all cited correctly, shipped entirely in the app package.

When to Use Embedded Knowledge vs. SharePoint

This is the most common question I get. Here’s how to decide:

ScenarioUse
A few stable documents (< 10 files, < 1 MB each)Embedded Knowledge
Large document libraries or frequently updated contentSharePoint
Documents that need per-user access controlSharePoint
You want the simplest possible setupEmbedded Knowledge
Documents shared across multiple agentsSharePoint
📝 Note

Embedded Knowledge and SharePoint aren’t mutually exclusive. You can use both in the same agent. Start with Embedded Knowledge for your core, stable documents and add SharePoint for larger or more dynamic content libraries.

The principle is intentional configuration: enable only what makes sense for your scenario. Every capability you add is a capability the agent might use when you don’t expect it. Be deliberate.

What Value Did We Just Add?

Three .docx files and about 10 lines of JSON turned a generic chatbot into a grounded HR assistant that answers from real company documents and cites its sources.

A new hire at Zava Insurance can now ask about PTO, health insurance, or VPN setup and get accurate, sourced answers instantly, instead of waiting for HR emails or digging through SharePoint.

Resources

Have questions or want to share what you're building? Connect with me on LinkedIn or check out more on The Manifest.