mirror of
https://github.com/forcedotcom/afv-library.git
synced 2026-07-31 20:12:16 +08:00
* @W-21955450@ Rename topic to subagent for Agent Script v2
Aligns with Agent Script v2 naming standards where `topic` is renamed
to `subagent` across all skill documentation and templates.
Changes:
- Agent Script templates: topic keyword → subagent keyword
- References: @topic.* → @subagent.*
- Documentation: Updated all skill references and guides
- Natural language references preserved in comments/descriptions
* Rename start_agent topic_selector to agent_router
Completes the topic → subagent terminology alignment by:
1. Renaming start_agent from topic_selector to agent_router (15 agent files)
2. Updating template topic declarations: topic {{placeholder}} → subagent {{placeholder}} (5 files)
3. Updating all @subagent.topic_selector references to @subagent.agent_router (35 occurrences)
4. Updating documentation: prose, examples, and diagrams (10 markdown files)
5. Updating comments to use agent_router terminology
Files affected:
- 22 agent template files
- 10 documentation/reference markdown files
- Template component files
The agent_router name is more descriptive of its actual function
(routing to different subagents) and completes the Agent Script v2
terminology standardization.
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
* Rename files with "topic" to use "subagent" terminology
Completes the topic → subagent terminology alignment by renaming
files and updating all references:
**Files renamed (5):**
- multi-topic.agent → multi-subagent.agent
- template-single-topic.agent → template-single-subagent.agent
- template-multi-topic.agent → template-multi-subagent.agent
- topic-with-actions.agent → subagent-with-actions.agent
- agent-topic-map-diagrams.md → agent-subagent-map-diagrams.md
**References updated (6 docs):**
- Updated all filename references to point to new filenames
- Updated "Topic Map" → "Subagent Map" throughout documentation
- Updated "multi-topic"/"single-topic" → "multi-subagent"/"single-subagent"
Files modified:
- README.md, SKILL.md, agent-spec-template.md
- assets/agents/README.md, assets/README-legacy.md
- references/agent-design-and-spec-creation.md
This ensures consistent "subagent" terminology across filenames,
file content, and all documentation references.
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
* Complete topic-to-subagent terminology update across skills
Comprehensive update replacing "topic" with "subagent" terminology throughout
the developing-agentforce and testing-agentforce skills to align with Agent
Script's `subagent` block naming.
Key changes:
- "Topic Selector" → "Subagent Router" in all agent templates and docs
- "Topic/action" → "Subagent/action" in documentation
- "Topic map" → "Subagent map" in diagram references
- Updated all architecture documentation to use "subagent" terminology
- Updated 19 .agent template files with new labels and comments
- Updated 8 reference documentation files with consistent terminology
API contract preservation:
- Test spec YAML files preserve "topic" terminology to match Testing Center API
- Added clarifying comments explaining topic/subagent equivalence in YAML files
- Field names like `expectedTopic` unchanged (Salesforce API requirement)
Preserved terms:
- "off-topic" (standard phrase for out-of-scope)
- "expectedTopic" field (Testing Center API)
- "platform topics" (Salesforce guardrail features)
32 files changed, 379 insertions(+), 366 deletions(-)
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
* Complete comprehensive topic-to-subagent terminology update
Thorough update replacing all remaining "topic" references with "subagent"
terminology across developing-agentforce, testing-agentforce, and
observing-agentforce skills to fully align with Agent Script's `subagent`
block naming.
Key changes:
- Agent Script syntax: @topic.<name> → @subagent.<name>
- Agent Script syntax: topic.actions → subagent.actions
- Shell script patterns: ^topic → ^subagent
- Documentation: "topic instructions" → "subagent instructions"
- observing-agentforce skill: Updated all agent architecture references
- Template files: Updated all inline comments and descriptions
- Variable names in scripts: TOPIC → SUBAGENT
Specific updates:
- 45 files changed, 294 insertions, 294 deletions
- Updated all Agent Script code examples to use @subagent syntax
- Updated observing-agentforce issue classification guide
- Updated shell script patterns in diagnostic tools
- Updated Apex comments to clarify topic field maps to subagents
Preserved (as required):
- "off-topic" and "off_topic" (standard out-of-scope phrase)
- Testing Center API fields: expectedTopic, topic: in YAML
- API response fields: .topic, generatedData.topic, topic_assertion
- STDM field names: ssot__TopicApiName__c (with clarifying docs)
- Template placeholders in test specs (API values)
- "Topic hash drift" (API field behavior)
- "Email topic/purpose" (means email subject)
- Explanatory comments about API field mapping
All Agent Script syntax and documentation now consistently uses "subagent"
while preserving backward compatibility with platform API field names.
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
* a few more topic -> subagent replacements
---------
Co-authored-by: Steve Hetzel <shetzel@salesforce.com>
Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>
102 lines
3.4 KiB
Plaintext
102 lines
3.4 KiB
Plaintext
# Simple FAQ Agent
|
|
# A minimal working example of an Agentforce agent
|
|
# Uses pure LLM reasoning without external actions
|
|
#
|
|
# Deploy with: sf agent publish authoring-bundle --api-name Simple_FAQ_Agent --target-org [alias]
|
|
|
|
system:
|
|
instructions: "You are a helpful FAQ assistant for our company. Answer questions accurately and concisely. If you don't know the answer, say so honestly. Never share sensitive or confidential information. Keep responses friendly and professional."
|
|
messages:
|
|
welcome: "Hello! I'm your FAQ assistant. How can I help you today?"
|
|
error: "I'm sorry, I encountered an issue. Please try again."
|
|
|
|
config:
|
|
agent_name: "Simple_FAQ_Agent"
|
|
default_agent_user: "agent.user@company.com"
|
|
agent_label: "Simple FAQ Agent"
|
|
description: "A minimal FAQ agent that answers common questions using AI"
|
|
|
|
variables:
|
|
EndUserId: linked string
|
|
source: @MessagingSession.MessagingEndUserId
|
|
description: "Messaging End User ID"
|
|
RoutableId: linked string
|
|
source: @MessagingSession.Id
|
|
description: "Messaging Session ID"
|
|
ContactId: linked string
|
|
source: @MessagingEndUser.ContactId
|
|
description: "Contact ID"
|
|
user_question: mutable string
|
|
description: "The user's current question"
|
|
conversation_topic: mutable string
|
|
description: "The current subject being discussed"
|
|
question_count: mutable number
|
|
description: "Number of questions answered in this session"
|
|
|
|
language:
|
|
default_locale: "en_US"
|
|
additional_locales: ""
|
|
all_additional_locales: False
|
|
|
|
start_agent agent_router:
|
|
label: "Subagent Router"
|
|
description: "Routes incoming questions to the FAQ handler"
|
|
|
|
reasoning:
|
|
instructions: ->
|
|
| Listen to the user's question and determine how to help.
|
|
| If the question is about a specific subject, note it.
|
|
| Route to the FAQ handler for processing.
|
|
actions:
|
|
handle_faq: @utils.transition to @subagent.faq_handler
|
|
end_conversation: @utils.transition to @subagent.farewell
|
|
|
|
subagent faq_handler:
|
|
label: "FAQ Handler"
|
|
description: "Handles frequently asked questions and provides helpful answers"
|
|
|
|
reasoning:
|
|
instructions: ->
|
|
| Answer the user's question based on your knowledge.
|
|
| Be helpful, accurate, and concise.
|
|
| Keep responses under 3-4 sentences when possible.
|
|
| If you need more information, ask clarifying questions.
|
|
|
|
|
| Common topics you can help with:
|
|
| - Business hours and location
|
|
| - Return and refund policies
|
|
| - Shipping information
|
|
| - Product questions
|
|
| - Account and billing
|
|
|
|
|
| If the question is outside your knowledge:
|
|
| - Acknowledge you don't have that information
|
|
| - Suggest contacting customer support
|
|
| - Offer to help with something else
|
|
actions:
|
|
new_question: @utils.transition to @subagent.agent_router
|
|
end_conversation: @utils.transition to @subagent.farewell
|
|
escalate: @utils.transition to @subagent.escalation
|
|
|
|
subagent farewell:
|
|
label: "Farewell"
|
|
description: "Ends the conversation politely"
|
|
|
|
reasoning:
|
|
instructions: ->
|
|
| Thank the user for their questions.
|
|
| Wish them a great day.
|
|
| Let them know they can return anytime for more help.
|
|
|
|
subagent escalation:
|
|
label: "Escalation"
|
|
description: "Handles requests to speak with a human agent"
|
|
|
|
reasoning:
|
|
instructions: ->
|
|
| If the user wants to speak with a human, escalate gracefully.
|
|
| Acknowledge their request and transfer the conversation.
|
|
actions:
|
|
escalate_to_human: @utils.escalate
|
|
description: "Transfer to a human agent"
|