add-action
Guide users through adding a new connector action to a Copilot Studio agent. Connector…
Add generative answer nodes (SearchAndSummarizeContent or AnswerQuestionWithAI) to a Copilot Studio topic. Use this instead of /add-node when the user asks to add grounded answers, knowledge search, generative answers, or AI-powered responses — these nodes require specific
$ npx -y skills add microsoft/skills-for-copilot-studio --skill add-generative-answers --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/add-generative-answersContext preview
The summary Claude sees to decide when to auto-load this skill.
Add generative answer nodes (SearchAndSummarizeContent or AnswerQuestionWithAI) to a Copilot Studio topic. Use this instead of /add-node when the user asks to add grounded answers, knowledge search, generative answers, or AI-powered responses — these nodes require specific
user-invocable: false description: Add generative answer nodes (SearchAndSummarizeContent or AnswerQuestionWithAI) to a Copilot Studio topic. Use this instead of /add-node when the user asks to add grounded answers, knowledge search, generative answers, or AI-powered responses — these nodes require specific patterns (ConditionGroup follow-up, knowledge source references, autoSend, responseCaptureType) that /add-node does not cover. argument-hint: <topic-name or "new"> allowed-tools: Bash(node *schema-lookup.bundle.js *), Read, Write, Edit, Glob context: fork agent: copilot-studio-author
Add `SearchAndSummarizeContent` nodes to generate responses grounded in the agent's knowledge sources.
When knowledge sources are added to the agent (via `/add-knowledge`), the AI can **directly search them without any topic** if it recognizes a QnA-style query. A dedicated topic with `SearchAndSummarizeContent` is useful when:
If the user just wants the agent to answer questions from its knowledge, adding the knowledge source may be enough.
1. **Auto-discover the agent directory**:
Glob: **/agent.mcs.yml
NEVER hardcode an agent name.
2. **Determine the approach** based on what the user needs:
3. **Look up the schema** for both nodes:
node ${CLAUDE_SKILL_DIR}/../../scripts/schema-lookup.bundle.js resolve CreateSearchQuery
node ${CLAUDE_SKILL_DIR}/../../scripts/schema-lookup.bundle.js resolve SearchAndSummarizeContent4. **Read `settings.mcs.yml`** to check if `GenerativeActionsEnabled: true`. This determines the best pattern:
5. **Ask the user** to clarify the behavior (if not already clear from their request):
6. **Always precede `SearchAndSummarizeContent` with `CreateSearchQuery`** to preserve conversational context. Never pass `=System.Activity.Text` directly to `SearchAndSummarizeContent` — the raw last message may lack context (e.g., "tell me more about that"). `CreateSearchQuery` rewrites the input into an optimized search query. Access the result via `Topic.<ResultVar>.SearchQuery`.
7. **Generate unique IDs** for all nodes (format: `<nodeType>_<6-8 random alphanumeric>`).
8. **Build the YAML** using the appropriate pattern. For full YAML examples, see [patterns.md](patterns.md). For the complete property reference table, see [property-reference.md](property-reference.md).
| Node | Use When | Data Source | Output | |------|----------|-------------|--------| | `SearchAndSummarizeContent` | You want answers grounded in the agent's knowledge sources (websites, SharePoint, Dataverse) | Agent's configured knowledge | AI-summarized response | | `SearchKnowledgeSources` | You need verbatim/exact content — insurance policies, legal text, HR docs — where AI summarization could lose details | Agent's configured knowledge | Raw search results (no AI summary) | | `AnswerQuestionWithAI` | You want a response based only on conversation history and general model knowledge | No external data | AI-generated response |
**Use `SearchAndSummarizeContent`** for the vast majority of cases (what people call "generative answers"). Use `SearchKnowledgeSources` when you need raw, unsummarized results for precision scenarios (pair with `CreateSearchQuery` for better search accuracy). Use `AnswerQuestionWithAI` only when you explicitly want the model to respond without consulting knowledge sources.
When using `knowledgeSources` to restrict the search to specific sources:
1. The knowledge source **must already exist** in the agent (add it first with `/add-knowledge`) 2. Find the knowledge source filename in the agent's `knowledge/` directory 3. Reference it **without the `.mcs.yml` extension**
Example: if the file is `cre3c_agent.topic.MyDocs_abc123.mcs.yml`, the reference is:
knowledgeSources:
kind: SearchSpecificKnowledgeSources
knowledgeSources:
- cre3c_agent.topic.MyDocs_abc123A plugin for Claude Code, GitHub Copilot CLI, and VS Code that enables authoring, testing, and troubleshooting Microsoft Copilot Studio STANDARD agents through YAML files — directly from your terminal or editor.
Repo: microsoft/skills-for-copilot-studio
Guide users through adding a new connector action to a Copilot Studio agent. Connector…
Generate and insert an Adaptive Card into a Copilot Studio topic using AdaptiveCardPrompt.…
Add a global variable to a Copilot Studio agent. Use when the user needs a variable that…
Add a knowledge source (public website or SharePoint) to a Copilot Studio agent. Use when the…
Add or modify a node in an existing Copilot Studio topic. Use when the user asks to add a…
Add child agents, connected agents, or other multi-agent patterns to a Copilot Studio agent.…