Documentation Index
Fetch the complete documentation index at: https://docs.simplefunctions.dev/llms.txt
Use this file to discover all available pages before exploring further.
sf agent --tool <canonical.tool> calls a contract-mapped tool directly. It does not require an LLM key.
This is direct CLI tool mode, not the Agent SDK. @spfunctions/agent v0 exposes the embeddable direct tool runner; this page documents the CLI wrapper around those direct-tool semantics.
--tool accepts canonical dotted names only. The older sf agent --stream-json --once <tool> path remains as compatibility behavior, but --once by itself is prompt mode.
The event stream includes:
session.inittool.catalog.loadedrun.startedtool.call.startedtool.call.completedortool.call.failedagent.finaltrace.receiptwhen--record-traceis usedrun.completedorrun.failed
Trace
outputSummary audit fields. They must not store API keys, bearer tokens, venue credentials, or trading secrets.
Replay is deterministic for direct tool mode:
Manifest
sf.manifest.list() and sf.manifest.get("world.read") use /api/contracts/tools, the strict SDK/Agent manifest. Broad /api/tools names like get_world_state are hosted compatibility names, not canonical SDK/Agent contract names.
Policy
Public read/research tools useread.public, market_data, research, and sideEffect: none.
Authenticated reads use read.user, require SF_API_KEY, and are not part of unauthenticated hello-world examples.
Write, paper-trade, runtime, secret, and live-trade tools are not exposed by default in direct once-mode.