You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

trip_planner.json 26KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685
  1. {
  2. "id": 14,
  3. "title": "Trip Planner",
  4. "description": "This smart trip planner utilizes LLM technology to automatically generate customized travel itineraries, with optional tool integration for enhanced reliability.",
  5. "canvas_type": "Consumer App",
  6. "dsl": {
  7. "components": {
  8. "Agent:OddGuestsPump": {
  9. "downstream": [
  10. "Agent:RichTermsCamp"
  11. ],
  12. "obj": {
  13. "component_name": "Agent",
  14. "params": {
  15. "delay_after_error": 1,
  16. "description": "",
  17. "exception_comment": "",
  18. "exception_default_value": "",
  19. "exception_goto": [],
  20. "exception_method": null,
  21. "frequencyPenaltyEnabled": false,
  22. "frequency_penalty": 0.7,
  23. "llm_id": "deepseek-chat@DeepSeek",
  24. "maxTokensEnabled": false,
  25. "max_retries": 3,
  26. "max_rounds": 5,
  27. "max_tokens": 256,
  28. "mcp": [],
  29. "message_history_window_size": 12,
  30. "outputs": {
  31. "content": {
  32. "type": "string",
  33. "value": ""
  34. }
  35. },
  36. "presencePenaltyEnabled": false,
  37. "presence_penalty": 0.4,
  38. "prompts": [
  39. {
  40. "content": "User's query:\n{sys.query}",
  41. "role": "user"
  42. }
  43. ],
  44. "sys_prompt": "Role: Professional tour guide: Create detailed travel plans per user needs.​\nFirst, specify departure location, destination, and travel duration (for subsequent agents to retrieve).​\nDevelop the plan using tools to get real-time weather, holidays, attraction hours, traffic, etc. Adjust itinerary accordingly (e.g., reschedule outdoor activities on rainy days) to ensure practicality, efficiency, and alignment with user preferences.​\nFor real-time info retrieval, only output tool-returned content and pass it to subsequent agents; never rely on your own knowledge base.​\n",
  45. "temperature": 0.1,
  46. "temperatureEnabled": true,
  47. "tools": [],
  48. "topPEnabled": false,
  49. "top_p": 0.3,
  50. "user_prompt": "",
  51. "visual_files_var": ""
  52. }
  53. },
  54. "upstream": [
  55. "begin"
  56. ]
  57. },
  58. "Agent:RichTermsCamp": {
  59. "downstream": [
  60. "Agent:WeakCarrotsTan"
  61. ],
  62. "obj": {
  63. "component_name": "Agent",
  64. "params": {
  65. "delay_after_error": 1,
  66. "description": "",
  67. "exception_comment": "",
  68. "exception_default_value": "",
  69. "exception_goto": [],
  70. "exception_method": null,
  71. "frequencyPenaltyEnabled": false,
  72. "frequency_penalty": 0.7,
  73. "llm_id": "deepseek-chat@DeepSeek",
  74. "maxTokensEnabled": false,
  75. "max_retries": 3,
  76. "max_rounds": 5,
  77. "max_tokens": 256,
  78. "mcp": [],
  79. "message_history_window_size": 12,
  80. "outputs": {
  81. "content": {
  82. "type": "string",
  83. "value": ""
  84. }
  85. },
  86. "presencePenaltyEnabled": false,
  87. "presence_penalty": 0.4,
  88. "prompts": [
  89. {
  90. "content": "User's query:\n{sys.query}\n\nFirst step result:\n{Agent:OddGuestsPump@content}",
  91. "role": "user"
  92. }
  93. ],
  94. "sys_prompt": "You are a Transit & Stay Agent, collaborating with upstream planners.\n\n Use tools to retrieve real-time info for transportation (flights, trains, rentals, etc.) and accommodation (hotels, rentals, etc.) based on the itinerary. Recommend options matching dates, destinations, budgets, and preferences, adjusting for availability or conflicts to align with the overall plan.",
  95. "temperature": 0.1,
  96. "temperatureEnabled": true,
  97. "tools": [
  98. {
  99. "component_name": "TavilySearch",
  100. "name": "TavilySearch",
  101. "params": {
  102. "api_key": "",
  103. "days": 7,
  104. "exclude_domains": [],
  105. "include_answer": false,
  106. "include_domains": [],
  107. "include_image_descriptions": false,
  108. "include_images": false,
  109. "include_raw_content": true,
  110. "max_results": 5,
  111. "outputs": {
  112. "formalized_content": {
  113. "type": "string",
  114. "value": ""
  115. },
  116. "json": {
  117. "type": "Array<Object>",
  118. "value": []
  119. }
  120. },
  121. "query": "sys.query",
  122. "search_depth": "basic",
  123. "topic": "general"
  124. }
  125. },
  126. {
  127. "component_name": "TavilyExtract",
  128. "name": "TavilyExtract",
  129. "params": {
  130. "api_key": ""
  131. }
  132. }
  133. ],
  134. "topPEnabled": false,
  135. "top_p": 0.3,
  136. "user_prompt": "",
  137. "visual_files_var": ""
  138. }
  139. },
  140. "upstream": [
  141. "Agent:OddGuestsPump"
  142. ]
  143. },
  144. "Agent:WeakCarrotsTan": {
  145. "downstream": [
  146. "Message:ThickEyesUnite"
  147. ],
  148. "obj": {
  149. "component_name": "Agent",
  150. "params": {
  151. "delay_after_error": 1,
  152. "description": "",
  153. "exception_comment": "",
  154. "exception_default_value": "",
  155. "exception_goto": [],
  156. "exception_method": null,
  157. "frequencyPenaltyEnabled": false,
  158. "frequency_penalty": 0.7,
  159. "llm_id": "deepseek-chat@DeepSeek",
  160. "maxTokensEnabled": false,
  161. "max_retries": 3,
  162. "max_rounds": 5,
  163. "max_tokens": 256,
  164. "mcp": [],
  165. "message_history_window_size": 12,
  166. "outputs": {
  167. "content": {
  168. "type": "string",
  169. "value": ""
  170. }
  171. },
  172. "presencePenaltyEnabled": false,
  173. "presence_penalty": 0.4,
  174. "prompts": [
  175. {
  176. "content": "User's query:\n{sys.query}\n\nTravel plan:\n{Agent:OddGuestsPump@content}\n\nTransit & Stay plan:\n{Agent:RichTermsCamp@content}",
  177. "role": "user"
  178. }
  179. ],
  180. "sys_prompt": "You are a Result Generator. \nYour task is to produce accurate and reliable travel plans based on integrated information from upstream agents and tool-retrieved data. Ensure the final plan is logically structured, time-efficient, and consistent with all verified details—including clear timelines, confirmed transportation/accommodation arrangements, and practical activity adjustments . Prioritize clarity and feasibility to help users execute the plan smoothly.",
  181. "temperature": 0.1,
  182. "temperatureEnabled": true,
  183. "tools": [],
  184. "topPEnabled": false,
  185. "top_p": 0.3,
  186. "user_prompt": "",
  187. "visual_files_var": ""
  188. }
  189. },
  190. "upstream": [
  191. "Agent:RichTermsCamp"
  192. ]
  193. },
  194. "Message:ThickEyesUnite": {
  195. "downstream": [],
  196. "obj": {
  197. "component_name": "Message",
  198. "params": {
  199. "content": [
  200. "{Agent:WeakCarrotsTan@content}"
  201. ]
  202. }
  203. },
  204. "upstream": [
  205. "Agent:WeakCarrotsTan"
  206. ]
  207. },
  208. "begin": {
  209. "downstream": [
  210. "Agent:OddGuestsPump"
  211. ],
  212. "obj": {
  213. "component_name": "Begin",
  214. "params": {
  215. "enablePrologue": true,
  216. "inputs": {},
  217. "mode": "conversational",
  218. "prologue": "Hi! I’m here to help plan your trip. Any destination in mind?"
  219. }
  220. },
  221. "upstream": []
  222. }
  223. },
  224. "globals": {
  225. "sys.conversation_turns": 0,
  226. "sys.files": [],
  227. "sys.query": "",
  228. "sys.user_id": ""
  229. },
  230. "graph": {
  231. "edges": [
  232. {
  233. "data": {
  234. "isHovered": false
  235. },
  236. "id": "xy-edge__beginstart-Agent:OddGuestsPumpend",
  237. "source": "begin",
  238. "sourceHandle": "start",
  239. "target": "Agent:OddGuestsPump",
  240. "targetHandle": "end"
  241. },
  242. {
  243. "data": {
  244. "isHovered": false
  245. },
  246. "id": "xy-edge__Agent:OddGuestsPumpstart-Agent:RichTermsCampend",
  247. "source": "Agent:OddGuestsPump",
  248. "sourceHandle": "start",
  249. "target": "Agent:RichTermsCamp",
  250. "targetHandle": "end"
  251. },
  252. {
  253. "data": {
  254. "isHovered": false
  255. },
  256. "id": "xy-edge__Agent:RichTermsCampstart-Agent:WeakCarrotsTanend",
  257. "source": "Agent:RichTermsCamp",
  258. "sourceHandle": "start",
  259. "target": "Agent:WeakCarrotsTan",
  260. "targetHandle": "end"
  261. },
  262. {
  263. "data": {
  264. "isHovered": false
  265. },
  266. "id": "xy-edge__Agent:WeakCarrotsTanstart-Message:ThickEyesUniteend",
  267. "source": "Agent:WeakCarrotsTan",
  268. "sourceHandle": "start",
  269. "target": "Message:ThickEyesUnite",
  270. "targetHandle": "end"
  271. },
  272. {
  273. "data": {
  274. "isHovered": false
  275. },
  276. "id": "xy-edge__Agent:RichTermsCamptool-Tool:BreezyStreetsHuntend",
  277. "source": "Agent:RichTermsCamp",
  278. "sourceHandle": "tool",
  279. "target": "Tool:BreezyStreetsHunt",
  280. "targetHandle": "end"
  281. }
  282. ],
  283. "nodes": [
  284. {
  285. "data": {
  286. "form": {
  287. "enablePrologue": true,
  288. "inputs": {},
  289. "mode": "conversational",
  290. "prologue": "Hi! I’m here to help plan your trip. Any destination in mind?"
  291. },
  292. "label": "Begin",
  293. "name": "begin"
  294. },
  295. "dragging": false,
  296. "id": "begin",
  297. "measured": {
  298. "height": 48,
  299. "width": 200
  300. },
  301. "position": {
  302. "x": 333.3224354104293,
  303. "y": -31.71751112667888
  304. },
  305. "selected": false,
  306. "sourcePosition": "left",
  307. "targetPosition": "right",
  308. "type": "beginNode"
  309. },
  310. {
  311. "data": {
  312. "form": {
  313. "delay_after_error": 1,
  314. "description": "",
  315. "exception_comment": "",
  316. "exception_default_value": "",
  317. "exception_goto": [],
  318. "exception_method": null,
  319. "frequencyPenaltyEnabled": false,
  320. "frequency_penalty": 0.7,
  321. "llm_id": "deepseek-chat@DeepSeek",
  322. "maxTokensEnabled": false,
  323. "max_retries": 3,
  324. "max_rounds": 5,
  325. "max_tokens": 256,
  326. "mcp": [],
  327. "message_history_window_size": 12,
  328. "outputs": {
  329. "content": {
  330. "type": "string",
  331. "value": ""
  332. }
  333. },
  334. "presencePenaltyEnabled": false,
  335. "presence_penalty": 0.4,
  336. "prompts": [
  337. {
  338. "content": "User's query:\n{sys.query}",
  339. "role": "user"
  340. }
  341. ],
  342. "sys_prompt": "Role: Professional tour guide: Create detailed travel plans per user needs.​\nFirst, specify departure location, destination, and travel duration (for subsequent agents to retrieve).​\nDevelop the plan using tools to get real-time weather, holidays, attraction hours, traffic, etc. Adjust itinerary accordingly (e.g., reschedule outdoor activities on rainy days) to ensure practicality, efficiency, and alignment with user preferences.​\nFor real-time info retrieval, only output tool-returned content and pass it to subsequent agents; never rely on your own knowledge base.​\n",
  343. "temperature": 0.1,
  344. "temperatureEnabled": true,
  345. "tools": [],
  346. "topPEnabled": false,
  347. "top_p": 0.3,
  348. "user_prompt": "",
  349. "visual_files_var": ""
  350. },
  351. "label": "Agent",
  352. "name": "Travel Planning Agent"
  353. },
  354. "dragging": false,
  355. "id": "Agent:OddGuestsPump",
  356. "measured": {
  357. "height": 84,
  358. "width": 200
  359. },
  360. "position": {
  361. "x": 636.3704165924755,
  362. "y": -48.48140762793254
  363. },
  364. "selected": false,
  365. "sourcePosition": "right",
  366. "targetPosition": "left",
  367. "type": "agentNode"
  368. },
  369. {
  370. "data": {
  371. "form": {
  372. "delay_after_error": 1,
  373. "description": "",
  374. "exception_comment": "",
  375. "exception_default_value": "",
  376. "exception_goto": [],
  377. "exception_method": null,
  378. "frequencyPenaltyEnabled": false,
  379. "frequency_penalty": 0.7,
  380. "llm_id": "deepseek-chat@DeepSeek",
  381. "maxTokensEnabled": false,
  382. "max_retries": 3,
  383. "max_rounds": 5,
  384. "max_tokens": 256,
  385. "mcp": [],
  386. "message_history_window_size": 12,
  387. "outputs": {
  388. "content": {
  389. "type": "string",
  390. "value": ""
  391. }
  392. },
  393. "presencePenaltyEnabled": false,
  394. "presence_penalty": 0.4,
  395. "prompts": [
  396. {
  397. "content": "User's query:\n{sys.query}\n\nFirst step result:\n{Agent:OddGuestsPump@content}",
  398. "role": "user"
  399. }
  400. ],
  401. "sys_prompt": "You are a Transit & Stay Agent, collaborating with upstream planners.\n\n Use tools to retrieve real-time info for transportation (flights, trains, rentals, etc.) and accommodation (hotels, rentals, etc.) based on the itinerary. Recommend options matching dates, destinations, budgets, and preferences, adjusting for availability or conflicts to align with the overall plan.",
  402. "temperature": 0.1,
  403. "temperatureEnabled": true,
  404. "tools": [
  405. {
  406. "component_name": "TavilySearch",
  407. "name": "TavilySearch",
  408. "params": {
  409. "api_key": "",
  410. "days": 7,
  411. "exclude_domains": [],
  412. "include_answer": false,
  413. "include_domains": [],
  414. "include_image_descriptions": false,
  415. "include_images": false,
  416. "include_raw_content": true,
  417. "max_results": 5,
  418. "outputs": {
  419. "formalized_content": {
  420. "type": "string",
  421. "value": ""
  422. },
  423. "json": {
  424. "type": "Array<Object>",
  425. "value": []
  426. }
  427. },
  428. "query": "sys.query",
  429. "search_depth": "basic",
  430. "topic": "general"
  431. }
  432. },
  433. {
  434. "component_name": "TavilyExtract",
  435. "name": "TavilyExtract",
  436. "params": {
  437. "api_key": ""
  438. }
  439. }
  440. ],
  441. "topPEnabled": false,
  442. "top_p": 0.3,
  443. "user_prompt": "",
  444. "visual_files_var": ""
  445. },
  446. "label": "Agent",
  447. "name": "Transit & Stay Agent"
  448. },
  449. "id": "Agent:RichTermsCamp",
  450. "measured": {
  451. "height": 84,
  452. "width": 200
  453. },
  454. "position": {
  455. "x": 936.3704165924755,
  456. "y": -48.48140762793254
  457. },
  458. "selected": false,
  459. "sourcePosition": "right",
  460. "targetPosition": "left",
  461. "type": "agentNode"
  462. },
  463. {
  464. "data": {
  465. "form": {
  466. "delay_after_error": 1,
  467. "description": "",
  468. "exception_comment": "",
  469. "exception_default_value": "",
  470. "exception_goto": [],
  471. "exception_method": null,
  472. "frequencyPenaltyEnabled": false,
  473. "frequency_penalty": 0.7,
  474. "llm_id": "deepseek-chat@DeepSeek",
  475. "maxTokensEnabled": false,
  476. "max_retries": 3,
  477. "max_rounds": 5,
  478. "max_tokens": 256,
  479. "mcp": [],
  480. "message_history_window_size": 12,
  481. "outputs": {
  482. "content": {
  483. "type": "string",
  484. "value": ""
  485. }
  486. },
  487. "presencePenaltyEnabled": false,
  488. "presence_penalty": 0.4,
  489. "prompts": [
  490. {
  491. "content": "User's query:\n{sys.query}\n\nTravel plan:\n{Agent:OddGuestsPump@content}\n\nTransit & Stay plan:\n{Agent:RichTermsCamp@content}",
  492. "role": "user"
  493. }
  494. ],
  495. "sys_prompt": "You are a Result Generator. \nYour task is to produce accurate and reliable travel plans based on integrated information from upstream agents and tool-retrieved data. Ensure the final plan is logically structured, time-efficient, and consistent with all verified details—including clear timelines, confirmed transportation/accommodation arrangements, and practical activity adjustments . Prioritize clarity and feasibility to help users execute the plan smoothly.",
  496. "temperature": 0.1,
  497. "temperatureEnabled": true,
  498. "tools": [],
  499. "topPEnabled": false,
  500. "top_p": 0.3,
  501. "user_prompt": "",
  502. "visual_files_var": ""
  503. },
  504. "label": "Agent",
  505. "name": "Result Generator"
  506. },
  507. "dragging": false,
  508. "id": "Agent:WeakCarrotsTan",
  509. "measured": {
  510. "height": 84,
  511. "width": 200
  512. },
  513. "position": {
  514. "x": 1236.3704165924755,
  515. "y": -48.48140762793254
  516. },
  517. "selected": false,
  518. "sourcePosition": "right",
  519. "targetPosition": "left",
  520. "type": "agentNode"
  521. },
  522. {
  523. "data": {
  524. "form": {
  525. "content": [
  526. "{Agent:WeakCarrotsTan@content}"
  527. ]
  528. },
  529. "label": "Message",
  530. "name": "Final Plan"
  531. },
  532. "dragging": false,
  533. "id": "Message:ThickEyesUnite",
  534. "measured": {
  535. "height": 56,
  536. "width": 200
  537. },
  538. "position": {
  539. "x": 1583.2969941480576,
  540. "y": -26.582338101994175
  541. },
  542. "selected": false,
  543. "sourcePosition": "right",
  544. "targetPosition": "left",
  545. "type": "messageNode"
  546. },
  547. {
  548. "data": {
  549. "form": {
  550. "text": "The Agent will create detailed travel plans per user needs.\n​Add a map tool(eg. amap MCP) to this Agent for more reliable results."
  551. },
  552. "label": "Note",
  553. "name": "Note: Travel Planning Agent"
  554. },
  555. "dragHandle": ".note-drag-handle",
  556. "dragging": false,
  557. "id": "Note:GentleLlamasShake",
  558. "measured": {
  559. "height": 136,
  560. "width": 244
  561. },
  562. "position": {
  563. "x": 628.3550234247459,
  564. "y": -226.23395345704375
  565. },
  566. "selected": false,
  567. "sourcePosition": "right",
  568. "targetPosition": "left",
  569. "type": "noteNode"
  570. },
  571. {
  572. "data": {
  573. "form": {
  574. "text": "The Agent will use tools to retrieve real-time info for transportation and accommodation."
  575. },
  576. "label": "Note",
  577. "name": "Note: Transit & Stay Agent"
  578. },
  579. "dragHandle": ".note-drag-handle",
  580. "dragging": false,
  581. "id": "Note:ClearLlamasTell",
  582. "measured": {
  583. "height": 136,
  584. "width": 244
  585. },
  586. "position": {
  587. "x": 942.4779236864392,
  588. "y": -224.44816237892894
  589. },
  590. "selected": false,
  591. "sourcePosition": "right",
  592. "targetPosition": "left",
  593. "type": "noteNode"
  594. },
  595. {
  596. "data": {
  597. "form": {
  598. "description": "This is an agent for a specific task.",
  599. "user_prompt": "This is the order you need to send to the agent."
  600. },
  601. "label": "Tool",
  602. "name": "flow.tool_0"
  603. },
  604. "id": "Tool:BreezyStreetsHunt",
  605. "measured": {
  606. "height": 84,
  607. "width": 200
  608. },
  609. "position": {
  610. "x": 854.3704165924755,
  611. "y": 91.51859237206746
  612. },
  613. "selected": false,
  614. "sourcePosition": "right",
  615. "targetPosition": "left",
  616. "type": "toolNode"
  617. },
  618. {
  619. "data": {
  620. "form": {
  621. "text": "The Agent will produce accurate and reliable travel plans based on integrated information from upstream agents and tool-retrieved data. "
  622. },
  623. "label": "Note",
  624. "name": "Note: Result Generator"
  625. },
  626. "dragHandle": ".note-drag-handle",
  627. "dragging": false,
  628. "height": 169,
  629. "id": "Note:LongToysShine",
  630. "measured": {
  631. "height": 169,
  632. "width": 246
  633. },
  634. "position": {
  635. "x": 1240.444738031005,
  636. "y": -242.8368862758842
  637. },
  638. "resizing": false,
  639. "selected": false,
  640. "sourcePosition": "right",
  641. "targetPosition": "left",
  642. "type": "noteNode",
  643. "width": 246
  644. },
  645. {
  646. "data": {
  647. "form": {
  648. "text": "This workflow functions as your smart trip planner, utilizing LLM technology to automatically generate customized travel itineraries and featuring optional tool integration for enhanced reliability.\n"
  649. },
  650. "label": "Note",
  651. "name": "Workflow Overall Description"
  652. },
  653. "dragHandle": ".note-drag-handle",
  654. "dragging": false,
  655. "height": 183,
  656. "id": "Note:ProudPlanesMake",
  657. "measured": {
  658. "height": 183,
  659. "width": 284
  660. },
  661. "position": {
  662. "x": 197.34345022177064,
  663. "y": -245.57788797841573
  664. },
  665. "resizing": false,
  666. "selected": false,
  667. "sourcePosition": "right",
  668. "targetPosition": "left",
  669. "type": "noteNode",
  670. "width": 284
  671. }
  672. ]
  673. },
  674. "history": [],
  675. "memory": [],
  676. "messages": [],
  677. "path": [],
  678. "retrieval": [],
  679. "task_id": "abf6ec5e6ddf11f0a28c047c16ec874f"
  680. },
  681. "avatar": "data:image/png;base64,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"
  682. }