Files
talemate/scenes/model-testing-harness/nodes/test-problem-solving.json
veguAI f5d41c04c8 0.37.0 (#267)
0.37.0

- **Director Planning** — Multi-step todo lists in director chat plus a Generate long progress action for multi-beat scene arcs.
- **Auto Narration** — Unified auto-narration replacing the old Narrate after Dialogue toggle, with a chance slider and weighted action mix.
- **LLM Prompt Templates Manager** — Dedicated UI tab for viewing, creating, editing, and deleting prompt templates.
- **Character Folders** — Collapsible folders in the World Editor character list, synced across linked scenes.
- **OpenAI Compatible TTS** — Connect any number of OpenAI-compatible TTS servers in parallel.
- **KoboldCpp TTS Auto-Setup** — KoboldCpp clients with a TTS model loaded register themselves as a TTS backend.
- **Model Testing Harness** — Bundled scene that runs basic capability tests against any connected LLM.

Plus 27 improvements and 28 bug fixes
2026-05-12 21:01:51 +03:00

1342 lines
39 KiB
JSON

{
"title": "Test Problem Solving",
"id": "fcc9d2df-1e19-4c23-9841-857fe4a8e782",
"properties": {},
"x": 0,
"y": 0,
"width": 200,
"height": 100,
"collapsed": false,
"inherited": false,
"registry": "model-tests/basics/testProblemSolving",
"nodes": {
"bc4094a5-5659-4fe9-8cdf-54aba755c4e6": {
"title": "Get Agent",
"id": "bc4094a5-5659-4fe9-8cdf-54aba755c4e6",
"properties": {
"agent_name": "director"
},
"x": -10,
"y": 1034,
"width": 210,
"height": 58,
"collapsed": false,
"inherited": false,
"registry": "agents/GetAgent",
"base_type": "core/Node"
},
"ce3eea10-92ba-4cb6-a35c-b36924c100ca": {
"title": "true",
"id": "ce3eea10-92ba-4cb6-a35c-b36924c100ca",
"properties": {
"value": true
},
"x": -10,
"y": 914,
"width": 210,
"height": 58,
"collapsed": false,
"inherited": false,
"registry": "core/MakeBool",
"base_type": "core/Node"
},
"66daf189-ba25-4d4f-a112-bba2ce5d520c": {
"title": "IN state",
"id": "66daf189-ba25-4d4f-a112-bba2ce5d520c",
"properties": {
"input_type": "any",
"input_name": "state",
"input_optional": false,
"input_group": "",
"num": 0
},
"x": -10,
"y": 684,
"width": 210,
"height": 154,
"collapsed": false,
"inherited": false,
"registry": "core/Input",
"base_type": "core/Node"
},
"cd6eca19-93bb-4269-8a5b-5c2eca33c481": {
"title": "OUT state",
"id": "cd6eca19-93bb-4269-8a5b-5c2eca33c481",
"properties": {
"output_type": "any",
"output_name": "state",
"num": 0
},
"x": 260,
"y": 684,
"width": 210,
"height": 106,
"collapsed": false,
"inherited": false,
"registry": "core/Output",
"base_type": "core/Node"
},
"8297d3e2-8397-484a-a3e8-6af6bd88c4f4": {
"title": "Make String",
"id": "8297d3e2-8397-484a-a3e8-6af6bd88c4f4",
"properties": {
"value": "summarizer"
},
"x": -270,
"y": 1214,
"width": 210,
"height": 58,
"collapsed": false,
"inherited": false,
"registry": "data/string/Make",
"base_type": "core/Node"
},
"ad0c804c-2770-4dd1-91b6-092580ef247f": {
"title": "Argument",
"id": "ad0c804c-2770-4dd1-91b6-092580ef247f",
"properties": {
"name": "exc",
"typ": "any"
},
"x": -268,
"y": 2798,
"width": 210,
"height": 82,
"collapsed": false,
"inherited": false,
"registry": "core/functions/Argument",
"base_type": "core/Node"
},
"2d23e3f3-8749-4f5b-9823-1c438c0706d7": {
"title": "DEF error_handler",
"id": "2d23e3f3-8749-4f5b-9823-1c438c0706d7",
"properties": {
"name": "error_handler"
},
"x": 502,
"y": 2798,
"width": 210,
"height": 78,
"collapsed": false,
"inherited": false,
"registry": "core/functions/DefineFunction",
"base_type": "core/Node"
},
"150970d2-59f9-4a81-91e0-3e15153aed64": {
"title": "Error Handler",
"id": "150970d2-59f9-4a81-91e0-3e15153aed64",
"properties": {},
"x": 1022,
"y": 2798,
"width": 140,
"height": 26,
"collapsed": false,
"inherited": false,
"registry": "core/ErrorHandler",
"base_type": "core/Node"
},
"ed18697d-2f22-4189-ab75-edd84c2bf1d8": {
"title": "FN error_handler",
"id": "ed18697d-2f22-4189-ab75-edd84c2bf1d8",
"properties": {
"name": "error_handler"
},
"x": 772,
"y": 2801,
"width": 210,
"height": 78,
"collapsed": false,
"inherited": false,
"registry": "core/functions/GetFunction",
"base_type": "core/Node"
},
"ed3f9350-656b-4889-8530-efe02e12a45b": {
"title": "Build Prompt",
"id": "ed3f9350-656b-4889-8530-efe02e12a45b",
"properties": {
"template_file": "base",
"scope": "common",
"instructions": "",
"reserved_tokens": 312,
"limit_max_tokens": 0,
"include_scene_intent": false,
"include_extra_context": true,
"include_memory_context": true,
"include_scene_context": true,
"include_character_context": false,
"include_gamestate_context": false,
"memory_prompt": "",
"prefill_prompt": "",
"return_prefill_prompt": false,
"dedupe_enabled": true,
"response_length": 0,
"technical": false
},
"x": 320,
"y": 914,
"width": 304,
"height": 542,
"collapsed": false,
"inherited": false,
"registry": "prompt/BuildPrompt",
"base_type": "core/Node"
},
"0407d440-8d85-4b38-b57e-506fec86b5ae": {
"title": "amount",
"id": "0407d440-8d85-4b38-b57e-506fec86b5ae",
"properties": {
"name": "amount",
"typ": "int",
"instructions": "The amount of item_type to put in the container:\n\nWhen item_type is a liquid the value represents a percentage: 1 = 1%, 50 = 50% etc.\n\nWhen item_type is a solid unit it represents the unit count."
},
"x": -1928,
"y": 1039,
"width": 210,
"height": 106,
"collapsed": false,
"inherited": false,
"registry": "focal/Argument",
"base_type": "core/Node"
},
"fafa2d35-68aa-4c9d-91c8-a86cec7e6fca": {
"title": "Dict Collector",
"id": "fafa2d35-68aa-4c9d-91c8-a86cec7e6fca",
"properties": {},
"x": -1527,
"y": 877,
"width": 140,
"height": 141,
"collapsed": false,
"inherited": false,
"registry": "data/DictCollector",
"dynamic_inputs": [
{
"name": "item0",
"type": "*"
},
{
"name": "item1",
"type": "*"
},
{
"name": "item2",
"type": "*"
},
{
"name": "item3",
"type": "*"
}
],
"base_type": "core/DynamicSocketNodeBase"
},
"72b1ef1a-ed10-447e-b98a-0d46a58e0a59": {
"title": "Get Agent",
"id": "72b1ef1a-ed10-447e-b98a-0d46a58e0a59",
"properties": {
"agent_name": "summarizer"
},
"x": -1498,
"y": 809,
"width": 210,
"height": 58,
"collapsed": true,
"inherited": false,
"registry": "agents/GetAgent",
"base_type": "core/Node"
},
"393dd1a7-d948-4712-8c02-0bc141b3f42c": {
"title": "container",
"id": "393dd1a7-d948-4712-8c02-0bc141b3f42c",
"properties": {
"name": "container",
"typ": "str",
"instructions": "Specifies the target container.\n\nCan be one of: \"bucket\", \"basket\", \"bowl\""
},
"x": -1928,
"y": 1209,
"width": 210,
"height": 106,
"collapsed": false,
"inherited": false,
"registry": "focal/Argument",
"base_type": "core/Node"
},
"9b28b248-1b45-4989-b572-d395ac4bb68e": {
"title": "Return",
"id": "9b28b248-1b45-4989-b572-d395ac4bb68e",
"properties": {},
"x": -1058,
"y": 839,
"width": 140,
"height": 26,
"collapsed": false,
"inherited": false,
"registry": "core/functions/Return",
"base_type": "core/Node"
},
"cc600421-2218-4e3b-b150-2c3f9ea32e76": {
"title": "item_type",
"id": "cc600421-2218-4e3b-b150-2c3f9ea32e76",
"properties": {
"name": "item_type",
"typ": "str",
"instructions": "Specifies the item type.\n\nCan be one of: \"apple\", \"orange\", \"water\", \"wine\", \"banana\", \"juice\""
},
"x": -1928,
"y": 869,
"width": 210,
"height": 106,
"collapsed": false,
"inherited": false,
"registry": "focal/Argument",
"base_type": "core/Node"
},
"cf53a471-5d2e-437a-bfea-8c9ae2796a5e": {
"title": "AI Function Callback Metadata",
"id": "cf53a471-5d2e-437a-bfea-8c9ae2796a5e",
"properties": {
"instructions": "Add a specific amount of a specific item into a specific container.",
"examples": [
{
"container": "bucket",
"item_type": "juice",
"amount": 25
},
{
"container": "basket",
"banana": 4
}
]
},
"x": -868,
"y": 839,
"width": 244,
"height": 82,
"collapsed": false,
"inherited": false,
"registry": "focal/Metadata",
"base_type": "core/Node"
},
"35b6e64e-87a6-437b-a57c-298056f6c802": {
"title": "DEF put_into_container",
"id": "35b6e64e-87a6-437b-a57c-298056f6c802",
"properties": {
"name": "put_into_container"
},
"x": -568,
"y": 839,
"width": 210,
"height": 78,
"collapsed": false,
"inherited": false,
"registry": "core/functions/DefineFunction",
"base_type": "core/Node"
},
"94f487bc-5edb-4fc2-a545-7a7603e7cdca": {
"title": "FN put_into_container",
"id": "94f487bc-5edb-4fc2-a545-7a7603e7cdca",
"properties": {
"name": "put_into_container"
},
"x": -262,
"y": 1785,
"width": 210,
"height": 78,
"collapsed": false,
"inherited": false,
"registry": "core/functions/GetFunction",
"base_type": "core/Node"
},
"0428e58b-ab17-4c10-bc34-f69fc7be41da": {
"title": "Dict Collector",
"id": "0428e58b-ab17-4c10-bc34-f69fc7be41da",
"properties": {},
"x": -1517,
"y": 1616,
"width": 140,
"height": 141,
"collapsed": false,
"inherited": false,
"registry": "data/DictCollector",
"dynamic_inputs": [
{
"name": "item0",
"type": "*"
},
{
"name": "item1",
"type": "*"
},
{
"name": "item2",
"type": "*"
},
{
"name": "item3",
"type": "*"
}
],
"base_type": "core/DynamicSocketNodeBase"
},
"3cfd423f-e9e3-46ef-b764-14ed2c14a140": {
"title": "Get Agent",
"id": "3cfd423f-e9e3-46ef-b764-14ed2c14a140",
"properties": {
"agent_name": "summarizer"
},
"x": -1487,
"y": 1548,
"width": 210,
"height": 58,
"collapsed": true,
"inherited": false,
"registry": "agents/GetAgent",
"base_type": "core/Node"
},
"a16514b1-de0a-4ad9-a0df-72156ea4fa0b": {
"title": "Return",
"id": "a16514b1-de0a-4ad9-a0df-72156ea4fa0b",
"properties": {},
"x": -1047,
"y": 1578,
"width": 140,
"height": 26,
"collapsed": false,
"inherited": false,
"registry": "core/functions/Return",
"base_type": "core/Node"
},
"b6daccdc-d152-4f27-9118-9028cfaf1f55": {
"title": "AI Function Callback Metadata",
"id": "b6daccdc-d152-4f27-9118-9028cfaf1f55",
"properties": {
"instructions": "Remove a specific amount of a specific item from a specific container.",
"examples": [
{
"container": "bucket",
"item_type": "water",
"amount": 100
},
{
"container": "bowl",
"apple": 4
}
]
},
"x": -857,
"y": 1578,
"width": 244,
"height": 82,
"collapsed": false,
"inherited": false,
"registry": "focal/Metadata",
"base_type": "core/Node"
},
"4cc57619-5d91-4ae2-b8c1-9635e4e6bca3": {
"title": "item_type",
"id": "4cc57619-5d91-4ae2-b8c1-9635e4e6bca3",
"properties": {
"name": "item_type",
"typ": "str",
"instructions": "Specifies the item type.\n\nCan be one of: \"apple\", \"orange\", \"water\", \"wine\", \"banana\", \"juice\""
},
"x": -1917,
"y": 1608,
"width": 210,
"height": 106,
"collapsed": false,
"inherited": false,
"registry": "focal/Argument",
"base_type": "core/Node"
},
"6c2bd63c-f9ba-43b5-a76c-d058e85af592": {
"title": "amount",
"id": "6c2bd63c-f9ba-43b5-a76c-d058e85af592",
"properties": {
"name": "amount",
"typ": "int",
"instructions": "The amount of item_type to take out of the container:\n\nWhen item_type is a liquid the value represents a percentage: 1 = 1%, 50 = 50% etc.\n\nWhen item_type is a solid unit it represents the unit count."
},
"x": -1917,
"y": 1778,
"width": 210,
"height": 106,
"collapsed": false,
"inherited": false,
"registry": "focal/Argument",
"base_type": "core/Node"
},
"e05ba946-3874-4065-b0f9-9bdb49ce4abb": {
"title": "container",
"id": "e05ba946-3874-4065-b0f9-9bdb49ce4abb",
"properties": {
"name": "container",
"typ": "str",
"instructions": "Specifies the target container.\n\nCan be one of: \"bucket\", \"basket\", \"bowl\""
},
"x": -1917,
"y": 1948,
"width": 210,
"height": 106,
"collapsed": false,
"inherited": false,
"registry": "focal/Argument",
"base_type": "core/Node"
},
"6f1e0ed5-ac32-4887-9403-c251fa2150bb": {
"title": "DEF remove_from_container",
"id": "6f1e0ed5-ac32-4887-9403-c251fa2150bb",
"properties": {
"name": "remove_from_container"
},
"x": -558,
"y": 1579,
"width": 210,
"height": 78,
"collapsed": false,
"inherited": false,
"registry": "core/functions/DefineFunction",
"base_type": "core/Node"
},
"6d7b2945-199c-4630-a694-38ae01c9eb38": {
"title": "FN remove_from_container",
"id": "6d7b2945-199c-4630-a694-38ae01c9eb38",
"properties": {
"name": "remove_from_container"
},
"x": -262,
"y": 1985,
"width": 210,
"height": 78,
"collapsed": false,
"inherited": false,
"registry": "core/functions/GetFunction",
"base_type": "core/Node"
},
"c0eecf41-84cf-440a-9d02-54f032183aa1": {
"title": "Get Agent",
"id": "c0eecf41-84cf-440a-9d02-54f032183aa1",
"properties": {
"agent_name": "summarizer"
},
"x": -1495,
"y": 2287,
"width": 210,
"height": 58,
"collapsed": true,
"inherited": false,
"registry": "agents/GetAgent",
"base_type": "core/Node"
},
"7a5bb435-6885-4cea-a6b8-e3cf31f5d7a4": {
"title": "Return",
"id": "7a5bb435-6885-4cea-a6b8-e3cf31f5d7a4",
"properties": {},
"x": -1055,
"y": 2317,
"width": 140,
"height": 26,
"collapsed": false,
"inherited": false,
"registry": "core/functions/Return",
"base_type": "core/Node"
},
"79dd02de-37db-4815-b002-992450eab3b0": {
"title": "container",
"id": "79dd02de-37db-4815-b002-992450eab3b0",
"properties": {
"name": "container",
"typ": "str",
"instructions": "Specifies the target container.\n\nCan be one of: \"bucket\", \"basket\", \"bowl\""
},
"x": -1918,
"y": 2419,
"width": 210,
"height": 106,
"collapsed": false,
"inherited": false,
"registry": "focal/Argument",
"base_type": "core/Node"
},
"ced7384c-5f0e-48aa-9df7-34664fcc9620": {
"title": "Dict Collector",
"id": "ced7384c-5f0e-48aa-9df7-34664fcc9620",
"properties": {},
"x": -1528,
"y": 2359,
"width": 140,
"height": 101,
"collapsed": false,
"inherited": false,
"registry": "data/DictCollector",
"dynamic_inputs": [
{
"name": "item0",
"type": "*"
},
{
"name": "item1",
"type": "*"
}
],
"base_type": "core/DynamicSocketNodeBase"
},
"ebd74f28-76e4-49ac-8e6a-371d0ec5106c": {
"title": "Scoped API Function",
"id": "ebd74f28-76e4-49ac-8e6a-371d0ec5106c",
"properties": {
"code": "containers = arguments[\"containers\"]\ncontainer_name = arguments[\"container\"]\ncontainers[container_name] = {}\nresult[\"container_name\"] = container_name"
},
"x": -1315,
"y": 2307,
"width": 210,
"height": 98,
"collapsed": false,
"inherited": false,
"registry": "core/functions/ScopedAPIFunction",
"base_type": "core/Node"
},
"8920dd2b-8af9-4455-8211-a7dff06fdb7b": {
"title": "AI Function Callback Metadata",
"id": "8920dd2b-8af9-4455-8211-a7dff06fdb7b",
"properties": {
"instructions": "Empty a specific container.",
"examples": [
{
"container": "basket"
}
]
},
"x": -865,
"y": 2317,
"width": 244,
"height": 82,
"collapsed": false,
"inherited": false,
"registry": "focal/Metadata",
"base_type": "core/Node"
},
"78d8ceb8-ca55-496e-9f19-e700d329451b": {
"title": "DEF empty_container",
"id": "78d8ceb8-ca55-496e-9f19-e700d329451b",
"properties": {
"name": "empty_container"
},
"x": -568,
"y": 2319,
"width": 210,
"height": 78,
"collapsed": false,
"inherited": false,
"registry": "core/functions/DefineFunction",
"base_type": "core/Node"
},
"d19ce849-7bcf-4895-beb9-5f3c222f1525": {
"title": "List Collector",
"id": "d19ce849-7bcf-4895-beb9-5f3c222f1525",
"properties": {},
"x": 498,
"y": 1945,
"width": 140,
"height": 121,
"collapsed": false,
"inherited": false,
"registry": "data/ListCollector",
"dynamic_inputs": [
{
"name": "item0",
"type": "*"
},
{
"name": "item1",
"type": "*"
},
{
"name": "item2",
"type": "*"
}
],
"base_type": "core/DynamicSocketNodeBase"
},
"d5bfbc8a-7926-4373-afde-7d1c90855c63": {
"title": "FN empty_container",
"id": "d5bfbc8a-7926-4373-afde-7d1c90855c63",
"properties": {
"name": "empty_container"
},
"x": -262,
"y": 2205,
"width": 210,
"height": 78,
"collapsed": false,
"inherited": false,
"registry": "core/functions/GetFunction",
"base_type": "core/Node"
},
"92af7a74-be28-4407-b8ab-34eaacd4722d": {
"title": "AI Function Calling",
"id": "92af7a74-be28-4407-b8ab-34eaacd4722d",
"properties": {
"template": null,
"max_calls": 10,
"retries": 0,
"response_length": 1024,
"max_concurrent": 3
},
"x": 810,
"y": 1594,
"width": 228,
"height": 274,
"collapsed": false,
"inherited": false,
"registry": "focal/Focal",
"base_type": "core/Node"
},
"faf951af-e4a6-4460-8d8e-e78dfb5c574e": {
"title": "SET local.calls",
"id": "faf951af-e4a6-4460-8d8e-e78dfb5c574e",
"properties": {
"name": "calls",
"scope": "local"
},
"x": 1118,
"y": 1615,
"width": 210,
"height": 122,
"collapsed": false,
"inherited": false,
"registry": "state/SetState",
"base_type": "core/Node"
},
"9e54a4e8-b72d-492d-bdab-e6da4c8bda6b": {
"title": "Stage 1",
"id": "9e54a4e8-b72d-492d-bdab-e6da4c8bda6b",
"properties": {
"stage": 1
},
"x": 1408,
"y": 1615,
"width": 210,
"height": 118,
"collapsed": false,
"inherited": false,
"registry": "core/Stage",
"base_type": "core/Node"
},
"baba2d63-74f2-4fd4-8b66-4bf7676c1793": {
"title": "Stage 0",
"id": "baba2d63-74f2-4fd4-8b66-4bf7676c1793",
"properties": {
"stage": 0
},
"x": 299,
"y": 433,
"width": 210,
"height": 118,
"collapsed": false,
"inherited": false,
"registry": "core/Stage",
"base_type": "core/Node"
},
"bbad84d4-507e-4363-b244-2d63ea653c28": {
"title": "AI Function Callback",
"id": "bbad84d4-507e-4363-b244-2d63ea653c28",
"properties": {
"name": "my_function",
"allow_multiple_calls": true,
"allow_concurrent": false
},
"x": 28,
"y": 2195,
"width": 210,
"height": 126,
"collapsed": false,
"inherited": false,
"registry": "focal/Callback",
"base_type": "core/Node"
},
"7c0c2aca-bf5e-4e5f-9a13-a0b817c23eeb": {
"title": "AI Function Callback",
"id": "7c0c2aca-bf5e-4e5f-9a13-a0b817c23eeb",
"properties": {
"name": "my_function",
"allow_multiple_calls": true,
"allow_concurrent": false
},
"x": 18,
"y": 1985,
"width": 210,
"height": 126,
"collapsed": false,
"inherited": false,
"registry": "focal/Callback",
"base_type": "core/Node"
},
"d14c1137-81b3-4ce9-8a46-cc4f42eb0209": {
"title": "AI Function Callback",
"id": "d14c1137-81b3-4ce9-8a46-cc4f42eb0209",
"properties": {
"name": "my_function",
"allow_multiple_calls": true,
"allow_concurrent": false
},
"x": 8,
"y": 1785,
"width": 210,
"height": 126,
"collapsed": false,
"inherited": false,
"registry": "focal/Callback",
"base_type": "core/Node"
},
"a15ff44a-bbaf-4e0f-af63-d5f48e0f34b3": {
"title": "containers",
"id": "a15ff44a-bbaf-4e0f-af63-d5f48e0f34b3",
"properties": {},
"x": 32,
"y": 2444,
"width": 140,
"height": 26,
"collapsed": false,
"inherited": false,
"registry": "core/Watch",
"base_type": "core/Node"
},
"ae65b60b-ecb2-4bdd-a555-77249b12db3b": {
"title": "Dict Collector",
"id": "ae65b60b-ecb2-4bdd-a555-77249b12db3b",
"properties": {},
"x": 42,
"y": 2614,
"width": 140,
"height": 81,
"collapsed": false,
"inherited": false,
"registry": "data/DictCollector",
"dynamic_inputs": [
{
"name": "item0",
"type": "*"
}
],
"base_type": "core/DynamicSocketNodeBase"
},
"272e6d0a-26c1-46e9-ad4c-b92038b6dc78": {
"title": "Get Agent",
"id": "272e6d0a-26c1-46e9-ad4c-b92038b6dc78",
"properties": {
"agent_name": "summarizer"
},
"x": 42,
"y": 2554,
"width": 210,
"height": 58,
"collapsed": true,
"inherited": false,
"registry": "agents/GetAgent",
"base_type": "core/Node"
},
"4b4d93c6-0a49-4e5c-b04f-ee6ed99fe7d0": {
"title": "Get",
"id": "4b4d93c6-0a49-4e5c-b04f-ee6ed99fe7d0",
"properties": {
"attribute": "success"
},
"x": 552,
"y": 2534,
"width": 210,
"height": 98,
"collapsed": false,
"inherited": false,
"registry": "data/Get",
"base_type": "core/Node"
},
"cdac4a3b-beb5-4b66-a279-6296034f7e97": {
"title": "Scoped API Function",
"id": "cdac4a3b-beb5-4b66-a279-6296034f7e97",
"properties": {
"code": "containers = arguments[\"containers\"]\nitem_type = arguments[\"item_type\"]\namount = arguments[\"amount\"]\ncontainer_name = arguments[\"container\"]\n\nif container_name not in containers:\n containers[container_name] = {}\n\ncontainer = containers[container_name]\n\nif item_type not in container:\n container[item_type] = 0\n\ncontainer[item_type] = container[item_type] - amount\n\nif container[item_type] < 0:\n container[item_type] = 0\n\nresult[\"item_type\"] = item_type\nresult[\"container_name\"] = container_name\nresult[\"amount\"] = amount"
},
"x": -1307,
"y": 1568,
"width": 210,
"height": 98,
"collapsed": false,
"inherited": false,
"registry": "core/functions/ScopedAPIFunction",
"base_type": "core/Node"
},
"05e7aec4-c6ac-48a2-88fb-0c3594fd01da": {
"title": "Scoped API Function",
"id": "05e7aec4-c6ac-48a2-88fb-0c3594fd01da",
"properties": {
"code": "containers = arguments[\"containers\"]\nitem_type = arguments[\"item_type\"]\namount = arguments[\"amount\"]\ncontainer_name = arguments[\"container\"]\n\nif container_name not in containers:\n containers[container_name] = {}\n\ncontainer = containers[container_name]\n\nif item_type not in container:\n container[item_type] = 0\n\ncontainer[item_type] = container[item_type] + amount\n\nresult[\"item_type\"] = item_type\nresult[\"container_name\"] = container_name\nresult[\"amount\"] = amount"
},
"x": -1318,
"y": 829,
"width": 210,
"height": 98,
"collapsed": false,
"inherited": false,
"registry": "core/functions/ScopedAPIFunction",
"base_type": "core/Node"
},
"d54e6e1f-ea0b-40f0-b522-c3d8e83e1063": {
"title": "Stage 2",
"id": "d54e6e1f-ea0b-40f0-b522-c3d8e83e1063",
"properties": {
"stage": 2
},
"x": 1130,
"y": 2410,
"width": 210,
"height": 118,
"collapsed": false,
"inherited": false,
"registry": "core/Stage",
"base_type": "core/Node"
},
"87b5e297-d2b2-4d03-a584-2b865225a816": {
"title": "Output Socket",
"id": "87b5e297-d2b2-4d03-a584-2b865225a816",
"properties": {
"output_type": "bool",
"output_name": "success",
"num": 0
},
"x": 1130,
"y": 2580,
"width": 210,
"height": 106,
"collapsed": false,
"inherited": false,
"registry": "core/Output",
"base_type": "core/Node"
},
"68adccc8-bf7c-461c-a6fd-51007c0a27f4": {
"title": "Emit Test Result",
"id": "68adccc8-bf7c-461c-a6fd-51007c0a27f4",
"properties": {
"message_title": "Problem Solving",
"message": "Tests whether the model can do basic problem solving and data manipulation through functions."
},
"x": 872,
"y": 2504,
"width": 210,
"height": 142,
"collapsed": false,
"inherited": false,
"registry": "model-tests/emitTestResult",
"base_type": "core/Graph"
},
"a85e0c4b-f149-47e6-bdd4-e19c0cf36fcd": {
"title": "Make Bool",
"id": "a85e0c4b-f149-47e6-bdd4-e19c0cf36fcd",
"properties": {
"value": false
},
"x": -8,
"y": 2898,
"width": 210,
"height": 58,
"collapsed": false,
"inherited": false,
"registry": "core/MakeBool",
"base_type": "core/Node"
},
"f1f25d2a-9d33-4d0e-8d79-5a9efe32aac4": {
"title": "Emit Test Result",
"id": "f1f25d2a-9d33-4d0e-8d79-5a9efe32aac4",
"properties": {
"message_title": "Problem Solving",
"message": "Tests whether the model can do basic problem solving and data manipulation through functions."
},
"x": 250,
"y": 2800,
"width": 210,
"height": 142,
"collapsed": false,
"inherited": false,
"registry": "model-tests/emitTestResult",
"base_type": "core/Graph"
},
"3e4a1fff-5322-45cc-a870-ff85d295530a": {
"title": "Jinja2 Format",
"id": "3e4a1fff-5322-45cc-a870-ff85d295530a",
"properties": {
"template": "Use the functions available to manipulate the container contents so they match the desired state.\n\n### Starting State\n\nBucket: 75% water, 25% juice\nBasket: 5 Bananas\nBowl: Empty\n\n### Desired State\n\nBucket: 50% water, 50% wine\nBasket: 1 orange, 1 banana, 1 apple\nBowl: Empty"
},
"x": 10,
"y": 1204,
"width": 210,
"height": 133,
"collapsed": false,
"inherited": false,
"registry": "prompt/Jinja2Format",
"dynamic_inputs": [],
"base_type": "core/DynamicSocketNodeBase"
},
"41b302f7-2da7-4522-9335-aa50cec1871a": {
"title": "Make Dict",
"id": "41b302f7-2da7-4522-9335-aa50cec1871a",
"properties": {
"data": {
"bucket": {
"water": 75,
"juice": 25
},
"basket": {
"banana": 5
},
"bowl": {}
}
},
"x": -263,
"y": 433,
"width": 210,
"height": 58,
"collapsed": false,
"inherited": false,
"registry": "data/MakeDict",
"base_type": "core/Node"
},
"ec18ab5a-20a8-40b2-9dba-06f00257a1cb": {
"title": "Scoped API Function",
"id": "ec18ab5a-20a8-40b2-9dba-06f00257a1cb",
"properties": {
"code": "# Bucket: 50% water, 50% wine\n# Basket: 1 orange, 1 banana, 1 apple\n# Bowl: Empty\ncontainers = arguments[\"containers\"]\n# path 1: LLM decided to remove juice from the bucket explicitly\nexpected_path_1 = {\n \"basket\": {\"orange\": 1, \"apple\": 1, \"banana\": 1},\n \"bucket\": {\"wine\": 50, \"water\": 50, \"juice\": 0},\n \"bowl\": {}\n}\n# path 2: LLM decided to empty the bucket entirely\nexpected_path_2 = {\n \"basket\": {\"orange\": 1, \"apple\": 1, \"banana\": 1},\n \"bucket\": {\"wine\": 50, \"water\": 50},\n \"bowl\": {}\n}\nresult[\"success\"] = (containers == expected_path_1) or (containers == expected_path_2)"
},
"x": 272,
"y": 2544,
"width": 210,
"height": 98,
"collapsed": false,
"inherited": false,
"registry": "core/functions/ScopedAPIFunction",
"base_type": "core/Node"
},
"ceb94fcf-c4f1-497d-84d0-35ea55c9cde6": {
"title": "GET parent.containers",
"id": "ceb94fcf-c4f1-497d-84d0-35ea55c9cde6",
"properties": {
"name": "containers",
"scope": "parent"
},
"x": -1920,
"y": 2160,
"width": 210,
"height": 122,
"collapsed": false,
"inherited": false,
"registry": "state/GetState",
"base_type": "core/Node"
},
"fa8559af-5988-4f3b-9dcc-8b15f01c605e": {
"title": "GET parent.containers",
"id": "fa8559af-5988-4f3b-9dcc-8b15f01c605e",
"properties": {
"name": "containers",
"scope": "parent"
},
"x": -1920,
"y": 1420,
"width": 210,
"height": 122,
"collapsed": false,
"inherited": false,
"registry": "state/GetState",
"base_type": "core/Node"
},
"e68f375f-8cf1-42d5-83f3-c3fb9edaa7ce": {
"title": "GET parent.containers",
"id": "e68f375f-8cf1-42d5-83f3-c3fb9edaa7ce",
"properties": {
"name": "containers",
"scope": "parent"
},
"x": -1930,
"y": 680,
"width": 210,
"height": 122,
"collapsed": false,
"inherited": false,
"registry": "state/GetState",
"base_type": "core/Node"
},
"2ae13bfe-9b7e-4ded-8736-da62c2005040": {
"title": "SET local.containers",
"id": "2ae13bfe-9b7e-4ded-8736-da62c2005040",
"properties": {
"name": "containers",
"scope": "local"
},
"x": 20,
"y": 430,
"width": 210,
"height": 122,
"collapsed": false,
"inherited": false,
"registry": "state/SetState",
"base_type": "core/Node"
},
"0fbf21fe-c638-42fb-978d-ffd6d471282a": {
"title": "GET local.containers",
"id": "0fbf21fe-c638-42fb-978d-ffd6d471282a",
"properties": {
"name": "containers",
"scope": "local"
},
"x": -270,
"y": 2420,
"width": 210,
"height": 122,
"collapsed": false,
"inherited": false,
"registry": "state/GetState",
"base_type": "core/Node"
}
},
"edges": {
"bc4094a5-5659-4fe9-8cdf-54aba755c4e6.agent": [
"ed3f9350-656b-4889-8530-efe02e12a45b.agent"
],
"ce3eea10-92ba-4cb6-a35c-b36924c100ca.value": [
"ed3f9350-656b-4889-8530-efe02e12a45b.state"
],
"66daf189-ba25-4d4f-a112-bba2ce5d520c.value": [
"cd6eca19-93bb-4269-8a5b-5c2eca33c481.value"
],
"8297d3e2-8397-484a-a3e8-6af6bd88c4f4.value": [
"3e4a1fff-5322-45cc-a870-ff85d295530a.scope"
],
"ad0c804c-2770-4dd1-91b6-092580ef247f.value": [
"f1f25d2a-9d33-4d0e-8d79-5a9efe32aac4.state"
],
"ed18697d-2f22-4189-ab75-edd84c2bf1d8.fn": [
"150970d2-59f9-4a81-91e0-3e15153aed64.fn"
],
"ed3f9350-656b-4889-8530-efe02e12a45b.state": [
"92af7a74-be28-4407-b8ab-34eaacd4722d.state"
],
"ed3f9350-656b-4889-8530-efe02e12a45b.agent": [
"92af7a74-be28-4407-b8ab-34eaacd4722d.agent"
],
"ed3f9350-656b-4889-8530-efe02e12a45b.prompt": [
"92af7a74-be28-4407-b8ab-34eaacd4722d.prompt"
],
"0407d440-8d85-4b38-b57e-506fec86b5ae.value": [
"fafa2d35-68aa-4c9d-91c8-a86cec7e6fca.item2"
],
"fafa2d35-68aa-4c9d-91c8-a86cec7e6fca.dict": [
"05e7aec4-c6ac-48a2-88fb-0c3594fd01da.arguments"
],
"72b1ef1a-ed10-447e-b98a-0d46a58e0a59.agent": [
"05e7aec4-c6ac-48a2-88fb-0c3594fd01da.state",
"05e7aec4-c6ac-48a2-88fb-0c3594fd01da.agent"
],
"393dd1a7-d948-4712-8c02-0bc141b3f42c.value": [
"fafa2d35-68aa-4c9d-91c8-a86cec7e6fca.item3"
],
"9b28b248-1b45-4989-b572-d395ac4bb68e.value": [
"cf53a471-5d2e-437a-bfea-8c9ae2796a5e.state"
],
"cc600421-2218-4e3b-b150-2c3f9ea32e76.value": [
"fafa2d35-68aa-4c9d-91c8-a86cec7e6fca.item1"
],
"cf53a471-5d2e-437a-bfea-8c9ae2796a5e.state": [
"35b6e64e-87a6-437b-a57c-298056f6c802.nodes"
],
"94f487bc-5edb-4fc2-a545-7a7603e7cdca.fn": [
"d14c1137-81b3-4ce9-8a46-cc4f42eb0209.fn"
],
"94f487bc-5edb-4fc2-a545-7a7603e7cdca.name": [
"d14c1137-81b3-4ce9-8a46-cc4f42eb0209.name"
],
"0428e58b-ab17-4c10-bc34-f69fc7be41da.dict": [
"cdac4a3b-beb5-4b66-a279-6296034f7e97.arguments"
],
"3cfd423f-e9e3-46ef-b764-14ed2c14a140.agent": [
"cdac4a3b-beb5-4b66-a279-6296034f7e97.state",
"cdac4a3b-beb5-4b66-a279-6296034f7e97.agent"
],
"a16514b1-de0a-4ad9-a0df-72156ea4fa0b.value": [
"b6daccdc-d152-4f27-9118-9028cfaf1f55.state"
],
"b6daccdc-d152-4f27-9118-9028cfaf1f55.state": [
"6f1e0ed5-ac32-4887-9403-c251fa2150bb.nodes"
],
"4cc57619-5d91-4ae2-b8c1-9635e4e6bca3.value": [
"0428e58b-ab17-4c10-bc34-f69fc7be41da.item1"
],
"6c2bd63c-f9ba-43b5-a76c-d058e85af592.value": [
"0428e58b-ab17-4c10-bc34-f69fc7be41da.item2"
],
"e05ba946-3874-4065-b0f9-9bdb49ce4abb.value": [
"0428e58b-ab17-4c10-bc34-f69fc7be41da.item3"
],
"6d7b2945-199c-4630-a694-38ae01c9eb38.fn": [
"7c0c2aca-bf5e-4e5f-9a13-a0b817c23eeb.fn"
],
"6d7b2945-199c-4630-a694-38ae01c9eb38.name": [
"7c0c2aca-bf5e-4e5f-9a13-a0b817c23eeb.name"
],
"c0eecf41-84cf-440a-9d02-54f032183aa1.agent": [
"ebd74f28-76e4-49ac-8e6a-371d0ec5106c.state",
"ebd74f28-76e4-49ac-8e6a-371d0ec5106c.agent"
],
"7a5bb435-6885-4cea-a6b8-e3cf31f5d7a4.value": [
"8920dd2b-8af9-4455-8211-a7dff06fdb7b.state"
],
"79dd02de-37db-4815-b002-992450eab3b0.value": [
"ced7384c-5f0e-48aa-9df7-34664fcc9620.item1"
],
"ced7384c-5f0e-48aa-9df7-34664fcc9620.dict": [
"ebd74f28-76e4-49ac-8e6a-371d0ec5106c.arguments"
],
"ebd74f28-76e4-49ac-8e6a-371d0ec5106c.result": [
"7a5bb435-6885-4cea-a6b8-e3cf31f5d7a4.value"
],
"8920dd2b-8af9-4455-8211-a7dff06fdb7b.state": [
"78d8ceb8-ca55-496e-9f19-e700d329451b.nodes"
],
"d19ce849-7bcf-4895-beb9-5f3c222f1525.list": [
"92af7a74-be28-4407-b8ab-34eaacd4722d.callbacks"
],
"d5bfbc8a-7926-4373-afde-7d1c90855c63.fn": [
"bbad84d4-507e-4363-b244-2d63ea653c28.fn"
],
"d5bfbc8a-7926-4373-afde-7d1c90855c63.name": [
"bbad84d4-507e-4363-b244-2d63ea653c28.name"
],
"92af7a74-be28-4407-b8ab-34eaacd4722d.calls": [
"faf951af-e4a6-4460-8d8e-e78dfb5c574e.value"
],
"faf951af-e4a6-4460-8d8e-e78dfb5c574e.value": [
"9e54a4e8-b72d-492d-bdab-e6da4c8bda6b.state"
],
"bbad84d4-507e-4363-b244-2d63ea653c28.callback": [
"d19ce849-7bcf-4895-beb9-5f3c222f1525.item2"
],
"7c0c2aca-bf5e-4e5f-9a13-a0b817c23eeb.callback": [
"d19ce849-7bcf-4895-beb9-5f3c222f1525.item1"
],
"d14c1137-81b3-4ce9-8a46-cc4f42eb0209.callback": [
"d19ce849-7bcf-4895-beb9-5f3c222f1525.item0"
],
"a15ff44a-bbaf-4e0f-af63-d5f48e0f34b3.value": [
"ec18ab5a-20a8-40b2-9dba-06f00257a1cb.state"
],
"ae65b60b-ecb2-4bdd-a555-77249b12db3b.dict": [
"ec18ab5a-20a8-40b2-9dba-06f00257a1cb.arguments"
],
"272e6d0a-26c1-46e9-ad4c-b92038b6dc78.agent": [
"ec18ab5a-20a8-40b2-9dba-06f00257a1cb.agent"
],
"4b4d93c6-0a49-4e5c-b04f-ee6ed99fe7d0.value": [
"68adccc8-bf7c-461c-a6fd-51007c0a27f4.state",
"68adccc8-bf7c-461c-a6fd-51007c0a27f4.success"
],
"cdac4a3b-beb5-4b66-a279-6296034f7e97.result": [
"a16514b1-de0a-4ad9-a0df-72156ea4fa0b.value"
],
"05e7aec4-c6ac-48a2-88fb-0c3594fd01da.result": [
"9b28b248-1b45-4989-b572-d395ac4bb68e.value"
],
"68adccc8-bf7c-461c-a6fd-51007c0a27f4.state": [
"d54e6e1f-ea0b-40f0-b522-c3d8e83e1063.state"
],
"68adccc8-bf7c-461c-a6fd-51007c0a27f4.success": [
"87b5e297-d2b2-4d03-a584-2b865225a816.value"
],
"a85e0c4b-f149-47e6-bdd4-e19c0cf36fcd.value": [
"f1f25d2a-9d33-4d0e-8d79-5a9efe32aac4.success"
],
"f1f25d2a-9d33-4d0e-8d79-5a9efe32aac4.state": [
"2d23e3f3-8749-4f5b-9823-1c438c0706d7.nodes"
],
"3e4a1fff-5322-45cc-a870-ff85d295530a.result": [
"ed3f9350-656b-4889-8530-efe02e12a45b.instructions"
],
"41b302f7-2da7-4522-9335-aa50cec1871a.dict": [
"2ae13bfe-9b7e-4ded-8736-da62c2005040.value"
],
"ec18ab5a-20a8-40b2-9dba-06f00257a1cb.result": [
"4b4d93c6-0a49-4e5c-b04f-ee6ed99fe7d0.object"
],
"ceb94fcf-c4f1-497d-84d0-35ea55c9cde6.value": [
"ced7384c-5f0e-48aa-9df7-34664fcc9620.item0"
],
"fa8559af-5988-4f3b-9dcc-8b15f01c605e.value": [
"0428e58b-ab17-4c10-bc34-f69fc7be41da.item0"
],
"e68f375f-8cf1-42d5-83f3-c3fb9edaa7ce.value": [
"fafa2d35-68aa-4c9d-91c8-a86cec7e6fca.item0"
],
"2ae13bfe-9b7e-4ded-8736-da62c2005040.value": [
"baba2d63-74f2-4fd4-8b66-4bf7676c1793.state"
],
"0fbf21fe-c638-42fb-978d-ffd6d471282a.value": [
"a15ff44a-bbaf-4e0f-af63-d5f48e0f34b3.value",
"ae65b60b-ecb2-4bdd-a555-77249b12db3b.item0"
]
},
"groups": [
{
"title": "Process",
"x": -295,
"y": 604,
"width": 1937,
"height": 1741,
"color": "#3f789e",
"font_size": 24,
"inherited": false
},
{
"title": "Error Handling",
"x": -293,
"y": 2722,
"width": 1480,
"height": 258,
"color": "#A88",
"font_size": 24,
"inherited": false
},
{
"title": "Function",
"x": -1953,
"y": 604,
"width": 1630,
"height": 1946,
"color": "#b06634",
"font_size": 24,
"inherited": false
},
{
"title": "Validation",
"x": -293,
"y": 2348,
"width": 1670,
"height": 371,
"color": "#b58b2a",
"font_size": 24,
"inherited": false
},
{
"title": "Prepare",
"x": -288,
"y": 358,
"width": 822,
"height": 222,
"color": "#8AA",
"font_size": 24,
"inherited": false
}
],
"comments": [],
"extends": null,
"base_type": "core/Graph",
"inputs": [],
"outputs": [],
"module_properties": {},
"style": null
}