Skip to content

Commit 918896e

Browse files
committed
add example docs to python agent stuff
1 parent e39a311 commit 918896e

6 files changed

Lines changed: 86 additions & 8 deletions

File tree

src/runloop_api_client/sdk/agent.py

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,19 @@
1313

1414

1515
class Agent:
16-
"""Wrapper around synchronous agent operations."""
16+
"""Wrapper around synchronous agent operations.
17+
18+
This class provides a Pythonic interface for interacting with agents,
19+
including retrieving agent information.
20+
21+
Example:
22+
>>> agent = runloop.agent.create_from_npm(
23+
... name="my-agent",
24+
... package_name="@runloop/example-agent"
25+
... )
26+
>>> info = agent.get_info()
27+
>>> print(info.name)
28+
"""
1729

1830
def __init__(
1931
self,

src/runloop_api_client/sdk/async_.py

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -549,11 +549,22 @@ class AsyncAgentOps:
549549
"""High-level async manager for creating and managing agents.
550550
551551
Accessed via ``runloop.agent`` from :class:`AsyncRunloopSDK`, provides
552-
coroutines to create, retrieve, and list agents.
552+
coroutines to create, retrieve, and list agents from various sources (npm, pip, git, object storage).
553553
554554
Example:
555555
>>> runloop = AsyncRunloopSDK()
556-
>>> agent = await runloop.agent.create(name="my-agent")
556+
>>> # Create agent from NPM package
557+
>>> agent = await runloop.agent.create_from_npm(
558+
... name="my-agent",
559+
... package_name="@runloop/example-agent"
560+
... )
561+
>>> # Create agent from Git repository
562+
>>> agent = await runloop.agent.create_from_git(
563+
... name="git-agent",
564+
... repository="https://github.com/user/agent-repo",
565+
... ref="main"
566+
... )
567+
>>> # List all agents
557568
>>> agents = await runloop.agent.list(limit=10)
558569
"""
559570

src/runloop_api_client/sdk/async_agent.py

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,19 @@
1313

1414

1515
class AsyncAgent:
16-
"""Async wrapper around agent operations."""
16+
"""Async wrapper around agent operations.
17+
18+
This class provides an asynchronous interface for interacting with agents,
19+
including retrieving agent information.
20+
21+
Example:
22+
>>> agent = await runloop.agent.create_from_npm(
23+
... name="my-agent",
24+
... package_name="@runloop/example-agent"
25+
... )
26+
>>> info = await agent.get_info()
27+
>>> print(info.name)
28+
"""
1729

1830
def __init__(
1931
self,

src/runloop_api_client/sdk/async_devbox.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ class AsyncDevbox:
5454
management.
5555
5656
Example:
57-
>>> devbox = await sdk.devbox.create(name="my-devbox")
57+
>>> devbox = await runloop.devbox.create(name="my-devbox")
5858
>>> async with devbox:
5959
... result = await devbox.cmd.exec("echo 'hello'")
6060
... print(await result.stdout())

src/runloop_api_client/sdk/devbox.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ class Devbox:
5454
The Devbox class supports context manager protocol for automatic cleanup.
5555
5656
Example:
57-
>>> with sdk.devbox.create(name="my-devbox") as devbox:
57+
>>> with runloop.devbox.create(name="my-devbox") as devbox:
5858
... result = devbox.cmd.exec("echo 'hello'")
5959
... print(result.stdout())
6060
# Devbox is automatically shutdown on exit

src/runloop_api_client/sdk/sync.py

Lines changed: 45 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -545,11 +545,22 @@ class AgentOps:
545545
"""High-level manager for creating and managing agents.
546546
547547
Accessed via ``runloop.agent`` from :class:`RunloopSDK`, provides methods to
548-
create, retrieve, and list agents.
548+
create, retrieve, and list agents from various sources (npm, pip, git, object storage).
549549
550550
Example:
551551
>>> runloop = RunloopSDK()
552-
>>> agent = runloop.agent.create(name="my-agent")
552+
>>> # Create agent from NPM package
553+
>>> agent = runloop.agent.create_from_npm(
554+
... name="my-agent",
555+
... package_name="@runloop/example-agent"
556+
... )
557+
>>> # Create agent from Git repository
558+
>>> agent = runloop.agent.create_from_git(
559+
... name="git-agent",
560+
... repository="https://github.com/user/agent-repo",
561+
... ref="main"
562+
... )
563+
>>> # List all agents
553564
>>> agents = runloop.agent.list(limit=10)
554565
"""
555566

@@ -587,6 +598,13 @@ def create_from_npm(
587598
) -> Agent:
588599
"""Create an agent from an NPM package.
589600
601+
Example:
602+
>>> agent = runloop.agent.create_from_npm(
603+
... name="my-npm-agent",
604+
... package_name="@runloop/example-agent",
605+
... npm_version="^1.0.0"
606+
... )
607+
590608
:param package_name: NPM package name
591609
:type package_name: str
592610
:param npm_version: NPM version constraint, defaults to None
@@ -627,6 +645,13 @@ def create_from_pip(
627645
) -> Agent:
628646
"""Create an agent from a Pip package.
629647
648+
Example:
649+
>>> agent = runloop.agent.create_from_pip(
650+
... name="my-pip-agent",
651+
... package_name="runloop-example-agent",
652+
... pip_version=">=1.0.0"
653+
... )
654+
630655
:param package_name: Pip package name
631656
:type package_name: str
632657
:param pip_version: Pip version constraint, defaults to None
@@ -666,6 +691,14 @@ def create_from_git(
666691
) -> Agent:
667692
"""Create an agent from a Git repository.
668693
694+
Example:
695+
>>> agent = runloop.agent.create_from_git(
696+
... name="my-git-agent",
697+
... repository="https://github.com/user/agent-repo",
698+
... ref="main",
699+
... agent_setup=["npm install", "npm run build"]
700+
... )
701+
669702
:param repository: Git repository URL
670703
:type repository: str
671704
:param ref: Optional Git ref (branch/tag/commit), defaults to main/HEAD
@@ -700,6 +733,16 @@ def create_from_object(
700733
) -> Agent:
701734
"""Create an agent from a storage object.
702735
736+
Example:
737+
>>> # First upload agent code as an object
738+
>>> obj = runloop.storage_object.upload_from_dir("./my-agent")
739+
>>> # Then create agent from the object
740+
>>> agent = runloop.agent.create_from_object(
741+
... name="my-object-agent",
742+
... object_id=obj.id,
743+
... agent_setup=["chmod +x setup.sh", "./setup.sh"]
744+
... )
745+
703746
:param object_id: Storage object ID
704747
:type object_id: str
705748
:param agent_setup: Setup commands to run after unpacking, defaults to None

0 commit comments

Comments
 (0)