chat-directline
Send a message to a Copilot Studio agent via DirectLine v3. Use for agents with no auth or manual auth. Requires a token endpoint URL or DirectLine secret.
- License 许可
- MIT
- 最近更新
- 2026-11-05
- Stars
- ★ 490
- Forks
- 102
01 前言 Front Matter
- agent
- copilot-studio-test
- description
- Send a message to a Copilot Studio agent via DirectLine v3. Use for agents with no auth or manual auth. Requires a token endpoint URL or DirectLine secret.
- allowed-tools
- Bash(node *chat-with-agent.bundle.js *), Read, Glob
- argument-hint
- <utterance>
- user-invocable
- false
03 SKILL.md 正文
Chat via DirectLine
Send a single utterance to a published agent via the DirectLine v3 REST API. Use this for agents with no authentication (authenticationmode 1) or manual authentication (authenticationmode 3).
Instructions
-
Run the script with
--token-endpoint(from detect-mode output) and the utterance from$ARGUMENTS:node ${CLAUDE_SKILL_DIR}/../../scripts/chat-with-agent.bundle.js \ --token-endpoint "<tokenEndpoint>" "<utterance>"If the user provided a DirectLine secret instead:
node ${CLAUDE_SKILL_DIR}/../../scripts/chat-with-agent.bundle.js \ --directline-secret "<secret>" "<utterance>" -
Parse the JSON output from stdout.
Normal response (status: "ok")
{
"status": "ok",
"protocol": "directline",
"utterance": "hello",
"conversation_id": "abc123-XYZ",
"directline_token": "eyJ...",
"watermark": "3",
"start_activities": [ ... ],
"activities": [ ... ]
}
Display the agent's response from the activities array:
- Text: activities where
type === "message"— showtext - Suggested actions:
suggestedActions.actionsarray - Adaptive cards:
attachmentswithcontentType === "application/vnd.microsoft.card.adaptive"
Save conversation_id, directline_token, and watermark — needed for follow-ups.
Sign-in required (status: "signin_required")
The agent requires the user to authenticate (manual auth agents):
{
"status": "signin_required",
"protocol": "directline",
"signin_url": "https://...",
"resume_command": "...",
"followup_command": "..."
}
- Show the
signin_urlto the user, ask for the validation code - Send the code:
node ${CLAUDE_SKILL_DIR}/../../scripts/chat-with-agent.bundle.js <resume_command with code substituted> - Re-send the utterance:
node ${CLAUDE_SKILL_DIR}/../../scripts/chat-with-agent.bundle.js <followup_command>
Use resume_command and followup_command exactly as given.
Multi-turn
Pass all three values from the previous response:
node ${CLAUDE_SKILL_DIR}/../../scripts/chat-with-agent.bundle.js \
--token-endpoint "<url>" "<follow-up>" \
--conversation-id "<id>" --directline-token "<token>" --watermark "<watermark>"
directline_tokenis bound to the conversation — do NOT fetch a new token. Always reuse from the previous response.watermarktracks seen activities — pass it to avoid duplicates.- Tokens expire after ~30 minutes. If expired, start a new conversation (omit
--conversation-id).
Error Handling
| Error | Cause | Resolution |
|---|---|---|
Token endpoint rejected |
Agent not published or wrong URL | Verify agent is published |
Conversation not found |
Token expired (>30 min) | Start a new conversation |
04 同仓库更多 Skills
validate
Validate Copilot Studio agent YAML files using the LSP binary's full diagnostics (YAML structure, Power Fx, schema, cross-file references). Use when the user asks to check, validate, or verify YAML files.
test-auth
Authenticate for Copilot Studio evaluation API and SDK chat. Caches a token that is shared across run-eval and chat-sdk skills. Run this before any eval or SDK chat workflow. Requires an App Registration with MakerOperations and Copilots.Invoke permissions.
run-tests-kit
Run a batch test suite via the Copilot Studio Kit (Dataverse API). Uses the Power CAT Copilot Studio Kit to execute test cases against a published agent and produces pass/fail results with latencies. Requires the Kit installed in the environment, an App Registration with Dataverse permissions, and a published agent.
run-eval
Run evaluations against a Copilot Studio agent via the Power Platform Evaluation API. Works on DRAFT agents — no publish step required. Lists test sets, starts a run, polls until complete, fetches results, and proposes YAML fixes for failures. Use when the user wants to test agent changes without publishing.
new-topic
Create a new Copilot Studio topic YAML file. Use when the user asks to create a new topic, conversation flow, or dialog for their agent.
manage-agent
Push/pull Copilot Studio agent content via the VS Code extension's LanguageServerHost LSP binary. Handles authentication (interactive browser login for push/pull, device code flow for chat token), sync push, sync pull, clone, and diff operations.