AOS Work Agent Runtime System Tools and Action Catalog
1. Scope
This chapter documents the System Tools exposed to agents by the current AOS Work Agent Runtime and the AOS Work business Actions that can be discovered through workbench_action_search and executed through workbench_action_execute.
The two capability layers must be distinguished:
- The Runtime currently provides 10 fixed System Tools.
- AOS Work currently provides 43 business Actions in 8 modules: 22 user-level, 17 administrator-level, and 4 super-administrator-level Actions.
workbench_action_searchreturns Action documentation and input Schemas. A search result does not grant execution permission.- Every call is validated against the current registered Schema and remains subject to the current Run authorization and user permissions.
2. The Runtime's 10 System Tools
| Tool | Type | Purpose and boundary |
|---|---|---|
read | File | Reads a byte range from a regular file in the Workspace. It can read text files such as SKILL.md, configuration, and code, and can return the file's SHA-256 before an edit. |
write | File | Creates a new regular file and any missing parent directories. It fails if the target already exists or the content exceeds 128 KiB. |
edit | File | Atomically replaces a bounded byte range in an existing file. The current SHA-256 must match, preventing a stale version from overwriting a concurrent change. It is suitable for multiple bounded edits to large files. |
delete | File | Deletes a regular file only when its SHA-256 matches the expected value. Directories and symbolic links are rejected. |
exec | Process | Starts a program in the sandbox Workspace using argv arguments rather than a shell command string. It returns a process ID and status and is used for tests, builds, and directory checks. |
process | Process | Polls (poll) or stops (stop) a process using a real process ID returned by exec. |
session_status | Session | Returns the current AOS Work domain, Runtime user, Workspace, session, Run, and Attempt identifiers. It provides the Workspace ID needed when generating links to Workspace output files. |
workbench_action_search | Business Action | Searches the AOS Work business-action catalog by name, description, or stable key and returns Action documentation and input Schemas. Results are filtered by the current Run user's action access, not by whether an Explore resource is installed. It searches for business Actions; a result does not grant authorization. |
workbench_action_execute | Business Action | Executes a business Action returned by search using the exact actionKey and Schema-conforming arguments. AOS Work validates the current registered Schema. Runtime supplies trusted Run and Tool Execution identities; the agent must not invent caller identity or HTTP request details. |
memory_update | Memory | Appends a concise, durable fact or correction to user memory. Use it only when the user explicitly requests persistence; do not store temporary task details or sensitive information. |
3. Common System Tool Boundaries
3.1 Files and Processes
read,write,edit, anddeleteoperate only on trusted paths under the/workspaceWorkspace and use Workspace-relative paths. Changes to read-only paths are rejected.- File edits and deletion use SHA-256 for concurrency protection. If the hash does not match, read the current file and evaluate the change instead of overwriting an unknown newer version.
- A nonzero exit code from
execmeans the command failed. Inspectstderr, correct the cause, and then decide the next step; do not repeat the same failing command unchanged. processaccepts only a process ID actually returned byexec; do not guess or construct one.
3.2 Business Actions
- Before every execution, use
workbench_action_searchto find the specific business Action, then pass the exact fields from that result toworkbench_action_execute. - Business Actions access AOS Work control-plane capabilities such as resource installation, scheduled tasks, session queries, model configuration, and user management. They are not direct database access.
- Action search accepts a
queryof up to 200 characters.limitdefaults to 10 and ranges from 1 to 20. One empty search cannot retrieve the full catalog; search by module or specific function. - This Runtime does not provide file-upload, network-request, browser, or direct-database tools. Do not describe
execor the file tools as those capabilities.
4. AOS Work Action Module Overview
| Module | Count | Access | What an agent can do |
|---|---|---|---|
| Resource discovery and installation | 7 | user | Search resources, read details, install, enable or disable, uninstall, and list sidebar Apps |
| Third-party integration invocation | 1 | user | Invoke third-party Actions declared by an installed Connector or App |
| Scheduled tasks | 9 | user | Query project and model options, create or update schedules, pause or resume, run now, remove, and view history |
| Session and Run queries | 4 | user | Search sessions, read details and messages, and query Run status and saved execution traces |
| AI model configuration management | 9 | admin | Search, create, update, enable or disable, test, and remove model configurations |
| User and temporary Credits management | 8 | admin | Search, create, update, reset passwords, and remove users, and manage temporary Credits |
| Project creation | 1 | user | Create a Workspace project and Runtime root directory for the current user |
| Super-administrator session and Run queries | 4 | super_admin | Query sessions, messages, and Run execution details for a specified user |
| Total | 43 | user 22 / admin 17 / super_admin 4 |
The risk metadata has these meanings:
read: a read or query operation. It is not guaranteed to avoid external calls; for example, a model connectivity test calls the provider.write: a create or update operation.high: a high-risk operation such as deletion, password reset, or third-party invocation.
Risk is metadata, not an automatic approval mechanism. The generic execution entry point does not currently pause for human confirmation solely because risk=high.
5. Resource Discovery and Installation (7 Actions)
| Action Key | Function | Main parameters | Risk |
|---|---|---|---|
explore.search | Search all visible resources and return the filtered total | Optional keyword, resourceType, page, pageSize | read |
explore.get | Read resource details and included Skills | exploreItemId | read |
explore.list-installed | List installed resources with pagination and optional enabled-state filtering | Optional keyword, resourceType, enabled, and pagination | read |
explore.install | Install and enable the current version of a resource | exploreItemId | write |
explore.set-enabled | Enable or disable an installed resource | exploreItemId, enabled | write |
explore.uninstall | Uninstall a resource and clean up materialized capabilities according to business rules | exploreItemId | high |
explore.list-sidebar-apps | List installed and enabled Apps that can appear in the sidebar | None | read |
Boundaries:
- Use
explore.searchto answer which resources are available or how many exist. Useexplore.list-installedonly when the request specifically concerns installed resources. exploreItemIdis the Explore resource ID, not an installation-record ID.- Disabling does not uninstall materialized files. Uninstalling starts the resource-cleanup flow.
- Installing a resource and authorizing a third party are separate steps. Installation does not mean third-party credentials are available.
6. Third-party Integration Invocation (1 Action)
| Action Key | Function | Main parameters | Risk |
|---|---|---|---|
integration.invoke | Invoke a Connector or App Action declared in the Manifest of a resource installed for the current user | Required pluginKey, actionKey; optional params, connectionKey | high |
For each call:
- The outer AOS Work Action Key is always
integration.invoke. pluginKeyis the resource key orauthProviderKey.- The inner
actionKeyis the Action key declared by the resource Manifest. paramscontains the business parameters passed to the third-party Action.
The execution flow is: find the user's installed resource → match the resource Action → resolve user credentials as required by that Action → render the HTTP request from the Manifest → call the third party → extract response data.
Current limits and return semantics:
- Available third-party functions depend on the installed resource Manifest. One shared entry point does not mean there is only one third-party business function, and it does not permit arbitrary third-party API calls.
- Authenticated Actions use server-side user credentials. An Action that requires no authentication, or a resource whose authentication type is
none, can operate without credentials. - Although the Schema accepts
connectionKey, the current implementation does not use it to select a connection. Do not claim multi-connection switching based on this field. - The response contains
success,requestId,pluginKey, andactionKey; a successful response includesdata, while a failure includeserror. Check the innersuccessvalue. - The current timeout is 60 seconds and there is no automatic retry. A failed third-party write cannot be assumed to have had no side effects.
- This catalog does not query live user installation data and therefore does not enumerate the dynamic Actions installed for any specific user.
7. Scheduled Tasks (9 Actions)
| Action Key | Function | Main parameters | Risk |
|---|---|---|---|
scheduled-task.list-options | List explicit project and valid model options, with separate pagination for each list | Optional page, pageSize | read |
scheduled-task.list | List all scheduled tasks, schedules, and enabled states for the current user | Optional pagination | read |
scheduled-task.get | Read the complete configuration of one task | taskId | read |
scheduled-task.create | Create and enable a one-time or recurring task | Task configuration | write |
scheduled-task.update | Fully replace a task configuration while preserving its enabled state | taskId and task configuration | write |
scheduled-task.set-enabled | Pause or resume future automatic triggers | taskId, enabled | write |
scheduled-task.run-now | Trigger one new execution immediately | taskId | write |
scheduled-task.remove | Remove a task while preserving created sessions, execution history, and artifacts | taskId | high |
scheduled-task.list-runs | List execution history, including history for removed tasks | Optional taskId and pagination | read |
The common required fields for create and update are name, prompt, workspaceId, aiModelId, scheduleKind, and timezone.
| Schedule configuration | Fields and requirements |
|---|---|
| One-time | Set scheduleKind=one_time and provide runOnceAt |
| Recurring | Set scheduleKind=recurring and provide scheduleRrule and scheduleStartAt |
| End date | Optional scheduleEndAt |
| Time zone | Use an IANA time zone such as Asia/Shanghai; a date without an offset is interpreted in that time zone |
| Result notification | notifyInApp defaults to true |
The current RRULE implementation supports minute, hourly, daily, weekly, and monthly schedules with positive integer intervals. A weekly rule can specify one BYDAY; a monthly rule can specify BYMONTHDAY=1..31. Cron, BYHOUR, and multiple weekday values are not supported, and the string does not include an RRULE: prefix.
Boundaries:
- Before creation, use
scheduled-task.list-optionsto obtainworkspaces.list[].idandmodels.list[].value. An implicit Workspace from a standalone session cannot be used. scheduled-task.updateis a full configuration update. Callscheduled-task.getfirst and preserve unchanged fields.- Every trigger creates a new project session. Every
run-nowcreates a new execution, so it must not be repeated automatically merely to confirm success. - A triggered or
queuedresult does not mean the Run completed. Use the returnedruntimeRunIdwithchat.run.get. - Pausing or removing a task does not cancel a Run that has already started.
- The
taskPurposeparameter for system Memory-maintenance tasks is not exposed.
8. Session and Run Queries (4 Actions)
| Action Key | Function | Main parameters | Risk |
|---|---|---|---|
chat.session.search | Search all sessions visible to the current user, including standalone and project sessions | Optional title keyword, workspaceId, createdAtFrom, createdAtTo, and pagination | read |
chat.session.get | Read session details, project, model, and current activeRunId | sessionCode | read |
chat.session.list-messages | Read session messages, associated Run IDs, and saved execution traces | sessionCode; optional pagination | read |
chat.run.get | Query Run status, session and project, model, time, error, Token/Credits usage, and the Assistant/Tool execution flow | runId; optional pagination | read |
Boundaries:
- Session search matches titles. Without
workspaceId, it includes standalone sessions and sessions across all projects, excluding system Memory-maintenance and deleted sessions. createdAtFrom(inclusive) andcreatedAtTo(exclusive) filter session creation time and support one-sided ranges. For a two-sided range, the start must precede the end. Times must include a time zone such asZor+08:00; these fields do not filter message time or last activity.- Page 1 contains the latest messages, ordered chronologically within the page. Increase the page number to read older messages.
- Pagination in
chat.run.getapplies totimelineItems, ordered from the earliest execution event. - Obtain the target
runIdfrom the session'sactiveRunId, a message'srunId, or a scheduled-run record'sruntimeRunId. Do not substitute the scheduled-run recordidor databasechatRunId. chat.run.getreturns the persisted product projection and can lag behind live execution. An older Run can have no trace, and the Action does not return unpersisted live updates or hidden reasoning.- This module is query-only. It registers no Action for creating a session, sending a message, deleting a session, or canceling a Run.
9. AI Model Configuration Management (9 Actions)
Only administrator and super-administrator seats can access this module. It reuses the Admin Console model services.
| Action Key | Function | Main parameters | Risk |
|---|---|---|---|
admin.model.search | List configured models with pagination and optional provider filtering | Optional aiProviderId and pagination | read |
admin.model.get | Read the complete administrative model configuration | id | read |
admin.model.create | Create a model configuration without automatically testing connectivity | Required aiProviderId, aiModelName, displayName; optional model configuration | write |
admin.model.update | Update a saved model configuration | id, aiProviderId, aiModelName, displayName; optional model configuration | write |
admin.model.set-enabled | Enable or disable a model | id, enabled | write |
admin.model.test-connectivity | Test connectivity by provider and model name, including for an unsaved model | aiProviderId, aiModelName; optional capabilityCodes | read |
admin.model.test-existing | Test a saved model and persist its latest test state | id | write |
admin.model.list-role-options | List valid model options that can be configured for Roles | None | read |
admin.model.remove | Remove a saved model configuration | id | high |
Configurable values include the display name, icon source or file, model type (chat, embedding, or image), capability codes (the current Schema exposes image), context window, input/cached/output Credits rates, and enabled state. Rates are strings.
This module manages model configurations only. It currently registers no Action for creating providers, managing provider credentials, or assigning models to Roles. admin.model.list-role-options only reads candidate options.
10. User and Temporary Credits Management (8 Actions)
Only administrator and super-administrator seats can access this module. Existing user services continue to enforce restrictions for the target user.
| Action Key | Function | Main parameters | Risk |
|---|---|---|---|
admin.user.search | Search users by username, name, mobile number, department, or Role name | Optional keyword and pagination | read |
admin.user.create | Create a user and configure profile, Role, and seat | Required username, realName, roleId; optional contact, department, and seat fields | write |
admin.user.update | Merge updates to name, contact details, Role, department, and seat | Required userId, realName; optional profile fields | write |
admin.user.reset-password | Reset to the system's current default password and invalidate existing sessions according to business rules | userId | high |
admin.user.grant-credits | Grant temporary Credits with an explicit expiration time | userId, credits, expiresAt, scope | write |
admin.user.list-credit-grants | List temporary Credits grants with pagination | userId; optional enabled, keyword, and pagination | read |
admin.user.set-credit-grant-enabled | Enable or disable one temporary Credits grant | userId, grantId, enabled | write |
admin.user.remove | Remove a user and run the existing cleanup and session-invalidation flow | userId | high |
Boundaries:
- User update does not change the login name or password. Omitted optional fields remain unchanged.
creditsis a positive numeric string.scopesupportsperiod,daily, andboth.- This module manages temporary grants; it does not provide plan management, billing management, or arbitrary Credits configuration.
- There is currently no standalone
admin.user.getor user enable/disable Action.
11. Project Creation (1 Action)
| Action Key | Function | Main parameters | Risk |
|---|---|---|---|
workspace.create | Create a Workspace project and Runtime root directory for the current user and return the workspace ID for project conversations or scheduled tasks | Required name; optional description | write |
Projects are created only for the calling user. name allows up to 100 characters and must not be empty after trimming; description allows up to 500 characters.
12. Super-administrator Session and Run Queries (4 Actions)
Only super-administrator seats can access this module. An explicit target userId is required.
| Action Key | Function | Main parameters | Risk |
|---|---|---|---|
admin.chat.session.search | Search standalone and project sessions for a specified user | Required userId; optional keyword, workspaceId, createdAtFrom, createdAtTo, and pagination | read |
admin.chat.session.get | Read a specified user's session details, project, model, and current activeRunId | userId, sessionCode | read |
admin.chat.session.list-messages | Read a specified user's session messages, associated Run IDs, and saved execution traces | userId, sessionCode; optional pagination | read |
admin.chat.run.get | Query a specified user's Run status, execution flow, errors, and Token/Credits usage | userId, runId; optional pagination | read |
Boundaries:
- Find users through paginated
admin.user.searchcalls, then query each user separately. No Action returns all messages for all users in one call. - The target session or Run must belong to the target
userId; this field does not change the caller's identity. - Session creation-time filtering, message pagination, business Run IDs, and persisted traces follow the same rules as user-level session queries.
13. Action Discovery, Execution, and Authorization
The standard call flow is:
- The agent searches for the specific function with
workbench_action_search. - Runtime calls the AOS Work internal Action search interface.
- Search returns the Action documentation and input Schema the caller is allowed to discover.
- The agent uses the exact
actionKeyreturned by search and buildsargumentsaccording to the input Schema. - The agent calls
workbench_action_execute. - AOS Work validates the current registered Schema, Run authorization, and the user's current seat before invoking the business service.
- The agent checks the execution result and nested business response to confirm whether the Action actually completed.
Search again after a Schema or version change; do not reuse stale parameters. Pagination also differs by module. Resource discovery, administrator model, and user queries usually default to page=1,pageSize=10 with a Schema maximum of 1000. Session and scheduled-task queries usually default to page=1,pageSize=20 with a maximum of 100. Always follow the latest search Schema and business validation. Business IDs are strings.
actionVersion / schemaHash are optional compatibility metadata for older clients; execution uses the current registered Schema. Runtime injects trusted runId and toolExecutionId values, which are not business parameters supplied by the agent. When querying a target Run, arguments.runId is still supplied according to that Action's Schema.
Authorization and identity boundaries:
- The calling Run must exist and be in
QUEUED,STREAMING, orWAITING_HUMANstate. - The Run's persisted request Manifest must authorize the corresponding search or execution Tool.
- User identity is resolved from the Run and cannot be switched by passing an arbitrary user ID. A
userIdin an administrator Action is the business-operation target only. access=useroperates only on the calling user's own data. Invoking these Actions as an administrator does not automatically grant access to other users' data.access=adminrequires anADMINorSUPER_ADMINseat and remains subject to business-layer permission checks.access=super_adminrequires aSUPER_ADMINseat and uses an explicit targetuserIdto query that user's sessions, messages, and Runs.- Discovering an Action, accepting an execution request, or queueing a Run does not establish that the business operation completed.
14. Completion Criteria
- The Runtime's 10 System Tools and AOS Work's 43 business Actions are treated as separate capability layers.
- File edits and deletion use the current SHA-256, and process management uses a real process ID returned by
exec. - Before each business execution, search confirms the exact
actionKey, andargumentsconform to the current input Schema. - The current Run state, Tool authorization, user identity, access level, and business permission have been checked.
- A write or high-risk operation is not considered complete merely because it timed out, was queued, or its outer call succeeded.
- Scheduled tasks and Run queries use the correct Workspace, model,
runtimeRunId, orrunId. - Resource installation is not confused with third-party authorization, and the shared third-party entry point is not treated as arbitrary API access.
- The current Runtime is not described as providing file-upload, browser, network-request, or direct-database tools.