@runloop/api-client - v1.4.0
    Preparing search index...

    Class AgentOps

    Agent SDK interface for managing agents.

    The AgentOps class provides a high-level abstraction for managing AI agent entities. Agents can be sourced from npm, pip, git repositories, or object storage, and mounted into devboxes for execution.

    This interface is accessed via RunloopSDK.agent. You should construct a RunloopSDK instance and use it from there:

    const runloop = new RunloopSDK();
    const agent = await runloop.agent.create({
    name: 'my-npm-agent',
    source: {
    type: 'npm',
    npm: { package_name: '@my-org/agent' }
    }
    });
    const devbox = await agent.createDevbox({
    name: 'devbox-with-agent',
    agent_path: '/home/user/agent'
    });
    Index

    Methods

    • Create a new agent.

      Parameters

      • params: AgentCreateParams

        Parameters for creating the agent.

      • Optionaloptions: RequestOptions<unknown>

        Request options.

      Returns Promise<RunloopSDK.Agent>

      An Agent instance.

      Create an agent from an NPM package:

      const runloop = new RunloopSDK();
      const agent = await runloop.agent.create({
      name: 'my-agent',
      source: {
      type: 'npm',
      npm: {
      package_name: '@my-org/agent',
      npm_version: '1.0.0'
      }
      }
      });
      console.log(`Created agent: ${agent.id}`);

      Create an agent from a Git repository:

      const runloop = new RunloopSDK();
      const agent = await runloop.agent.create({
      name: 'my-git-agent',
      source: {
      type: 'git',
      git: {
      repository: 'https://github.com/my-org/agent-repo',
      ref: 'main'
      }
      }
      });

      Create an agent from a storage object:

      const runloop = new RunloopSDK();
      // First, upload your agent code as a storage object
      const storageObject = await runloop.storageObject.uploadFromDir(
      './my-agent',
      { name: 'agent-package' }
      );

      // Then create an agent from it
      const agent = await runloop.agent.create({
      name: 'my-object-agent',
      source: {
      type: 'object',
      object: {
      object_id: storageObject.id
      }
      }
      });
    • Create an agent from an NPM package.

      Parameters

      • params: Omit<AgentCreateParams, "source"> & {
            package_name: string;
            npm_version?: string;
            registry_url?: string;
            agent_setup?: string[];
        }

        Parameters for creating the agent.

        • package_name

          NPM package name.

        • npm_version

          NPM version constraint.

        • registry_url

          NPM registry URL.

        • agent_setup

          Setup commands to run after installation.

        • package_name: string

          NPM package name.

        • Optionalnpm_version?: string

          NPM version constraint.

        • Optionalregistry_url?: string

          NPM registry URL.

        • Optionalagent_setup?: string[]

          Setup commands to run after installation.

      • Optionaloptions: RequestOptions<unknown>

        Request options.

      Returns Promise<RunloopSDK.Agent>

      An Agent instance.

      Basic usage:

      const runloop = new RunloopSDK();
      const agent = await runloop.agent.createFromNpm({
      name: 'my-npm-agent',
      package_name: '@my-org/agent'
      });

      With version and setup commands:

      const runloop = new RunloopSDK();
      const agent = await runloop.agent.createFromNpm({
      name: 'my-npm-agent',
      package_name: '@my-org/agent',
      npm_version: '^1.2.0',
      agent_setup: ['npm run build', 'chmod +x ./run.sh']
      });

      Using a private registry:

      const runloop = new RunloopSDK();
      const agent = await runloop.agent.createFromNpm({
      name: 'private-agent',
      package_name: '@my-org/private-agent',
      registry_url: 'https://npm.mycompany.com'
      });
    • Create an agent from a Pip package.

      Parameters

      • params: Omit<AgentCreateParams, "source"> & {
            package_name: string;
            pip_version?: string;
            registry_url?: string;
            agent_setup?: string[];
        }

        Parameters for creating the agent.

        • package_name

          Pip package name.

        • pip_version

          Pip version constraint.

        • registry_url

          Pip registry URL.

        • agent_setup

          Setup commands to run after installation.

        • package_name: string

          Pip package name.

        • Optionalpip_version?: string

          Pip version constraint.

        • Optionalregistry_url?: string

          Pip registry URL.

        • Optionalagent_setup?: string[]

          Setup commands to run after installation.

      • Optionaloptions: RequestOptions<unknown>

        Request options.

      Returns Promise<RunloopSDK.Agent>

      An Agent instance.

      Basic usage:

      const runloop = new RunloopSDK();
      const agent = await runloop.agent.createFromPip({
      name: 'my-python-agent',
      package_name: 'my-agent-package'
      });

      With version constraint:

      const runloop = new RunloopSDK();
      const agent = await runloop.agent.createFromPip({
      name: 'my-python-agent',
      package_name: 'my-agent-package',
      pip_version: '>=1.0.0,<2.0.0'
      });

      Using a private PyPI registry:

      const runloop = new RunloopSDK();
      const agent = await runloop.agent.createFromPip({
      name: 'private-python-agent',
      package_name: 'my-private-agent',
      registry_url: 'https://pypi.mycompany.com/simple',
      agent_setup: ['python setup.py install']
      });
    • Create an agent from a Git repository.

      Parameters

      • params: Omit<AgentCreateParams, "source"> & {
            repository: string;
            ref?: string;
            agent_setup?: string[];
        }

        Parameters for creating the agent.

        • repository

          Git repository URL.

        • ref

          Optional Git ref (branch/tag/commit), defaults to main/HEAD.

        • agent_setup

          Setup commands to run after cloning.

        • repository: string

          Git repository URL.

        • Optionalref?: string

          Optional Git ref (branch/tag/commit), defaults to main/HEAD.

        • Optionalagent_setup?: string[]

          Setup commands to run after cloning.

      • Optionaloptions: RequestOptions<unknown>

        Request options.

      Returns Promise<RunloopSDK.Agent>

      An Agent instance.

      Basic usage with public repository:

      const runloop = new RunloopSDK();
      const agent = await runloop.agent.createFromGit({
      name: 'my-git-agent',
      repository: 'https://github.com/my-org/agent-repo'
      });

      With specific branch and setup commands:

      const runloop = new RunloopSDK();
      const agent = await runloop.agent.createFromGit({
      name: 'my-git-agent',
      repository: 'https://github.com/my-org/agent-repo',
      ref: 'develop',
      agent_setup: [
      'npm install',
      'npm run build'
      ]
      });

      Using a specific commit:

      const runloop = new RunloopSDK();
      const agent = await runloop.agent.createFromGit({
      name: 'my-git-agent',
      repository: 'https://github.com/my-org/agent-repo',
      ref: 'a1b2c3d4e5f6'
      });
    • Create an agent from a storage object.

      Parameters

      • params: Omit<AgentCreateParams, "source"> & {
            object_id: string;
            agent_setup?: string[];
        }

        Parameters for creating the agent.

        • object_id

          Storage object ID.

        • agent_setup

          Setup commands to run after unpacking.

        • object_id: string

          Storage object ID.

        • Optionalagent_setup?: string[]

          Setup commands to run after unpacking.

      • Optionaloptions: RequestOptions<unknown>

        Request options.

      Returns Promise<RunloopSDK.Agent>

      An Agent instance.

      Upload agent code and create agent:

      const runloop = new RunloopSDK();

      // Upload agent directory as a storage object
      const storageObject = await runloop.storageObject.uploadFromDir(
      './my-agent-code',
      { name: 'agent-package' }
      );

      // Create agent from the storage object
      const agent = await runloop.agent.createFromObject({
      name: 'my-object-agent',
      object_id: storageObject.id
      });

      With setup commands:

      const runloop = new RunloopSDK();

      const storageObject = await runloop.storageObject.uploadFromDir(
      './my-agent-code',
      { name: 'agent-package' }
      );

      const agent = await runloop.agent.createFromObject({
      name: 'my-object-agent',
      object_id: storageObject.id,
      agent_setup: [
      'chmod +x setup.sh',
      './setup.sh',
      'pip install -r requirements.txt'
      ]
      });

      Complete workflow: storage object → agent → devbox:

      const runloop = new RunloopSDK();

      // 1. Upload agent code
      const storageObject = await runloop.storageObject.uploadFromDir(
      './my-agent',
      { name: 'agent-v1' }
      );

      // 2. Create agent from storage object
      const agent = await runloop.agent.createFromObject({
      name: 'my-agent',
      object_id: storageObject.id
      });

      // 3. Create devbox with agent mounted
      const devbox = await runloop.devbox.create({
      name: 'devbox-with-agent',
      mounts: [{
      type: 'agent_mount',
      agent_id: agent.id,
      agent_name: null,
      agent_path: '/home/user/agent'
      }]
      });
    • Get an agent object by its ID.

      Parameters

      • id: string

        The ID of the agent.

      Returns RunloopSDK.Agent

      An Agent instance.

      const runloop = new RunloopSDK();
      const agent = runloop.agent.fromId('agt_1234567890');

      // Get agent information
      const info = await agent.getInfo();
      console.log(`Agent name: ${info.name}`);
    • List agents with optional filters (paginated).

      Parameters

      • Optionalparams: AgentListParams

        Optional filter parameters.

      • Optionaloptions: RequestOptions<unknown>

        Request options.

      Returns Promise<RunloopSDK.Agent[]>

      An array of Agent instances.

      List all agents:

      const runloop = new RunloopSDK();
      const agents = await runloop.agent.list();

      for (const agent of agents) {
      const info = await agent.getInfo();
      console.log(`${info.name}: ${info.source?.type}`);
      }

      List with filters:

      const runloop = new RunloopSDK();
      const agents = await runloop.agent.list({
      name: 'my-agent',
      limit: 10
      });