propose_change
propose_change
Creates, updates, enables, disables, or deletes Ada entities (knowledge articles, coaching, custom instructions, test cases, playbooks) and triggers test runs.
Call get_improvement_guide before proposing changes so the assistant picks the right entity type and follows Ada’s improvement best practices.
propose_change uses a three-phase flow so field schemas are discovered and changes are confirmed before they are applied.
Example prompts
- “Create a knowledge article covering our updated return policy, and draft it with the details from this conversation.”
- “Update the ‘VIP tone’ custom instruction to include the new loyalty-tier language.”
- “Create a test case from this failed conversation so we catch regressions on the refund flow.”
- “Run tests for all my billing-related test cases.”
- “Create a playbook that handles order returns — ask for the order number, look it up, and hand off to an agent if it’s over $500.”
- “Disable the ‘Password Reset’ playbook while we update the flow, then enable it once the new version is ready.”
Three-phase flow
Every write goes through three steps:
- Discover fields. Call with
entity_typeandoperationonly (nofields). The tool returns available fields, types, and descriptions for that combination. - Preview. Call again with
fieldspopulated (orentity_idonly fordeleteon test cases). The server returns a confirmation preview with a human-readable summary and Confirm/Cancel options — present these to the user. No change is applied yet. - Execute. After the user explicitly confirms, call again with
confirmed: trueand the same arguments. The tool validates inputs and applies the change.
This structure prevents accidental writes and surfaces what each operation requires before acting.
Parameters
Supported entity types and operations
Calling an unsupported entity_type × operation combination returns an explicit “not supported” error. Use send_feedback if a capability you need is missing.
Knowledge articles
New knowledge articles are created with enabled: false by default so they don’t affect live traffic until explicitly enabled. Enable them from the Ada dashboard after review.
On update, every field is optional — supply only the fields you want to change. Pass the article ID via entity_id.
Coaching
Both create and update are supported. Coaching is always anchored to a specific AI Agent turn (a generative event) in a real or simulated conversation, so creating coaching requires identifying that event first.
Create
Recommended workflow before creating coaching:
- Call
get_conversationfor the conversation you want to coach. - In the transcript, find the AI Agent response or action entry where the AI Agent went wrong, and confirm it shows
is_coachable: true. - Call
search_coachingwith your intent to check whether similar coaching already exists — update that one instead of creating a duplicate. - Create the coaching against that event.
Coaching types — pick the type that matches what went wrong in the coached event:
Update
On update, every field is optional — supply only what you want to change. Pass the coaching ID via entity_id; use search_coaching to find IDs. coaching_type cannot be changed.
Custom instructions
On update, every field is optional. Pass the custom instruction ID via entity_id.
Test cases
Each test case describes how the AI Agent should respond to a specific scenario and what evaluation criteria determine a pass or fail.
On update, every field is optional. Pass the test case ID via entity_id. On delete, no fields are needed — pass only entity_id.
Test runs
Creating a test_run triggers execution for the specified test case IDs. Use get_test_runs afterward to retrieve pass/fail status, evaluation criteria outcomes, and rationale.
Playbooks
Create, update, enable, or disable Playbooks from your AI assistant.
Create
New playbooks are created inactive by default. Use the enable operation to activate a playbook after review.
Update
You can change any combination of the name, description, sections, or general instructions. Pass the playbook ID via entity_id.
Inactive playbooks are updated in place — there is no risk because they are not serving conversations. You can optionally activate the playbook as part of the update by setting set_active to true.
Active playbooks are live, so the assistant asks how you want to proceed before making changes:
- Edit in place (
strategy='existing') — applies changes directly to the live playbook. - Duplicate (
strategy='duplicate') — creates a copy with your changes, leaving the original untouched. You choose whether to activate the copy and whether to deactivate the original (swap) or keep both active.
Enable and disable
Use the enable and disable operations to control whether a playbook is active. Pass only entity_id — no fields are needed.
enable— activates the playbook so it can be triggered in conversations.disable— deactivates the playbook without deleting it.
Sections and steps
Each section has an id (unique ObjectId string), a title, and a steps array. Sections are organizational — at runtime they flatten into a single step queue executed top-to-bottom.