mirror of
https://github.com/elevenlabs/skills.git
synced 2026-09-14 20:46:33 +08:00
refactor(agents): move procedures into the agents skill as references
Top-level skills are per platform, so procedures belong inside the agents skill rather than as a skill of their own. - Drop the top-level agent-procedures skill; README.md and evals/run_all.py return to their previous state. - Add a Procedures section to agents/SKILL.md covering the semantics a caller needs before writing any procedure call: drafts do not reach the live agent until publish, a branch-HEAD GET returns 404 until first publish, compile only when deterministic procedures changed, and draft updates replace the whole body. - Add agents/references/using-procedure-api.md and agents/references/writing-procedures.md. - Extend the agents description so procedure queries route to this skill. - Fold the procedure changelog triggers into the agents row of update-skills-from-changelog. - Move the procedure evals into the agents suite. Every expectation was checked to discriminate under check_expectation: a correct response passes and a deliberately wrong one fails. Cases relying on reference content or asserting the absence of a step were dropped, since the harness injects only SKILL.md and keyword grading cannot express absence.
This commit is contained in:
@@ -51,8 +51,7 @@ Read `/tmp/changelog-${CHANGELOG_DATE}.md` and map changes against these skills:
|
||||
| --- | --- |
|
||||
| `text-to-speech` | New/deprecated models, new TTS parameters, voice settings changes, output format changes, SDK method signature changes for `text_to_speech.convert()` |
|
||||
| `speech-to-text` | New transcription models, new parameters, changed response schemas, SDK method changes |
|
||||
| `agents` | New LLM providers/models, new tool types, new agent config fields, conversation config schema changes, new CLI commands, widget changes |
|
||||
| `agent-procedures` | New or changed procedure endpoints, procedure request/response fields, procedure types, structured procedure validation rules, compile or publish behavior, SDK method changes under `conversational_ai.agents.procedures` or `conversationalAi.agents.procedures` |
|
||||
| `agents` | New LLM providers/models, new tool types, new agent config fields, conversation config schema changes, new CLI commands, widget changes, procedure endpoint/field/type changes, structured procedure validation rules, compile or publish behavior, SDK method changes under `conversational_ai.agents.procedures` or `conversationalAi.agents.procedures` |
|
||||
| `sound-effects` | New generation parameters, model changes, SDK method changes |
|
||||
| `music` | New endpoints, new parameters, model changes |
|
||||
| `voice-isolator` | New parameters, model changes, SDK method changes for `audio_isolation.convert()` |
|
||||
@@ -79,8 +78,7 @@ Skill directories:
|
||||
|
||||
- `text-to-speech/` (`SKILL.md` plus `references/installation.md`, `references/streaming.md`, `references/voice-settings.md`)
|
||||
- `speech-to-text/` (`SKILL.md` plus `references/installation.md`, `references/transcription-options.md`, `references/realtime-server-side.md`, `references/realtime-client-side.md`, `references/realtime-commit-strategies.md`, `references/realtime-events.md`)
|
||||
- `agents/` (`SKILL.md` plus `references/installation.md`, `references/agent-configuration.md`, `references/client-tools.md`, `references/widget-embedding.md`, `references/outbound-calls.md`)
|
||||
- `agent-procedures/` (`SKILL.md` plus `references/writing-procedures.md`)
|
||||
- `agents/` (`SKILL.md` plus `references/installation.md`, `references/agent-configuration.md`, `references/client-tools.md`, `references/widget-embedding.md`, `references/outbound-calls.md`, `references/using-procedure-api.md`, `references/writing-procedures.md`)
|
||||
- `sound-effects/` (`SKILL.md` plus `references/installation.md`)
|
||||
- `music/` (`SKILL.md` plus `references/installation.md`, `references/api_reference.md`)
|
||||
- `voice-isolator/` (`SKILL.md` plus `references/installation.md`)
|
||||
|
||||
@@ -18,7 +18,6 @@ npx skills add elevenlabs/skills
|
||||
| [speech-to-text](./speech-to-text) | Transcribe audio files to text with timestamps |
|
||||
| [speech-engine](./speech-engine) | Add real-time voice conversations to a custom LLM or chat agent |
|
||||
| [agents](./agents) | Build conversational voice AI agents |
|
||||
| [agent-procedures](./agent-procedures) | Create, edit, compile, and publish agent procedures over the SDKs or REST API |
|
||||
| [sound-effects](./sound-effects) | Generate sound effects from text descriptions |
|
||||
| [music](./music) | Generate music tracks using AI composition |
|
||||
| [voice-changer](./voice-changer) | Transform the voice in an audio recording into a different target voice (speech-to-speech) |
|
||||
|
||||
+27
-2
@@ -1,6 +1,6 @@
|
||||
---
|
||||
name: agents
|
||||
description: Build voice AI agents with ElevenLabs. Use when creating voice assistants, customer service bots, interactive voice characters, or any real-time voice conversation experience.
|
||||
description: Build voice AI agents with ElevenLabs. Use when creating voice assistants, customer service bots, interactive voice characters, or any real-time voice conversation experience, and when configuring an agent's tools, workflows, or procedures, including creating, editing, compiling, and publishing procedure drafts on an agent branch over the SDKs or REST API.
|
||||
license: MIT
|
||||
compatibility: Requires internet access and an ElevenLabs API key (ELEVENLABS_API_KEY).
|
||||
metadata: {"openclaw": {"requires": {"env": ["ELEVENLABS_API_KEY"]}, "primaryEnv": "ELEVENLABS_API_KEY"}}
|
||||
@@ -243,7 +243,7 @@ Set under `conversation_config.agent.prompt.built_in_tools`. `{}` enables defaul
|
||||
| `language_detection` | Multilingual agents |
|
||||
| `transfer_to_number` | Phone-based human escalation |
|
||||
| `transfer_to_agent` | Multi-agent workflows |
|
||||
| `start_procedure` | Procedure-guided conversations |
|
||||
| `start_procedure` | Procedure-guided conversations (see [Procedures](#procedures)) |
|
||||
| `end_procedure` | Completing active procedures |
|
||||
| `skip_turn` | Tutoring / coaching (silent listening) |
|
||||
| `voicemail_detection` | Outbound calling |
|
||||
@@ -305,6 +305,29 @@ Use `entry_behavior` on `override_agent` nodes to choose whether a sub-agent spe
|
||||
For nested agent transfers, set `enable_nesting` on a `standalone_agent` node and
|
||||
`return_when_nested` on an `end` node that should return control to the parent workflow.
|
||||
|
||||
## Procedures
|
||||
|
||||
Reusable instruction blocks an agent runs when a trigger matches. A procedure is `free_form` (markdown guidance the agent adapts, and the only type that can reference knowledge base documents) or `deterministic` (ordered, typed steps for flows that must run consistently). Procedures are in Alpha. See [Using the Procedure API](references/using-procedure-api.md) for the full REST and SDK flow, and [Writing Procedures](references/writing-procedures.md) for the step schema and authoring rules.
|
||||
|
||||
Procedures live on an agent branch, and every write stages a per-user draft:
|
||||
|
||||
| Operation | Call |
|
||||
|-----------|------|
|
||||
| List, create, read, update, discard, remove | `/v1/convai/agents/{agent_id}/branches/{branch_id}/procedures...` (`procedures.*` and `procedures.drafts.*` in the SDKs) |
|
||||
| Compile | `POST .../procedures/compile` (`procedures.compile`) |
|
||||
| Publish | `PATCH /v1/convai/agents/{agent_id}?branch_id=...` (`agents.update`) |
|
||||
|
||||
Semantics worth knowing before writing any of these calls:
|
||||
|
||||
- Nothing reaches the live agent until you publish. Publishing is not a procedure endpoint; one PATCH on the agent versions every changed procedure draft on the branch.
|
||||
- `GET .../procedures/{procedure_id}` reads branch HEAD and returns `404` until that procedure's first publish. Read the `/draft` variant to see a procedure you just created; do not retry the create.
|
||||
- Compile only when structured (`deterministic`) procedures changed. Compilation turns them into workflow nodes, so the publish must carry the `workflow` that compile returned. Free-form-only changes publish without compiling, because the agent loads free-form procedures from their published versions.
|
||||
- Compile validates structured content and is the only way to check it. On `400` it returns `errors` keyed by procedure ID with the offending field `path`; repair the draft and compile again rather than publishing.
|
||||
- A draft update replaces the whole body. Read the draft first, then resend `name`, `type`, and `trigger` alongside the new `content`.
|
||||
- `content` is markdown for a `free_form` procedure, and a JSON-encoded object with a `trigger` and a `steps` array for a `deterministic` one. Serialize it; do not hand-escape quotes.
|
||||
- Routing is driven by the `trigger` text, not the procedure name. Write concrete, non-overlapping triggers that cover the phrasings a user would actually say.
|
||||
- Procedure APIs require `elevenlabs` (Python) or `@elevenlabs/elevenlabs-js` at `2.60.0` or newer.
|
||||
|
||||
## Guardrails
|
||||
|
||||
Layered safety enforcement that runs independently of the LLM — configured under `platform_settings.guardrails`, not in the system prompt. Reference: [Guardrails](https://elevenlabs.io/docs/eleven-agents/best-practices/guardrails).
|
||||
@@ -505,5 +528,7 @@ Common errors: **401** (invalid key), **404** (not found), **422** (invalid conf
|
||||
- [Installation Guide](references/installation.md) - SDK setup and migration
|
||||
- [Agent Configuration](references/agent-configuration.md) - All config options and CRUD examples
|
||||
- [Client Tools](references/client-tools.md) - Webhook, client, and system tools
|
||||
- [Using the Procedure API](references/using-procedure-api.md) - Procedure REST and SDK flow, compile and publish
|
||||
- [Writing Procedures](references/writing-procedures.md) - Trigger and content authoring, step schema
|
||||
- [Widget Embedding](references/widget-embedding.md) - Website integration
|
||||
- [Outbound Calls](references/outbound-calls.md) - Phone call integrations
|
||||
|
||||
@@ -1,15 +1,9 @@
|
||||
---
|
||||
name: agent-procedures
|
||||
description: Manage ElevenLabs Agents Platform procedures through the Python and JavaScript SDKs or the public REST API. Use when creating, listing, reading, updating, discarding, compiling, publishing, versioning, or removing free-form or structured agent procedures.
|
||||
license: MIT
|
||||
compatibility: Requires internet access, an ElevenLabs API key (ELEVENLABS_API_KEY), and either an ElevenLabs SDK (2.60.0 or newer) or curl and jq.
|
||||
metadata: {"openclaw": {"requires": {"env": ["ELEVENLABS_API_KEY"]}, "primaryEnv": "ELEVENLABS_API_KEY"}}
|
||||
---
|
||||
|
||||
# ElevenLabs Agent Procedures
|
||||
# Using the Procedure API
|
||||
|
||||
Procedures are reusable instruction blocks that an agent runs when a trigger matches. Create, edit, compile, and publish them with the Python or JavaScript SDK, or over the public REST API with `curl`. Reference: [Procedures](https://elevenlabs.io/docs/eleven-agents/customization/procedures.md) · [API Reference](https://elevenlabs.io/docs/api-reference/agents/procedures/).
|
||||
|
||||
For what belongs in `trigger` and `content`, see [Writing Procedures](writing-procedures.md).
|
||||
|
||||
Procedures are in Alpha. The feature set and the content schema are still changing, and some changes may break. Check the reference pages above before relying on a detail here.
|
||||
|
||||
## Prerequisites
|
||||
@@ -175,8 +169,8 @@ try {
|
||||
- Create, update, discard, and remove act on your draft working set. Nothing reaches the live agent until you publish.
|
||||
- Publishing is not a procedure endpoint. Use `PATCH /v1/convai/agents/{agent_id}?branch_id=...` to version all changed procedure drafts on the branch.
|
||||
- Each branch maps every `procedure_id` to a published `version_id`, or to no version while only a draft exists. A branch-HEAD read therefore returns `404` until the first publish.
|
||||
- Compile structured-procedure changes before publishing. Publish free-form-only changes without compiling. See Compile and Publish.
|
||||
- Structured content has no dry-run. Save the draft, compile to validate it, and repair what compile reports. See Compile and Publish.
|
||||
- Compile structured-procedure changes before publishing. Publish free-form-only changes without compiling. See [Compile and Publish](#compile-and-publish).
|
||||
- Structured content has no dry-run. Save the draft, compile to validate it, and repair what compile reports. See [Compile and Publish](#compile-and-publish).
|
||||
- Draft writes are last-write-wins. Read the draft immediately before editing and avoid concurrent writers.
|
||||
|
||||
Reads resolve against different sources:
|
||||
@@ -221,7 +215,7 @@ PROCEDURE_ID=$(printf '%s' "$CREATE_RESPONSE" | jq -r '.procedure_id')
|
||||
|
||||
Fail if `procedure_id` is empty or null.
|
||||
|
||||
A structured procedure uses the same endpoint with `type` set to `deterministic` and its steps JSON-encoded into `content`. See [Writing Procedures](references/writing-procedures.md) for what belongs in `trigger` and `content`, and for building that JSON string.
|
||||
A structured procedure uses the same endpoint with `type` set to `deterministic` and its steps JSON-encoded into `content`. See [Writing Procedures](writing-procedures.md) for what belongs in `trigger` and `content`, and for building that JSON string.
|
||||
|
||||
## Read and Update the Draft
|
||||
|
||||
@@ -244,7 +238,7 @@ curl -fsS -X PATCH \
|
||||
|
||||
Treat the draft update body as a full replacement. Read the current draft, preserve `name`, `type`, and `trigger` unless the user requested changes to them, and send them with the new `content`. The API accepts an omitted `trigger` and then derives it from `content`; omit it only when that is intentional. Preserve `type` unless the user explicitly requests a conversion.
|
||||
|
||||
Publish with the flow under Compile and Publish.
|
||||
Publish with the flow under [Compile and Publish](#compile-and-publish).
|
||||
|
||||
## Compile and Publish
|
||||
|
||||
@@ -283,7 +277,7 @@ WORKFLOW=$(printf '%s' "$COMPILE_RESPONSE" | jq -c '.workflow')
|
||||
|
||||
A successful compile returns `200` with `workflow`; validation failure returns `400` with `errors` and no workflow. Do not publish while `COMPILE_ERRORS` is non-empty — repair and recompile — and fail if `workflow` is null.
|
||||
|
||||
SDK methods raise on compile failure. Catch the error around `procedures.compile`; see SDKs for the flow and Error Handling for the response fields.
|
||||
SDK methods raise on compile failure. Catch the error around `procedures.compile`; see [SDKs](#sdks) for the flow and [Error Handling](#error-handling) for the response fields.
|
||||
|
||||
Publish the drafts with the compiled workflow:
|
||||
|
||||
@@ -350,7 +344,3 @@ Common errors:
|
||||
The SDKs raise for these responses. The payload is on `error.body`, and the status is on `error.status_code` in Python or `error.statusCode` in JavaScript.
|
||||
|
||||
Do not blindly retry create, update, delete, or publish requests. Read current state before deciding whether a retry is safe.
|
||||
|
||||
## References
|
||||
|
||||
- [Writing Procedures](references/writing-procedures.md)
|
||||
+1
-1
@@ -43,7 +43,7 @@ Set `content` to a serialized JSON object containing a `trigger` and a non-empty
|
||||
|
||||
Each entry in `branches` pairs a `condition` with its own `steps`. A condition is either an LLM condition such as `{"type": "llm", "condition": "the caller has no order ID"}` or an expression over dynamic variables such as `{"type": "expression", "expression": ...}`.
|
||||
|
||||
Use the structured procedures documentation for current step types, fields, and valid combinations. To validate against a live agent, save the draft and compile it. Fix every reported error before publishing; `SKILL.md` describes the loop.
|
||||
Use the structured procedures documentation for current step types, fields, and valid combinations. To validate against a live agent, save the draft and compile it. Fix every reported error before publishing; [Using the Procedure API](using-procedure-api.md) describes the loop.
|
||||
|
||||
```json
|
||||
{
|
||||
@@ -1,84 +0,0 @@
|
||||
{
|
||||
"skill_name": "agent-procedures",
|
||||
"evals": [
|
||||
{
|
||||
"id": 1,
|
||||
"prompt": "Using the ElevenLabs REST API and curl, show me how to add a structured (deterministic) procedure to agent agent_abc123 on branch agtbranch_xyz789 and get it live. Do not run anything.",
|
||||
"expected_output": "Curl commands covering structured create, compile, and publish",
|
||||
"files": [],
|
||||
"expectations": [
|
||||
"POSTs to /v1/convai/agents/agent_abc123/branches/agtbranch_xyz789/procedures with type 'deterministic' and the content passed as a JSON-encoded string",
|
||||
"Sends the xi-api-key header populated from the ELEVENLABS_API_KEY environment variable, never a literal key",
|
||||
"POSTs to the procedures/compile endpoint after saving the draft and before publishing, and repairs the draft and compiles again rather than publishing when compile returns errors",
|
||||
"Publishes with a PATCH to /v1/convai/agents/agent_abc123 carrying branch_id as a query parameter and the compiled workflow in the body"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 2,
|
||||
"prompt": "On my ElevenLabs agent agent_abc123, branch agtbranch_xyz789, I only edited the wording of one free-form procedure. The branch also has a structured (deterministic) procedure that I did not touch. Do I need to compile before publishing, or can I just PATCH the agent? Do not run anything.",
|
||||
"expected_output": "Explanation that no compile is needed, because compiling only concerns structured procedures",
|
||||
"files": [],
|
||||
"expectations": [
|
||||
"States that no compile is needed here, since only a free-form procedure changed",
|
||||
"Explains that compiling turns structured procedures into workflow nodes, and free-form procedures are loaded from the published version instead",
|
||||
"Publishes with a PATCH to /v1/convai/agents/agent_abc123 carrying branch_id, with no workflow in the body",
|
||||
"Says a compile is needed when the branch's structured procedures change, including the publish that removes the last one"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 3,
|
||||
"prompt": "I created a procedure on my ElevenLabs agent a minute ago, but GET /v1/convai/agents/{agent_id}/branches/{branch_id}/procedures/{procedure_id} returns 404. Explain why and show me the curl call that reads what I actually have.",
|
||||
"expected_output": "Explanation of draft versus branch HEAD reads, plus the draft endpoint call",
|
||||
"files": [],
|
||||
"expectations": [
|
||||
"Explains that the plain procedure endpoint reads branch HEAD and a newly created procedure is still an unpublished draft",
|
||||
"Shows a GET against the /draft suffix of the procedure endpoint",
|
||||
"Does not suggest retrying the create call to fix the 404"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 4,
|
||||
"prompt": "Write the JSON content for a structured (deterministic) ElevenLabs agent procedure that asks the caller for their order ID, looks it up with tool tool_abc123 named 'Get order', and then either explains the order is not eligible or confirms the refund. Do not call any API.",
|
||||
"expected_output": "A structured procedure content JSON using valid step types",
|
||||
"files": [],
|
||||
"expectations": [
|
||||
"Produces JSON with a trigger and a non-empty steps array",
|
||||
"Uses an ask step with an instruction field to collect the order ID",
|
||||
"Uses a tool_call step carrying tool_id set to tool_abc123",
|
||||
"Expresses the either/or outcome with a branch step pairing a typed llm or expression condition object with a non-empty steps list, rather than using a bare string or inventing an 'if' or 'else' step type"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 5,
|
||||
"prompt": "Using the ElevenLabs Python SDK, write a script that creates and publishes a free-form procedure on agent agent_abc123, branch agtbranch_xyz789. Do not run it.",
|
||||
"expected_output": "Python script using the SDK procedures client and publishing without compiling",
|
||||
"files": [],
|
||||
"expectations": [
|
||||
"Calls procedures.create with the body passed as request=CreateProcedureRequestModel",
|
||||
"Does not call procedures.compile because only a free-form procedure changed",
|
||||
"Publishes with agents.update, passing branch_id and no workflow"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 6,
|
||||
"prompt": "With the ElevenLabs JavaScript SDK, I want to change only the content of an existing procedure agtprc_abc on agent agent_abc123, branch agtbranch_xyz789. Show me the call. Do not run it.",
|
||||
"expected_output": "A drafts.update call sending the full procedure body",
|
||||
"files": [],
|
||||
"expectations": [
|
||||
"Sends the current name, type, and trigger with the new content to preserve behavior during the replacement update",
|
||||
"Reads the current draft with procedures.drafts.get before writing the update"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 7,
|
||||
"prompt": "I'm adding procedures to my ElevenLabs agent over the API. One handles refunds and one handles general account questions, but the agent keeps running the wrong one. How should I write the triggers?",
|
||||
"expected_output": "Trigger-writing guidance emphasizing concrete, non-overlapping triggers",
|
||||
"files": [],
|
||||
"expectations": [
|
||||
"Advises making triggers concrete and non-overlapping, and identifies the broad account-questions trigger as the cause of the misrouting",
|
||||
"Suggests covering the different phrasings a user might actually say",
|
||||
"Does not claim the procedure name influences which procedure the agent picks"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,22 +0,0 @@
|
||||
[
|
||||
{"query": "add a refund handling procedure to my elevenlabs agent using the REST API and publish it to the main branch", "should_trigger": true},
|
||||
{"query": "I need to update the content of an existing procedure on my agents platform agent with curl, then publish the branch", "should_trigger": true},
|
||||
{"query": "write a script that creates a deterministic structured procedure on my elevenlabs agent, compiles it, and publishes the workflow", "should_trigger": true},
|
||||
{"query": "how do I discard the unpublished draft edits I made to an agent procedure and go back to what's on the branch?", "should_trigger": true},
|
||||
{"query": "my agent procedure GET returns 404 right after I created it, what am I doing wrong with the elevenlabs procedure api", "should_trigger": true},
|
||||
{"query": "remove a procedure from my elevenlabs agent branch and make sure the removal is actually published", "should_trigger": true},
|
||||
{"query": "list every procedure on my elevenlabs agent's main branch and tell me which ones have unpublished draft changes", "should_trigger": true},
|
||||
{"query": "how should I word the trigger on my elevenlabs agent procedure so the agent stops picking the wrong one", "should_trigger": true},
|
||||
{"query": "what step types can I use in a deterministic elevenlabs agent procedure and how do I branch on a condition", "should_trigger": true},
|
||||
{"query": "how do I reference a tool and a knowledge base document inside a free-form agent procedure body", "should_trigger": true},
|
||||
{"query": "create an agent procedure with the elevenlabs python sdk and publish it to the branch", "should_trigger": true},
|
||||
{"query": "which method on the elevenlabs js client updates a procedure draft and compiles the branch", "should_trigger": true},
|
||||
{"query": "change the LLM to gpt-4o and lower the temperature on my elevenlabs agent", "should_trigger": false},
|
||||
{"query": "add a webhook tool to my elevenlabs agent that calls our inventory API", "should_trigger": false},
|
||||
{"query": "set the first message and system prompt for a new elevenlabs voice agent", "should_trigger": false},
|
||||
{"query": "embed the elevenlabs voice chat widget on my marketing site", "should_trigger": false},
|
||||
{"query": "make an outbound call to a sales lead with my elevenlabs agent over twilio", "should_trigger": false},
|
||||
{"query": "write a runbook document describing our internal refund procedure for the support team", "should_trigger": false},
|
||||
{"query": "create a stored procedure in postgres that archives old orders", "should_trigger": false},
|
||||
{"query": "set up a github actions workflow that runs our test suite on every pull request", "should_trigger": false}
|
||||
]
|
||||
@@ -37,6 +37,58 @@
|
||||
"Includes a description for the tool that the LLM can understand",
|
||||
"Defines appropriate parameters/schema for the tool"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 4,
|
||||
"prompt": "Using the ElevenLabs REST API and curl, show me how to add a structured (deterministic) procedure to agent agent_abc123 on branch agtbranch_xyz789 and get it live. Do not run anything.",
|
||||
"expected_output": "Curl commands covering structured create, compile, and publish",
|
||||
"files": [],
|
||||
"expectations": [
|
||||
"Sets type to deterministic and passes JSON-encoded content rather than a raw object",
|
||||
"Sends the xi-api-key header populated from the ELEVENLABS_API_KEY environment variable, never a literal key",
|
||||
"POSTs to the procedures/compile endpoint after saving the draft and before publishing, and repairs the draft and compiles again rather than publishing when compile returns errors",
|
||||
"PATCHes the agent with branch_id and the compiled workflow"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 5,
|
||||
"prompt": "On my ElevenLabs agent agent_abc123, branch agtbranch_xyz789, I only edited the wording of one free-form procedure. The branch also has a structured (deterministic) procedure that I did not touch. Do I need to compile before publishing, or can I just PATCH the agent? Do not run anything.",
|
||||
"expected_output": "Explanation that no compile is needed, because compiling only concerns structured procedures",
|
||||
"files": [],
|
||||
"expectations": [
|
||||
"Explains that compilation produces workflow nodes from deterministic procedures, while free-form content is read from its published version instead",
|
||||
"Notes that the unchanged deterministic procedure does not force a compile"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 6,
|
||||
"prompt": "I created a procedure on my ElevenLabs agent a minute ago, but GET /v1/convai/agents/{agent_id}/branches/{branch_id}/procedures/{procedure_id} returns 404. Explain why and show me the curl call that reads what I actually have.",
|
||||
"expected_output": "Explanation of draft versus branch HEAD reads, plus the draft endpoint call",
|
||||
"files": [],
|
||||
"expectations": [
|
||||
"Explains that the plain procedure endpoint reads branch HEAD and a newly created procedure is still an unpublished draft",
|
||||
"Shows a GET against the /draft suffix of the procedure endpoint"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 7,
|
||||
"prompt": "With the ElevenLabs JavaScript SDK, I want to change only the content of an existing procedure agtprc_abc on agent agent_abc123, branch agtbranch_xyz789. Show me the call. Do not run it.",
|
||||
"expected_output": "A drafts.update call sending the full procedure body",
|
||||
"files": [],
|
||||
"expectations": [
|
||||
"Sends the current name, type, and trigger with the new content to preserve behavior during the replacement update",
|
||||
"Reads the current draft before writing the update"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 8,
|
||||
"prompt": "I'm adding procedures to my ElevenLabs agent over the API. One handles refunds and one handles general account questions, but the agent keeps running the wrong one. How should I write the triggers?",
|
||||
"expected_output": "Trigger-writing guidance emphasizing concrete, non-overlapping triggers",
|
||||
"files": [],
|
||||
"expectations": [
|
||||
"Advises making triggers concrete and non-overlapping, and identifies the broad account-questions trigger as the cause of the misrouting",
|
||||
"Recommends wording each trigger to cover the phrasings a caller would actually use"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
@@ -8,12 +8,9 @@
|
||||
{"query": "embed a voice chat widget on my website so visitors can talk to our AI assistant — using elevenlabs", "should_trigger": true},
|
||||
{"query": "make outbound calls to sales leads using an AI voice agent, need to integrate with our HubSpot", "should_trigger": true},
|
||||
{"query": "how do I add client-side tools to my elevenlabs agent so it can control the browser UI during a call", "should_trigger": true},
|
||||
{"query": "list the procedures on my elevenlabs agent's main branch and show which ones have unpublished draft changes", "should_trigger": false},
|
||||
{"query": "compile the structured procedures on my elevenlabs agent branch and publish the compiled workflow", "should_trigger": false},
|
||||
{"query": "my elevenlabs agent procedure returns 404 from the branch endpoint right after I created it, what did I miss", "should_trigger": false},
|
||||
{"query": "rewrite the trigger on my agent's refund procedure so it stops overlapping with the billing procedure", "should_trigger": false},
|
||||
{"query": "create an agent procedure with the elevenlabs python sdk and publish it to the branch", "should_trigger": false},
|
||||
{"query": "which method on the elevenlabs js client updates a procedure draft and compiles the branch", "should_trigger": false},
|
||||
{"query": "list the procedures on my elevenlabs agent's main branch and show which ones have unpublished draft changes", "should_trigger": true},
|
||||
{"query": "compile the structured procedures on my elevenlabs agent branch and publish the compiled workflow", "should_trigger": true},
|
||||
{"query": "create an agent procedure with the elevenlabs python sdk and publish it to the branch", "should_trigger": true},
|
||||
{"query": "generate speech from this text paragraph and save as an mp3 file", "should_trigger": false},
|
||||
{"query": "transcribe this recorded phone call to text with speaker labels", "should_trigger": false},
|
||||
{"query": "create an explosion sound effect for my game", "should_trigger": false},
|
||||
|
||||
@@ -113,7 +113,6 @@ ALL_SKILLS = [
|
||||
"speech-to-text",
|
||||
"speech-engine",
|
||||
"agents",
|
||||
"agent-procedures",
|
||||
"sound-effects",
|
||||
"music",
|
||||
"voice-changer",
|
||||
|
||||
Reference in New Issue
Block a user