api-integrations
Expose external APIs to Falcon Foundry via OpenAPI specs. TRIGGER when user asks to "create an API integration", "adapt an…
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
Claude Code
$ npx -y skills add CrowdStrike/foundry-skills --skill ai-agents-development --agent claude-code
Codex
$ npx skills add CrowdStrike/foundry-skills --skill ai-agents-development -a codex -y
Cursor
$ npx skills add CrowdStrike/foundry-skills --skill ai-agents-development -a cursor -y
Gemini CLI
$ npx skills add CrowdStrike/foundry-skills --skill ai-agents-development -a gemini-cli -y
GitHub Copilot
$ npx skills add CrowdStrike/foundry-skills --skill ai-agents-development -a github-copilot -y
OpenCode
$ npx skills add CrowdStrike/foundry-skills --skill ai-agents-development -a opencode -y
Windsurf
$ npx skills add CrowdStrike/foundry-skills --skill ai-agents-development -a windsurf -y
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.7.1 updated: 2026-11-10 tags: [foundry, ai, agents, knowledge-bases, charlotte, agent-tools] author: CrowdStrike license: MIT compatibility: Claude Code >=1.0 metadata: category: ai
> Create knowledge bases before the agents that reference them, and scaffold both with the CLI.
> **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, so nothing is left half-created.
Both artifacts share the CLI's create-time validators, which bite constantly: **names are 5–100 chars** (must start alphanumeric; `kb`, `agent`, `bot` all fail), **descriptions 3–500 chars** when present (`-d "x"` fails), agent names unique among agents and KB names among KBs. KBs are the one asymmetry — `knowledge-bases create` enforces the 5-char floor, but the *manifest* validator accepts a KB name as short as 1 character (and no longer checks the description), so a short name already in the manifest passes `apps validate`. The on-disk directory is a sanitized form of the name (every char outside `[a-zA-Z0-9-_]` → `_`, then leading/trailing `_` trimmed): `--name "Threat Intel Docs"` yields `knowledge-bases/Threat_Intel_Docs/` and records `path: Threat_Intel_Docs`; the manifest resolves files against `path`, never `name`. Full regex/length table: [references/manifest-schema.md](references/manifest-schema.md#shared-validators).
Both artifacts support `create` and `delete`. There is no `list` or `edit`. To change an agent beyond the [allowed hand-edits](#allowed-manifest-hand-edits), delete and recreate it, which orphans the deployed copy in AgentWorks (see below).
# 1. Knowledge base FIRST (--files REQUIRED with --no-prompt; accepts local paths and HTTP(S) URLs). 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. Plain json needs no schema; json_with_schema needs # --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` (matching `manifest.yml`) plus `--no-prompt` (required — an unknown name then fails fast instead of opening a picker):
foundry agents delete --name "Detection Triage Agent" --no-prompt foundry knowledge-bases delete --name "Threat Intel Docs" --no-prompt
A KB still referenced by an agent cannot be deleted (`cannot delete knowledge base "X": still referenced by agent(s): …`) — delete the agent first, or remove the KB from its `knowledge_bases` list. Empty parent dirs are left behind (harmless). `delete` is local-only: the next deploy leaves the previously deployed agent in Charlotte AI > AgentWorks as an unpublished orphan (recreating under the same name shows two entries), so remove the orphan by hand and match agents at runtime by the IDs in `manifest.yml`, not by name. `foundry apps delete` does remove the platform-side agents.
The CLI reads the value as a file path/URL first and silently falls back to treating it as inline prompt text when that fails — always writing to `agents/<path>/system_promp
AI coding assistant skills for building CrowdStrike Falcon Foundry apps. Build Foundry apps from a natural language prompt — API integrations, workflows, UI pages, functions, collections, AI agents, and knowledge bases — all scaffolded with the Foundry CLI
Expose external APIs to Falcon Foundry via OpenAPI specs. TRIGGER when user asks to "create an API integration", "adapt an…
Audit an existing Falcon Foundry app for documented anti-patterns and fix the safe ones, like npm audit. TRIGGER when user asks…
Upgrade a Falcon Foundry app that was installed from a template to a newer version of that template, in place. TRIGGER when user…
Design JSON Schema collections and CRUD patterns for Falcon Foundry apps. TRIGGER when user asks to "create a collection",…
Systematic troubleshooting for Falcon Foundry CLI errors, manifest validation failures, deploy failures, artifact runtime errors,…
Orchestrates the complete Falcon Foundry app lifecycle from requirements through deployment. TRIGGER when user asks to "create a…
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…
Ask which skill or flow fits your situation. A router over the skills in this repo.