| Layer | Purpose | Python (asapi) | CLI (agentservice) |
|---|---|---|---|
| Sudoiq registry | The execution platform stores schemas (name, parameters JSON Schema) so models can call tools. | client.tools.register_tools, client.tools.get_tools | tools push, tools list |
| App-defined tools | Your application code runs when the model invokes a tool and returns a string result to the API. | set_tools (streaming) or process_webhook_tools + send_tool_responses (webhooks) | task status --wait --tool-handler ... (see CLI) |
name + namespace. Those registered schemas (including tool names/namespaces and argument JSON Schema) are part of what Sudoiq provides to models when they decide which tool to call. In Python, the SDK provides typed schema models (for example ToolDefinition) that you can reuse or extend in your own codebase when defining new tools. The selected tool must exist in the registry and have a matching key in your app tool map for runs that execute tools in your integration.
Next: