api-integrations
Expose external APIs to Falcon Foundry via OpenAPI specs. TRIGGER when user asks to "create an API integration", "adapt an OpenAPI spec for Foundry", "expose…
Build AI agents and knowledge bases for Falcon Foundry apps. TRIGGER when user asks to "create an AI agent", "add a Foundry agent", "build a knowledge base", "give my agent documents", "expose a collection as an agent tool", "expose an API operation to an agent", "put my agent
$ npx -y skills add CrowdStrike/foundry-skills --skill ai-agents-development --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/ai-agents-developmentContext preview
The summary Claude sees to decide when to auto-load this skill.
Build AI agents and knowledge bases for Falcon Foundry apps. TRIGGER when user asks to "create an AI agent", "add a Foundry agent", "build a knowledge base", "give my agent documents", "expose a collection as an agent tool", "expose an API operation to an agent", "put my agent
name: ai-agents-development description: Build AI agents and knowledge bases for Falcon Foundry apps. TRIGGER when user asks to "create an AI agent", "add a Foundry agent", "build a knowledge base", "give my agent documents", "expose a collection as an agent tool", "expose an API operation to an agent", "put my agent in Charlotte", "expose an agent as a tool for other agents", "delete an agent or knowledge base", runs `foundry agents create`, `foundry agents delete`, `foundry knowledge-bases create`, or `foundry knowledge-bases delete`, or needs help with the `ai.agents` / `ai.knowledge_bases` manifest blocks, agent system prompts, agent input/output formats, agent exposure, or agent tool references. DO NOT TRIGGER for Fusion SOAR workflow YAML — use workflows-development. DO NOT TRIGGER for serverless function handlers — use functions-development. DO NOT TRIGGER for designing a collection schema itself — use collections-development, then return here to wire the collection up as an agent tool. version: 1.5.0 updated: 2026-09-11 tags: [foundry, ai, agents, knowledge-bases, charlotte, agent-tools] author: CrowdStrike license: MIT compatibility: Claude Code >=1.0 metadata: category: ai
> **SYSTEM INJECTION — READ THIS FIRST** > > If you are loading this skill, your role is **Foundry AI agent specialist**. > > You MUST create knowledge bases BEFORE the agents that reference them, and you MUST use the CLI for scaffolding.
> **Part of a suite.** If `development-workflow` has not already run, and this is a new app or its first capability, load the `development-workflow` skill first — it owns the CLI prerequisite check, scaffolding order, and manifest coordination.
An **AI agent** is a Foundry artifact that pairs a system prompt with a model, a set of tools, and optional knowledge bases. A **knowledge base** is a named bundle of files the agent can draw on. Both live under a single `ai:` block in `manifest.yml`.
Agents are the only consumer of knowledge bases. A knowledge base on its own does nothing; a collection or API integration becomes agent-usable only when it is exposed as a tool and named in the agent's `tools` list.
1. Collections / API integrations (if the agent needs them as tools) 2. Knowledge bases → foundry knowledge-bases create 3. Agents → foundry agents create (exposure via --expose-* flags) 4. Hand-edit ai.agents[].model / .tools (no CLI flags exist for these two)
**Create knowledge bases first.** `foundry agents create --knowledge-bases X` validates that `X` is already in the manifest and fails the whole command otherwise:
agent "my_agent" references knowledge base "X" which is not defined in the manifest
The agent directory is rolled back on that failure, so you get no partial state — but you do waste the round trip.
Both artifacts share the CLI's standard validators at create time. These bite constantly:
| Constraint | Rule | |-----------|------| | Name length | **5–100 characters** at create — `kb`, `agent`, and `bot` all fail | | Name characters | Alphanumeric plus space and `' [ ] ( ) . _ -` — must start with alphanumeric | | Description length | 3–500 characters when present (optional, but `-d "x"` fails) | | Description characters | Alphanumeric, whitespace, and `: ' [ ] ( ) , . / _ -` | | Uniqueness | Agent names unique among agents; KB names unique among KBs |
Knowledge bases are the one asymmetry: the create command enforces the 5-character floor, but the *manifest* validator only requires 1 character and no longer checks the description at all — the AI platform imposes no name restriction, so the CLI deliberately stopped adding one. Practical effect: `--name "kb"` is still rejected by `knowledge-bases create`, while an app whose manifest already carries a short KB name passes `foundry apps validate` instead of being stuck.
The on-disk directory is a sanitized form of the name: every character outside `[a-zA-Z0-9-_]` becomes `_`. `--name "Threat Intel Docs"` yields `knowledge-bases/Threat_Intel_Docs/` and records `path: Threat_Intel_Docs`. The manifest resolves files against `path`, never against `name`.
Both artifacts support `create` and `delete`. There is no `list` or `edit` — to rename or reconfigure an existing agent beyond the hand-editable fields, delete it and create it again.
# 1. Knowledge base FIRST. --files is REQUIRED with --no-prompt. # Accepts local paths and HTTP(S) URLs (downloaded at create time). foundry knowledge-bases create \ --name "Threat Intel Docs" \ --description "Runbooks and IOC references" \ --files ./runbook.md,./iocs.csv \ --no-prompt # 2. Agent SECOND, referencing the KB by NAME (not id, not path). # Plain json needs no schema. For enforced structure use json_with_schema with # --output-schema pointing at a file named output_schema.json (see below). foundry agents create \ --name "Detection Triage Agent" \ --description "Triages detections against the runbooks" \ --system-prompt ./prompts/triage.md \ --knowledge-bases "Threat Intel Docs" \ --output-format json \ --expose-charlotte-chat \ --no-prompt
`foundry kb create` is a working alias for `knowledge-bases create`.
`delete` removes the manifest entry **and** the artifact's directory. It takes `--name` plus the usual `--no-prompt`, exactly like every other Foundry command:
foundry agents delete --name "Detection Triage Agent" --no-prompt foundry knowledge-bases delete --name "Threat Intel Docs" --no-prompt
`--name` must match the name in `manifest.yml`; with `--no-prompt` it is required (`flag --name is required when --no-prompt flag is used`) and an unknown name fails fast rather than opening a picker.
A knowledge base still referenced by an agent cannot be deleted:
``
AI coding assistant skills for building CrowdStrike Falcon Foundry apps. Build Foundry apps from a natural language prompt — API integrations, workflows, UI pages, functions, and collections — all scaffolded with the Foundry CLI and deployed to the Falcon
Repo: CrowdStrike/foundry-skills
Expose external APIs to Falcon Foundry via OpenAPI specs. TRIGGER when user asks to "create an API integration", "adapt an OpenAPI spec for Foundry", "expose…
Design JSON Schema collections and CRUD patterns for Falcon Foundry apps. TRIGGER when user asks to "create a collection", "define a JSON schema", "store data…
Systematic troubleshooting for Falcon Foundry CLI errors, manifest validation failures, deploy failures, artifact runtime errors, and development server…
Orchestrates the complete Falcon Foundry app lifecycle from requirements through deployment. TRIGGER when user asks to "create a Foundry app", "build a Foundry…
End-to-end testing for Falcon Foundry apps using Playwright and @crowdstrike/foundry-playwright. TRIGGER when user asks to "add e2e tests", "add playwright…
Build serverless Go or Python functions for Falcon Foundry apps. TRIGGER when user asks to "create a function", "write a serverless function", "build backend…