Chuyển tới nội dung chính

Shortcut System Guide

Shortcuts are the fastest way to invoke FAOS agents. Instead of looking up agent IDs and constructing API calls, use a simple two-part command.

How Shortcuts Work

A shortcut command follows the pattern:

<module> <agent>
PartDescriptionExample
ModuleIndustry verticalbank, health, mfg
AgentSpecialist within modulecredit-analyst, patient-intake

When you call client.shortcut("bank credit-analyst"), the SDK:

  1. Sends the command to the shortcut resolution API
  2. Matches against registered shortcut patterns
  3. Returns the resolved agent ID and metadata
  4. Invokes the matched agent

Available Modules

FAOS includes 21 industry modules:

ShortcutModuleAgents
bankBanking & Finance38
investInvestment Management25+
insuranceInsurance25+
fintechFinTech25+
healthHealthcare30+
mfgManufacturing25+
retailRetail20+
logisticsLogistics & Supply Chain25+
talentTalent & HR20+
profservProfessional Services25+
martechMarTech20+
softwareSoftware Development25+
siSystems Integration20+
autoAutomotive25+
aviationAviation20+
agriAgriculture20+
agritechAgriTech20+
travelTravel & Hospitality20+
gameGaming20+
edutechEduTech20+
proptechPropTech20+

Shortcut Types

Module Shortcuts

View all agents in a module:

# Python
shortcuts = await client.shortcuts.list(module="faos-bank")
// TypeScript
const shortcuts = await client.shortcuts.list({ module: 'faos-bank' });

Agent Shortcuts

Invoke a specific agent directly:

# Python
response = await client.shortcut("bank credit-analyst")
// TypeScript
const response = await client.shortcut('bank credit-analyst');

Fuzzy Matching

If you mistype a shortcut, the resolution API returns suggestions:

from faos import ShortcutNotFoundError

try:
await client.shortcut("bnk credit-analyst")
except ShortcutNotFoundError as e:
print(e.suggestions)
# ["bank credit-analyst"]

Resolution Details

When resolving a shortcut, you get full context about the matched agent:

resolution = await client.shortcuts.resolve("bank credit-analyst")

print(resolution.resolved) # True
print(resolution.agent_id) # "agent_abc123"
print(resolution.module_key) # "faos-bank"
print(resolution.module_name) # "Banking & Finance"
print(resolution.agent_name) # "Credit Risk Analyst"
print(resolution.task_template) # Default task for the agent
print(resolution.capabilities) # ["credit_analysis", "risk_assessment"]

Using Context Hints

Provide context to help resolve ambiguous shortcuts:

resolution = await client.shortcuts.resolve(
"analyst",
context={"industry": "banking", "task": "credit risk"}
)

Task Override

Override the default task template when invoking via shortcut:

response = await client.shortcut(
"bank credit-analyst",
task="Analyze credit risk for a $500K commercial loan application"
)

Searching Shortcuts

Search across all modules for agents matching a keyword:

results = await client.shortcuts.list(search="risk")
for s in results:
print(f"{s.pattern}: {s.description}")
# bank risk-manager: Portfolio-level risk assessment
# insurance risk-assessor: Insurance risk evaluation
# invest risk-analyst: Investment risk analysis

Best Practices

  1. Use specific shortcuts -- "bank credit-analyst" is better than "analyst"
  2. Cache resolutions -- If calling the same shortcut repeatedly, resolve once and reuse the agent ID
  3. Handle not-found gracefully -- Always catch ShortcutNotFoundError and show suggestions to users
  4. Stream for long responses -- Use shortcut_stream() for agent tasks that produce lengthy output

Next Steps