update_storyline
Update part of a storyline draft — fields you don't pass stay as they are (GET-then-merge on top of a full PUT underneath).
concurrency: "user" = progress belongs to the person (shared across sessions); "session" =
progress belongs to the case (one run per session). Changes affect only **future** enrolments;
in-flight runs are not migrated.
⚠️ Especially `graph`: not passing it = keep the existing graph. (This tool once treated "no
graph" as replace-with-empty — renaming a storyline wiped its whole flow. Semantics are now
partial; to truly clear the graph, pass `{"nodes":[],"edges":[]}` explicitly.)
graph/Node/Exit/RuleAst structures: see create_storyline. Pass expected_version for optimistic
locking. Read the response to verify, then validate_storyline.Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"storyline_id": "<storyline_id>",
"agent_name": "<agent_name>",
"key": "<key>"
},
"name": "update_storyline"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| key | Yes | ||
| name | No | ||
| entry | No | ||
| graph | No | ||
| agent_name | Yes | ||
| allow_exit | No | ||
| is_default | No | ||
| concurrency | No | ||
| description | No | ||
| on_complete | No | ||
| display_name | No | ||
| show_profile | No | ||
| storyline_id | Yes | ||
| enroll_trigger | No | ||
| profile_schema | No | ||
| user_visibility | No | ||
| expected_version | No | ||
| next_storyline_id | No | ||
| allow_agent_enroll | No | ||
| learner_visibility | No |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| result | Yes |