KnowledgeBases
- optional
A Template Package can create (or recreate) knowledge bases during deployment.
Each knowledge base is linked to one uploaded file:
- Add the file in
manifest.files. - On that same file entry, add an optional
knowledgebaseobject.
During deploy, file uploads run first. Then each knowledgebase entry is resolved to that row's _fileId and _fileVersionId, and the knowledge base is created (or skipped/recreated based on ifExists).
Knowledge bases are always created from the file version produced by this deploy's upload. If a document already exists in the environment from an earlier upload without a knowledgebase entry, you cannot point a new knowledge base at that old version alone. Include the same file again in manifest.files with a knowledgebase object (and the matching fileUploads/ payload). Deploy uploads it again, creates a new version of the file, and creates the knowledge base from that new version.
_path requirement#
manifest.files[]._path is required and must be a string (empty string is valid for files at the root of fileUploads/).
For knowledge base creation to work, _path + _name must resolve to the actual uploaded file location under fileUploads/.
Examples:
_name: "nested-kb-notes.md"with_path: "nested/docs"maps tofileUploads/nested/docs/nested-kb-notes.md_name: "property-mapping.md"with_path: ""maps tofileUploads/property-mapping.md
Resolution normalizes _path by trimming whitespace and removing a leading/trailing / before lookup. In practice, still provide the real relative folder path used inside fileUploads/.
knowledgebase object#
Only these keys are allowed on file.knowledgebase:
name(required): display name of the knowledge base. Agents reference this value in theirknowledgebasesarrays. Maps to_namein the service.userType(required): stable identifier. Allowed characters: letters, digits, underscores. Maps to_userTypein the service.ifExists(optional): conflict behavior when a knowledge base with the sameuserTypealready exists. If omitted or blank, deploy treats it asdefault.
Any other knowledgebase property fails template validation.
ifExists#
If a knowledge base with the same userType already exists:
default(or omitted/empty): keep the existing knowledge base unchanged and skip this manifest entry.recreate: delete the existing knowledge base, then create it again using the newly uploaded file/version.
Values are compared case-insensitively.
update is not supported for file-linked knowledge bases. Any value other than default or recreate fails validation.
Agents#
Agents attach to knowledge bases using the knowledge base name, not userType.
Use the exact value from manifest.files[].knowledgebase.name.
Complete example#
// manifest.json{ "Template Name": "Knowledge Base Template", "Template Version": "1.0.0", "files": [ { "_name": "property-mapping.md", "_path": "", "_tags": [], "knowledgebase": { "name": "property-mapping-md", "userType": "property_mapping_md", "ifExists": "default" } }, { "_name": "revit-category-mapping.md", "_path": "", "_tags": [], "knowledgebase": { "name": "revit-category-mapping-md", "userType": "revit_category_mapping_md", "ifExists": "recreate" } }, { "_name": "agent-bg-source.txt", "_path": "", "_tags": [], "knowledgebase": { "name": "agent-bg-md", "userType": "agent_bg_md", "ifExists": "recreate" } }, { "_name": "nested-kb-notes.md", "_path": "nested/docs", "_tags": [], "knowledgebase": { "name": "nested-docs-kb", "userType": "nested_docs_kb" } } ]}ZIP layout (fileUploads/ paths must match _path + _name):
Knowledge Base Template.zip /|-- fileUploads /| |-- property-mapping.md| |-- revit-category-mapping.md| |-- agent-bg-source.txt| +-- nested /| +-- docs /| +-- nested-kb-notes.md|-- manifest.json// agents/my-agent.json (excerpt){ "knowledgebases": ["property-mapping-md", "revit-category-mapping-md", "nested-docs-kb"]}Deploy behavior#
- File uploads run first.
- To add a knowledge base for content that already exists as a file, re-upload that file in the manifest with a
knowledgebaseentry so deploy can create a new file version and bind the knowledge base to it. - If a file upload for a
knowledgebaserow cannot be resolved, that knowledge base is skipped and an error is written to deploy logs. - Only
manifest.filesentries that includeknowledgebaseare used for knowledge base creation. Other file entries behave as normal uploads only.