version: 0.0.0 vars: {} graph: id: dynamic_test description: Dynamic map/tree demo for multi-part travel planning and aggregation. log_level: DEBUG is_majority_voting: false nodes: - id: B type: literal config: content: Please plan what to do for fun in Shanghai for me. role: user description: '' context_window: 0 dynamic: null - id: D type: literal config: content: >- Please plan how to get around in Shanghai for me (public transportation, taxis, car rentals, etc.). role: user description: '' context_window: 0 dynamic: null - id: C type: literal config: content: Please plan where to stay in Shanghai for me. role: user description: '' context_window: 0 dynamic: null - id: Z type: agent config: name: gpt-4o provider: openai role: >- You need to plan according to user requests. Use your imagination and do not ask the user any questions. base_url: ${BASE_URL} api_key: ${API_KEY} params: {} tooling: null thinking: null memories: [] retry: null description: '' context_window: 0 dynamic: type: map split: type: message config: max_parallel: 10 - id: P type: passthrough config: only_last_message: false description: '' context_window: 0 - id: E type: literal config: content: Please also add content about Beijing. role: user description: '' context_window: 0 - id: F type: literal config: content: >- Please plan how to experience the university academic atmosphere in Shanghai for me. role: user description: '' context_window: 0 dynamic: null - id: 'Y' type: agent config: name: gpt-4o provider: openai role: >- Please aggregate the input content into a final result. Note that you must not omit anything! If there is only one input, output it as is. base_url: ${BASE_URL} api_key: ${API_KEY} params: {} tooling: null thinking: null memories: [] retry: null description: '' context_window: 0 dynamic: type: tree split: type: message config: group_size: 2 max_parallel: 10 - id: A type: literal config: content: Please plan what to eat in Shanghai for me. role: user description: '' context_window: 0 dynamic: null edges: - from: A to: P trigger: true condition: 'true' carry_data: true keep_message: false clear_context: false clear_kept_context: false process: null dynamic: null - from: B to: P trigger: true condition: 'true' carry_data: true keep_message: false clear_context: false clear_kept_context: false process: null dynamic: null - from: C to: P trigger: true condition: 'true' carry_data: true keep_message: false clear_context: false clear_kept_context: false process: null dynamic: null - from: D to: P trigger: true condition: 'true' carry_data: true keep_message: false clear_context: false clear_kept_context: false process: null dynamic: null - from: E to: Z trigger: true condition: 'true' carry_data: true keep_message: false clear_context: false clear_kept_context: false process: null dynamic: null - from: P to: E trigger: true condition: 'true' carry_data: true keep_message: false clear_context: false clear_kept_context: false process: null dynamic: null - from: Z to: 'Y' trigger: true condition: 'true' carry_data: true keep_message: false clear_context: false clear_kept_context: false process: null dynamic: type: tree split: null config: group_size: 3 max_parallel: 10 - from: P to: Z trigger: true condition: 'true' carry_data: true keep_message: false clear_context: false clear_kept_context: false process: null dynamic: type: map split: null config: max_parallel: 5 - from: F to: Z trigger: true condition: 'true' carry_data: true keep_message: false clear_context: false clear_kept_context: false process: null dynamic: type: map split: type: message config: {} config: max_parallel: 5 memory: [] initial_instruction: '' start: - B - D - C - A - F end: []