# Multi-Subagent Template # Copy this file to your AiAuthoringBundle directory and rename it to match # your agent's developer_name. Replace all placeholder values with real ones. # Add, remove, or rename subagents as needed. system: instructions: | Describe the agent's durable persona, safety rules, and scope here. During request classification, choose exactly one matching request handler without answering the underlying request. In a handler, complete only that handler's described task. Redirect unsupported requests and escalate explicit requests for a human without also answering them. messages: welcome: "Hello! How can I help you today?" error: "Sorry, it looks like something has gone wrong." access: default_agent_user: "username@identifier.org" config: developer_name: "Agent_API_Name" agent_label: "Agent Display Name" description: "Description of the agent's purpose" # agent_type: "AgentforceServiceAgent" for customer-facing (requires access.default_agent_user) # "AgentforceEmployeeAgent" for internal (remove the access block) agent_type: "AgentforceServiceAgent" language: default_locale: "en_US" additional_locales: "" all_additional_locales: False start_agent agent_router: description: "Welcome the user and determine the appropriate request handler" reasoning: actions: go_to_subagent_a: @utils.transition to @subagent.subagent_a go_to_subagent_b: @utils.transition to @subagent.subagent_b go_to_subagent_c: @utils.transition to @subagent.subagent_c go_to_escalation: @utils.transition to @subagent.escalation go_to_off_topic: @utils.transition to @subagent.off_topic subagent subagent_a: label: "Handler A" description: "Describe what request type A handles" reasoning: instructions: -> | Replace this with instructions for handling request type A. actions: action_a: @actions.action_a with input_param = ... actions: action_a: description: "Describe what this action does" label: "Action A" target: "apex://ClassName" inputs: input_param: string description: "Describe this parameter" label: "Parameter Name" is_required: True outputs: output_field: string label: "Output Name" description: "Describe this output" is_displayable: True filter_from_agent: False subagent subagent_b: label: "Handler B" description: "Describe what request type B handles" reasoning: instructions: -> | Replace this with instructions for handling request type B. actions: main_action: @actions.action_b description: "Describe the action outcome, when to choose it, and any material consequence" with query_param = ... actions: action_b: description: "Describe what this action does" label: "Action B" target: "prompt://PromptTemplateName" inputs: query_param: string description: "Describe this parameter" label: "Parameter Name" is_required: True outputs: result_text: string description: "Describe this output" label: "Result" is_displayable: False subagent subagent_c: label: "Handler C" description: "Describe what request type C handles" reasoning: instructions: -> | Replace this with concrete instructions for handling request type C. Ask for missing input only when it cannot be filled from the current turn and surviving conversation history. actions: action_c: @actions.action_c with input_param = ... actions: action_c: description: "Describe what this action does" label: "Action C" target: "flow://FlowName" inputs: input_param: string description: "Describe this parameter" label: "Parameter Name" is_required: True outputs: result_value: string label: "Result Value" description: "Describe this output" is_displayable: True filter_from_agent: False subagent escalation: label: "Escalation" description: "Handles requests from users who want to transfer or escalate their conversation to a live human agent." reasoning: instructions: -> | If a user explicitly asks to transfer to a live agent, escalate the conversation. actions: escalate_to_human: @utils.escalate description: "Escalate to a human agent." subagent off_topic: label: "Off Topic" description: "Redirect the conversation when the user request is off-topic" reasoning: instructions: -> | The user request is off-topic. Do not answer general knowledge questions. Redirect the conversation by asking how you can help with the subagents this agent supports.