afv-library/skills/agentforce-generate/assets/agents/template-multi-subagent.agent

151 lines
5.4 KiB
Plaintext

# 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.