Manage your AgentOS workspace from code: agents, runs, approvals, evals, schedules and more.
Each method is one POST /api/v1/rpc/<method> call, with the same permissions as the dashboard and MCP.
import { AgentOS } from "@agentos-sdk/core";
const aos = new AgentOS({ apiKey: process.env.AGENTOS_WORKSPACE_KEY });
// Pause every agent that failed more than a third of its runs this week.
const fleet = await aos.fleet.health<{ agents: Array<{ agent_id: string; failure_rate: number }> }>(
{ days: 7 },
);
for (const agent of fleet.agents.filter((a) => a.failure_rate > 0.33)) {
await aos.agents.setStatus({ agentId: agent.agent_id, status: "paused" });
}
import os
from agentos import AgentOS
aos = AgentOS(api_key=os.environ["AGENTOS_WORKSPACE_KEY"])
# Pause every agent that failed more than a third of its runs this week.
fleet = aos.fleet.health(days=7)
for agent in fleet["agents"]:
if agent["failure_rate"] > 0.33:
aos.agents.set_status(agent_id=agent["agent_id"], status="paused")
aos_ws_…), or a personal key (aos_user_…) with the workspace option (AGENTOS_WORKSPACE). Agent keys are refused: they're for reporting and invoking one agent.agentId), Python snake_case keywords (agent_id). Both send the wire's snake_case.aos.agents.list<Agent[]>().runs.invoke, evals.runCase, reports.generate) use a 310 s timeout.agents.createCreate a new hosted agent. A hosted agent runs on AgentOS: define its name, system prompt, model, and tools. Optionally file it under a folder (folder_id from folders.list).
Python: aos.agents.create() · Wire: POST /api/v1/rpc/agents_create
| Parameter | Type | Required | Description |
|---|---|---|---|
name | string | Yes | Short display name. |
role | string | No | One-line role label, e.g. 'Email assistant'. |
description | string | No | What this agent does. |
systemPrompt / system_prompt | string | Yes | Full system prompt for the agent. |
providerType / provider_type | "anthropic" | "openai" | No | |
model | string | No | Model id for the provider (e.g. 'claude-sonnet-4-6', 'gpt-4.1-mini'). Any model the workspace's provider key can use is accepted. |
tools | Array<string> | No | Tool names to enable. Mix and match: built-in names (tools.listBuiltin), workspace HTTP tools (tools.listWorkspace), and Composio actions (tools.listComposio, with names like 'composio_GITHUB_CREATE_ISSUE'). |
tags | Array<string> | No | Free-form tags for grouping, e.g. ['email', 'sales']. |
temperature | number | No | |
maxTokens / max_tokens | number | No | |
maxIterations / max_iterations | number | No | |
folderId / folder_id | string | No | Folder UUID to file this agent under (from folders.list). Omit for uncategorized. |
promptVariables / prompt_variables | Record<string, { description?: string; value?: string }> | No | Named {{KEY}} placeholders in the system prompt. Object mapping KEY → { description?, value? }. Pass {} to clear. |
inputSchema / input_schema | Record<string, unknown> | No | JSON Schema object (draft-07). Defines the shape of the agent's input/output. |
outputSchema / output_schema | Record<string, unknown> | No | JSON Schema object (draft-07). Defines the shape of the agent's input/output. |
agents.deletePermanently delete an agent and its API keys.
Python: aos.agents.delete() · Wire: POST /api/v1/rpc/agents_delete
| Parameter | Type | Required | Description |
|---|---|---|---|
agentId / agent_id | string | Yes | Agent UUID. |
agents.getGet full configuration for a single agent, including system_prompt, model, tools, folder_id, and sampling params.
Python: aos.agents.get() · Wire: POST /api/v1/rpc/agents_get
| Parameter | Type | Required | Description |
|---|---|---|---|
agentId / agent_id | string | Yes | Agent UUID. |
agents.listList all agents in the workspace with their status, model, enabled tools, and folder_id. Filter by status or by folder (folder_id='none' for uncategorized).
Python: aos.agents.list() · Wire: POST /api/v1/rpc/agents_list
| Parameter | Type | Required | Description |
|---|---|---|---|
status | "active" | "paused" | "archived" | No | Filter by status. Omit to return all. |
folderId / folder_id | string | No | Filter by folder: a folder UUID (from folders.list), or 'none' for uncategorized agents. Omit to return all. |
agents.setStatusPause, unpause (active), or archive an agent.
Python: aos.agents.set_status() · Wire: POST /api/v1/rpc/agents_set_status
| Parameter | Type | Required | Description |
|---|---|---|---|
agentId / agent_id | string | Yes | Agent UUID. |
status | "active" | "paused" | "archived" | Yes |
agents.updateUpdate a hosted agent's config: name, system_prompt, model, tools, sampling params, or folder_id (pass null to un-file).
Python: aos.agents.update() · Wire: POST /api/v1/rpc/agents_update
| Parameter | Type | Required | Description |
|---|---|---|---|
agentId / agent_id | string | Yes | Agent UUID. |
name | string | No | |
role | string | No | |
description | string | No | |
systemPrompt / system_prompt | string | No | |
providerType / provider_type | "anthropic" | "openai" | No | |
model | string | No | Model id for the provider (e.g. 'claude-sonnet-4-6', 'gpt-4.1-mini'). Any model the workspace's provider key can use is accepted. |
tools | Array<string> | No | |
tags | Array<string> | No | Free-form tags for grouping, e.g. ['email', 'sales']. |
temperature | number | No | |
maxTokens / max_tokens | number | No | |
maxIterations / max_iterations | number | No | |
pinnedResourceIds / pinned_resource_ids | Array<string> | No | Workspace resource IDs to pin into the system prompt. Pass [] to clear. |
folderId / folder_id | string | null | No | Folder UUID to file this agent under (from folders.list). Pass null to un-file (move to uncategorized). Built-in agents can't be filed. |
promptVariables / prompt_variables | Record<string, { description?: string; value?: string }> | No | Named {{KEY}} placeholders in the system prompt. Object mapping KEY → { description?, value? }. Pass {} to clear. |
inputSchema / input_schema | Record<string, unknown> | No | JSON Schema object (draft-07). Defines the shape of the agent's input/output. |
outputSchema / output_schema | Record<string, unknown> | No | JSON Schema object (draft-07). Defines the shape of the agent's input/output. |
alerts.createCreate an alert rule. Alerts notify you when an agent fails, runs too slowly, or stops running.
Python: aos.alerts.create() · Wire: POST /api/v1/rpc/alerts_create
| Parameter | Type | Required | Description |
|---|---|---|---|
name | string | Yes | |
agentId / agent_id | string | No | Scope to a specific agent. Omit for workspace-wide. |
conditionType / condition_type | object | Yes | |
conditionConfig / condition_config | Record<string, unknown> | No | { threshold_ms?, threshold_pct?, window_minutes? } |
channels | Array<"email" | "webhook"> | Yes | |
notificationConfig / notification_config | Record<string, unknown> | No | { email?, webhook_url? } |
alerts.deleteDelete an alert rule.
Python: aos.alerts.delete() · Wire: POST /api/v1/rpc/alerts_delete
| Parameter | Type | Required | Description |
|---|---|---|---|
alertId / alert_id | string | Yes | Alert UUID. |
alerts.listList alert rules configured for this workspace.
Python: aos.alerts.list() · Wire: POST /api/v1/rpc/alerts_list
| Parameter | Type | Required | Description |
|---|---|---|---|
activeOnly / active_only | boolean | No |
alerts.updateUpdate an alert rule: change its config, channels, or toggle active/inactive.
Python: aos.alerts.update() · Wire: POST /api/v1/rpc/alerts_update
| Parameter | Type | Required | Description |
|---|---|---|---|
alertId / alert_id | string | Yes | Alert UUID. |
name | string | No | |
conditionConfig / condition_config | Record<string, unknown> | No | { threshold_ms?, threshold_pct?, window_minutes? } |
channels | Array<"email" | "webhook"> | No | |
notificationConfig / notification_config | Record<string, unknown> | No | { email?, webhook_url? } |
active | boolean | No | Enable or disable the alert rule. |
apiKeys.createGenerate a new API key for an agent. Returns the plaintext key ONCE: surface it to the user immediately and instruct them to store it securely.
Python: aos.api_keys.create() · Wire: POST /api/v1/rpc/api_keys_create
| Parameter | Type | Required | Description |
|---|---|---|---|
agentId / agent_id | string | Yes | Agent UUID. |
name | string | Yes | Display name for this key, e.g. 'production', 'local-dev'. |
apiKeys.listList API keys for this workspace, optionally filtered to one agent. Plaintext is never returned, only id, name, prefix, agent_id, revoked, last_used_at.
Python: aos.api_keys.list() · Wire: POST /api/v1/rpc/api_keys_list
| Parameter | Type | Required | Description |
|---|---|---|---|
agentId / agent_id | string | No | Filter to one agent. Omit for all keys in workspace. |
includeRevoked / include_revoked | boolean | No |
apiKeys.revokeRevoke an API key by id. Subsequent requests using that key will be rejected.
Python: aos.api_keys.revoke() · Wire: POST /api/v1/rpc/api_keys_revoke
| Parameter | Type | Required | Description |
|---|---|---|---|
keyId / key_id | string | Yes | ID of the key to revoke. |
approvals.decideApprove or reject a pending tool call. Approving resumes the run; rejecting fails it with a note.
Python: aos.approvals.decide() · Wire: POST /api/v1/rpc/approvals_decide
| Parameter | Type | Required | Description |
|---|---|---|---|
approvalId / approval_id | string | Yes | Approval UUID. |
decision | "approved" | "rejected" | Yes | Approve or reject the pending tool call. |
decisionNote / decision_note | string | No | Optional note shown to the run log. |
approvals.listList pending approval requests for this workspace. Approvals are tool calls paused for human approval.
Python: aos.approvals.list() · Wire: POST /api/v1/rpc/approvals_list
| Parameter | Type | Required | Description |
|---|---|---|---|
agentId / agent_id | string | No | Filter by agent. Omit for workspace-wide. |
limit | number | No | Max results to return. Default 20. |
conversations.deleteDelete a conversation and its message history.
Python: aos.conversations.delete() · Wire: POST /api/v1/rpc/conversations_delete
| Parameter | Type | Required | Description |
|---|---|---|---|
conversationId / conversation_id | string | Yes | Conversation UUID. |
conversations.getGet a conversation and its full message history.
Python: aos.conversations.get() · Wire: POST /api/v1/rpc/conversations_get
| Parameter | Type | Required | Description |
|---|---|---|---|
conversationId / conversation_id | string | Yes | Conversation UUID. |
messageLimit / message_limit | number | No | Max messages to return. |
conversations.listList conversation sessions for this workspace. Conversations persist multi-turn memory across runs.
Python: aos.conversations.list() · Wire: POST /api/v1/rpc/conversations_list
| Parameter | Type | Required | Description |
|---|---|---|---|
agentId / agent_id | string | No | Filter by agent. Omit for workspace-wide. |
externalUserId / external_user_id | string | No | Filter by external user ID passed at invoke time. |
limit | number | No | Max results to return. Default 20. |
evals.createCaseCreate an eval case for an agent. Define the input payload and a list of assertions (output_contains, tool_called, no_error, max_duration_ms, etc.) that must all pass for the case to succeed.
Python: aos.evals.create_case() · Wire: POST /api/v1/rpc/evals_create_case
| Parameter | Type | Required | Description |
|---|---|---|---|
agentId / agent_id | string | Yes | Agent UUID. |
name | string | Yes | Short label for this eval case, e.g. 'Handles missing invoice'. |
input | Record<string, unknown> | Yes | Input payload passed to the agent when this case is run. |
assertions | object | Yes | List of assertions to check after the run completes. |
evals.deleteCaseDelete an eval case and all its run history.
Python: aos.evals.delete_case() · Wire: POST /api/v1/rpc/evals_delete_case
| Parameter | Type | Required | Description |
|---|---|---|---|
evalCaseId / eval_case_id | string | Yes | Eval case UUID. |
evals.getRunGet the status and per-assertion results for an eval run. Each result includes assertion_type, passed, actual_value, and expected_value.
Python: aos.evals.get_run() · Wire: POST /api/v1/rpc/evals_get_run
| Parameter | Type | Required | Description |
|---|---|---|---|
evalRunId / eval_run_id | string | Yes | Eval run UUID. |
evals.listCasesList all eval cases for an agent, each with its most recent run status. Use to check what test coverage exists and whether cases are passing.
Python: aos.evals.list_cases() · Wire: POST /api/v1/rpc/evals_list_cases
| Parameter | Type | Required | Description |
|---|---|---|---|
agentId / agent_id | string | Yes | Agent UUID. |
evals.runCaseTrigger an eval run for a case. Returns an eval_run_id in 'pending' status. Poll evals.getRun for the result.
Python: aos.evals.run_case() · Wire: POST /api/v1/rpc/evals_run_case
| Parameter | Type | Required | Description |
|---|---|---|---|
evalCaseId / eval_case_id | string | Yes | Eval case UUID. |
fleet.healthPer-agent health for the whole fleet over the last N days, worst first: run counts, failure rate, open-finding severity, and a 0-100 health score with its value at the start of the window so you can see the trend. Reads the daily rollup, so it agrees with the dashboard and costs one query. Prefer this over listing runs when the question is 'what needs attention?'.
Python: aos.fleet.health() · Wire: POST /api/v1/rpc/fleet_health
| Parameter | Type | Required | Description |
|---|---|---|---|
days | number | No | How many days back to summarise. Default 7. |
folders.createCreate a new agent folder. Name must be unique in the workspace. File agents into it via agents.update(folder_id) or agents.create(folder_id).
Python: aos.folders.create() · Wire: POST /api/v1/rpc/folders_create
| Parameter | Type | Required | Description |
|---|---|---|---|
name | string | Yes | Folder display name. Must be unique within the workspace. |
folders.deleteDelete an agent folder. Its agents are moved to uncategorized (folder_id cleared), not deleted.
Python: aos.folders.delete() · Wire: POST /api/v1/rpc/folders_delete
| Parameter | Type | Required | Description |
|---|---|---|---|
folderId / folder_id | string | Yes | Folder UUID to delete. Its agents are moved to uncategorized, not deleted. |
folders.listList the workspace's agent folders with each folder's agent count. Use a folder's id with agents.list(folder_id) or agents.update(folder_id).
Python: aos.folders.list() · Wire: POST /api/v1/rpc/folders_list
integrations.listList third-party integrations and their connection status (Gmail, Google Sheets, GitHub, Slack, etc., all via Composio). Read-only: connect them at /integrations in the dashboard (owner/admin only).
Python: aos.integrations.list() · Wire: POST /api/v1/rpc/integrations_list
marketplace.installInstall a marketplace template into the target workspace as a regular agent (status='paused' so you can review before activating). Generates a default API key shown once in the response. Returns agent_id, the plaintext api_key, and the template's setup_notes (steps the user still has to complete, such as connecting Gmail, filling placeholders or pinning resources).
Python: aos.marketplace.install() · Wire: POST /api/v1/rpc/marketplace_install_template
| Parameter | Type | Required | Description |
|---|---|---|---|
templateId / template_id | string | Yes | Template id (slug), e.g. 'welcome-onboarding'. Use marketplace.listTemplates first to discover available ids. |
marketplace.listTemplatesList the marketplace's agent templates with their id, description, category, model and tools, to install with marketplace.install.
Python: aos.marketplace.list_templates() · Wire: POST /api/v1/rpc/marketplace_list_templates
members.inviteInvite a user to the workspace by email. Sends an invite email and returns an invite link. Owner/admin only. 'member' role requires Team/Enterprise plan.
Python: aos.members.invite() · Wire: POST /api/v1/rpc/members_invite
| Parameter | Type | Required | Description |
|---|---|---|---|
email | string | Yes | Email address to invite. |
role | "admin" | "member" | Yes | Role to grant. 'member' requires Team/Enterprise plan. |
members.listList workspace members (with email and role) and pending invites. Useful for auditing who has access.
Python: aos.members.list() · Wire: POST /api/v1/rpc/members_list
members.removeRemove a member from the workspace. Cannot remove the last owner. Owner/admin only.
Python: aos.members.remove() · Wire: POST /api/v1/rpc/members_remove
| Parameter | Type | Required | Description |
|---|---|---|---|
memberId / member_id | string | Yes | Workspace member row UUID (from members.list). |
notifications.listList recent workspace notifications (agent failures, approvals, system events). Filter to unread_only to process the inbox.
Python: aos.notifications.list() · Wire: POST /api/v1/rpc/notifications_list
| Parameter | Type | Required | Description |
|---|---|---|---|
unreadOnly / unread_only | boolean | No | Return only unread notifications. |
limit | number | No | Max results to return. Default 20. |
notifications.markReadMark notifications as read. Pass notification_id to mark a single one, or omit to mark all unread notifications in the workspace as read.
Python: aos.notifications.mark_read() · Wire: POST /api/v1/rpc/notifications_mark_read
| Parameter | Type | Required | Description |
|---|---|---|---|
notificationId / notification_id | string | No | ID of a specific notification to mark read. Omit to mark ALL unread notifications in the workspace as read. |
reports.deleteDelete a report. Owner/admin only.
Python: aos.reports.delete() · Wire: POST /api/v1/rpc/reports_delete
| Parameter | Type | Required | Description |
|---|---|---|---|
reportId / report_id | string | Yes | Report UUID. |
reports.generateGenerate an AI report synchronously. Supports run_summary (requires run_id), agent_daily, agent_weekly, and on_demand (period reports require agent_id + period_start + period_end). Returns report_id when complete.
Python: aos.reports.generate() · Wire: POST /api/v1/rpc/reports_generate
| Parameter | Type | Required | Description |
|---|---|---|---|
type | object | Yes | Report type. 'run_summary' requires run_id. Period types (agent_daily, agent_weekly, workspace_weekly, on_demand) require agent_id + period_start + period_end. |
agentId / agent_id | string | No | Agent UUID. Required for period reports. |
runId / run_id | string | No | Run UUID. Required for run_summary. |
periodStart / period_start | string | No | ISO 8601 start of the period. Required for period reports. |
periodEnd / period_end | string | No | ISO 8601 end of the period. Required for period reports. |
reports.getGet a single report including full markdown content (content_md). Use after reports.list or reports.generate.
Python: aos.reports.get() · Wire: POST /api/v1/rpc/reports_get
| Parameter | Type | Required | Description |
|---|---|---|---|
reportId / report_id | string | Yes | Report UUID. |
reports.listList AI-generated reports for the workspace. Filter by agent, status, or limit. Returns id, type, status, summary, and period; use reports.get for full markdown content.
Python: aos.reports.list() · Wire: POST /api/v1/rpc/reports_list
| Parameter | Type | Required | Description |
|---|---|---|---|
agentId / agent_id | string | No | Filter by agent. Omit for workspace-wide. |
status | "generating" | "ready" | "failed" | No | Filter by status. Omit for all. |
limit | number | No | Max results to return. Default 20. |
resources.createUpload a text resource into the workspace. Returns the saved filename. Pin it on an agent via agents.update.pinned_resource_ids to inject the content into that agent's system prompt.
Python: aos.resources.create() · Wire: POST /api/v1/rpc/resources_create
| Parameter | Type | Required | Description |
|---|---|---|---|
filename | string | Yes | Simple filename (no path separators), e.g. 'prospects.csv'. |
content | string | Yes | Text content of the file. Max 10 MB after UTF-8 encoding. |
mimeType / mime_type | object | No | Content mime type. Inferred from filename extension when omitted. |
resources.deleteDelete a workspace resource by filename. Removes the file from storage and any pinned references resolve as missing on next agent run.
Python: aos.resources.delete() · Wire: POST /api/v1/rpc/resources_delete
| Parameter | Type | Required | Description |
|---|---|---|---|
filename | string | Yes | Filename to delete (must already exist in this workspace). |
resources.listList workspace resource files (uploaded text/markdown/csv/json/html documents that agents can read at runtime).
Python: aos.resources.list() · Wire: POST /api/v1/rpc/resources_list
runs.cancelCancel a currently running run.
Python: aos.runs.cancel() · Wire: POST /api/v1/rpc/runs_cancel
| Parameter | Type | Required | Description |
|---|---|---|---|
runId / run_id | string | Yes | Run UUID. |
runs.eventsGet the event log for a run: tool calls, LLM steps, errors. Use for debugging.
Python: aos.runs.events() · Wire: POST /api/v1/rpc/runs_get_events
| Parameter | Type | Required | Description |
|---|---|---|---|
runId / run_id | string | Yes | Run UUID. |
limit | number | No |
runs.getGet full detail for a single run, including output and timing.
Python: aos.runs.get() · Wire: POST /api/v1/rpc/runs_get
| Parameter | Type | Required | Description |
|---|---|---|---|
runId / run_id | string | Yes | Run UUID. |
runs.invokeInvoke a hosted agent synchronously and return the result. Use to test agents or trigger them manually. Waits up to 5 minutes. Optionally use conversation memory: pass start_session=true on the first turn (the response returns session_id), then pass that session_id on later turns. Or pass history[] for stateless multi-turn. Pass at most one of session_id, start_session, history.
Python: aos.runs.invoke() · Wire: POST /api/v1/rpc/runs_invoke
| Parameter | Type | Required | Description |
|---|---|---|---|
agentId / agent_id | string | Yes | Agent UUID. |
input | Record<string, unknown> | No | Input passed to the agent. Shape depends on the agent. |
promptVariables / prompt_variables | Record<string, string> | No | Values for the agent's prompt_variables. Each key matches a {{KEY}} placeholder in the system prompt. |
sessionId / session_id | string | No | Resume a stateful conversation. The id must already exist: an unknown id is an error, not a new session. |
startSession / start_session | boolean | No | Begin a new stateful conversation. The response returns the server-assigned session_id to pass on later turns. |
history | Array<{ role: "user" | "assistant"; content: string }> | No | Stateless multi-turn: prior user/assistant turns prepended before this input. AgentOS persists nothing. |
externalUserId / external_user_id | string | No | Opaque end-user identifier (e.g. a Firebase uid), recorded on the conversation. Only meaningful with session_id or start_session. |
runs.listList recent runs for a specific agent or workspace-wide.
Python: aos.runs.list() · Wire: POST /api/v1/rpc/runs_list
| Parameter | Type | Required | Description |
|---|---|---|---|
agentId / agent_id | string | No | Filter by agent. Omit for workspace-wide. |
status | "running" | "completed" | "failed" | "cancelled" | No | |
limit | number | No | Max results to return. Default 20. |
schedules.deleteRemove an agent's schedule. The agent is no longer invoked on a recurring basis (manual / SDK invokes still work).
Python: aos.schedules.delete() · Wire: POST /api/v1/rpc/schedules_delete
| Parameter | Type | Required | Description |
|---|---|---|---|
agentId / agent_id | string | Yes | Agent UUID. |
schedules.getGet the schedule configured for an agent (one schedule per agent max). Returns null when no schedule exists.
Python: aos.schedules.get() · Wire: POST /api/v1/rpc/schedules_get
| Parameter | Type | Required | Description |
|---|---|---|---|
agentId / agent_id | string | Yes | Agent UUID. |
schedules.upsertCreate or update an agent's schedule. Supports daily and weekly frequency with optional hour_of_day (0-23), minute_of_hour (0-59), and IANA timezone (e.g. 'America/New_York'); defaults to 00:00 UTC. The dispatcher invokes the agent with the configured input JSON.
Python: aos.schedules.upsert() · Wire: POST /api/v1/rpc/schedules_upsert
| Parameter | Type | Required | Description |
|---|---|---|---|
agentId / agent_id | string | Yes | Agent UUID. |
frequency | "daily" | "weekly" | Yes | |
dayOfWeek / day_of_week | number | null | No | 0=Sunday … 6=Saturday. Required when frequency='weekly'. |
hourOfDay / hour_of_day | number | No | Local hour (0-23) at which the schedule fires. Defaults to 0 (midnight). |
minuteOfHour / minute_of_hour | number | No | Local minute (0-59) offset within the hour. Defaults to 0. |
timezone | string | No | IANA timezone name, e.g. 'America/New_York', 'Europe/Lisbon'. Defaults to 'UTC'. |
input | Record<string, unknown> | No | Input passed to the agent on each run. JSON object. |
enabled | boolean | No |
tools.createCreate a custom HTTP tool that hosted agents can call.
Python: aos.tools.create() · Wire: POST /api/v1/rpc/tools_create_workspace
| Parameter | Type | Required | Description |
|---|---|---|---|
name | string | Yes | Unique tool name, e.g. 'fetch_invoice'. |
description | string | No | What this tool does. The AI uses it to decide when to call it. |
method | "GET" | "POST" | Yes | |
url | string | Yes | Absolute URL the tool will call. |
authSecret / auth_secret | string | No | Optional Bearer token. Stored encrypted. |
tools.deleteDelete a custom workspace tool.
Python: aos.tools.delete() · Wire: POST /api/v1/rpc/tools_delete_workspace
| Parameter | Type | Required | Description |
|---|---|---|---|
toolId / tool_id | string | Yes | Tool UUID. |
tools.listBuiltinList all built-in tools available to hosted agents (e.g. web_search, read_url, read_resource). Provider-specific actions (Gmail, Sheets, GitHub, etc.) come from Composio toolkits.
Python: aos.tools.list_builtin() · Wire: POST /api/v1/rpc/tools_list_builtin
tools.listComposioList Composio-backed actions available to this workspace, grouped by toolkit (e.g. github, slack). Each action's tool_name is the exact value to put into agents.tools[] (e.g. 'composio_GITHUB_CREATE_ISSUE'). Returns empty toolkits if no Composio apps are connected; direct the user to /integrations to connect one (owner/admin only).
Python: aos.tools.list_composio() · Wire: POST /api/v1/rpc/tools_list_composio
tools.listWorkspaceList custom HTTP tools configured for this workspace.
Python: aos.tools.list_workspace() · Wire: POST /api/v1/rpc/tools_list_workspace
| Parameter | Type | Required | Description |
|---|---|---|---|
enabledOnly / enabled_only | boolean | No | Only return enabled tools. |
workspaces.listList the workspaces this key can access. A personal key sees every workspace you belong to, with your role; a workspace key sees its own.
Python: aos.workspaces.list() · Wire: POST /api/v1/rpc/workspaces_list