mirror of
https://github.com/forcedotcom/afv-library.git
synced 2026-07-30 03:09:50 +08:00
68 lines
2.3 KiB
Markdown
68 lines
2.3 KiB
Markdown
|
|
# Minimal Working Examples
|
||
|
|
|
||
|
|
Complete, deployable agent examples with single subagents, actions, and conditional logic.
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## Hello-World Agent Script
|
||
|
|
|
||
|
|
A complete, deployable agent with one subagent, one action, and conditional logic:
|
||
|
|
|
||
|
|
```agentscript
|
||
|
|
system:
|
||
|
|
messages:
|
||
|
|
welcome: "Hello! How can I help you today?"
|
||
|
|
error: "Sorry, something went wrong."
|
||
|
|
instructions: "You are a helpful customer service agent."
|
||
|
|
|
||
|
|
config:
|
||
|
|
developer_name: "simple_agent"
|
||
|
|
description: "A minimal working agent example"
|
||
|
|
agent_type: "AgentforceServiceAgent"
|
||
|
|
default_agent_user: "agent_user@yourorg.com"
|
||
|
|
|
||
|
|
variables:
|
||
|
|
customer_verified: mutable boolean = False
|
||
|
|
|
||
|
|
start_agent entry:
|
||
|
|
description: "Entry point for all conversations"
|
||
|
|
reasoning:
|
||
|
|
instructions: |
|
||
|
|
Greet the customer and route to the main subagent.
|
||
|
|
actions:
|
||
|
|
go_main: @utils.transition to @subagent.main
|
||
|
|
description: "Navigate to main conversation"
|
||
|
|
|
||
|
|
subagent main:
|
||
|
|
description: "Main conversation handler"
|
||
|
|
reasoning:
|
||
|
|
instructions: ->
|
||
|
|
if @variables.customer_verified == True:
|
||
|
|
| You are speaking with a verified customer.
|
||
|
|
| Help them with their request.
|
||
|
|
else:
|
||
|
|
| Please verify the customer's identity first.
|
||
|
|
actions:
|
||
|
|
verify: @actions.verify_customer
|
||
|
|
description: "Verify customer identity"
|
||
|
|
set @variables.customer_verified = @outputs.verified
|
||
|
|
actions:
|
||
|
|
verify_customer: apex://VerifyCustomerAction
|
||
|
|
description: "Verify customer identity"
|
||
|
|
inputs:
|
||
|
|
customer_id: string
|
||
|
|
label: "Customer ID"
|
||
|
|
outputs:
|
||
|
|
verified: boolean
|
||
|
|
label: "Verified"
|
||
|
|
```
|
||
|
|
|
||
|
|
### Key Points
|
||
|
|
|
||
|
|
- **`config` block**: `developer_name` must match the folder name (case-sensitive)
|
||
|
|
- **`default_agent_user`**: Must be a valid Einstein Agent User in the target org — query with `sf data query`
|
||
|
|
- **`instructions: ->`**: Procedural mode enables `if`/`else` and `run` directives
|
||
|
|
- **`instructions: |`**: Literal mode for static text passed to the LLM
|
||
|
|
- **`set @variables.X = @outputs.Y`**: Captures action output into mutable state
|
||
|
|
- **`@utils.transition`**: Permanent handoff (does not return to calling subagent)
|