Skip to main content

No project description provided

Project description

Table of Contents generated with DocToc

Skyvern Langchain

This is a langchain integration for Skyvern.

Installation

pip install skyvern-langchain

To run the example scenarios, you might need to install other langchain dependencies.

pip install langchain-openai
pip install langchain-community

Usage

Run a task(sync) with skyvern agent (calling skyvern agent function directly in the tool)

sync task won't return until the task is finished.

:warning: :warning: if you want to run this code block, you need to run skyvern init --openai-api-key <your_openai_api_key> command in your terminal to set up skyvern first.

import asyncio
from dotenv import load_dotenv
from langchain_openai import ChatOpenAI
from langchain.agents import initialize_agent, AgentType
from skyvern_langchain.agent import SkyvernTaskTools

load_dotenv()

llm = ChatOpenAI(model="gpt-4o", temperature=0)

skyvern_task_tools = SkyvernTaskTools()

agent = initialize_agent(
    llm=llm,
    tools=[skyvern_task_tools.run],
    verbose=True,
    agent=AgentType.STRUCTURED_CHAT_ZERO_SHOT_REACT_DESCRIPTION,
)


async def main():
    # to run skyvern agent locally, must run `skyvern init` first
    print(await agent.ainvoke("Run a task with Skyvern. The task is about 'Navigate to the Hacker News homepage and get the top 3 posts.'"))


if __name__ == "__main__":
    asyncio.run(main())

Run a task(async) with skyvern agent (calling skyvern agent function directly in the tool)

async task will return immediately and the task will be running in the background. You can use SkyvernTaskTools().get tool to poll the task information until the task is finished.

:warning: :warning: if you want to run this code block, you need to run skyvern init --openai-api-key <your_openai_api_key> command in your terminal to set up skyvern first.

import asyncio
from dotenv import load_dotenv
from langchain_openai import ChatOpenAI
from langchain.agents import initialize_agent, AgentType
from skyvern_langchain.agent import SkyvernTaskTools

from langchain_community.tools.sleep.tool import SleepTool

load_dotenv()

llm = ChatOpenAI(model="gpt-4o", temperature=0)

skyvern_task_tools = SkyvernTaskTools()

agent = initialize_agent(
    llm=llm,
    tools=[
        skyvern_task_tools.dispatch,
        skyvern_task_tools.get,
        SleepTool(),
    ],
    verbose=True,
    agent=AgentType.STRUCTURED_CHAT_ZERO_SHOT_REACT_DESCRIPTION,
)


async def main():
    # use sleep tool to set up the polling logic until the task is completed, if you only want to dispatch a task, you can remove the sleep tool
    print(await agent.ainvoke("Run a task with Skyvern. The task is about 'Navigate to the Hacker News homepage and get the top 3 posts.' Then, get this task information until it's completed. The task information re-get interval should be 60s."))


if __name__ == "__main__":
    asyncio.run(main())

Run a task(sync) with skyvern client (calling skyvern OpenAPI in the tool)

sync task won't return until the task is finished.

no need to run skyvern init command in your terminal to set up skyvern before using this integration.

import asyncio
from dotenv import load_dotenv
from langchain_openai import ChatOpenAI
from langchain.agents import initialize_agent, AgentType
from skyvern_langchain.client import SkyvernTaskTools

load_dotenv()

llm = ChatOpenAI(model="gpt-4o", temperature=0)

skyvern_task_tools = SkyvernTaskTools(
    credential="<your_organization_api_key>",
)

agent = initialize_agent(
    llm=llm,
    tools=[skyvern_task_tools.run],
    verbose=True,
    agent=AgentType.STRUCTURED_CHAT_ZERO_SHOT_REACT_DESCRIPTION,
)

async def main():
    print(await agent.ainvoke("Run a task with Skyvern. The task is about 'Navigate to the Hacker News homepage and get the top 3 posts.'"))


if __name__ == "__main__":
    asyncio.run(main())

Run a task(async) with skyvern client (calling skyvern OpenAPI in the tool)

async task will return immediately and the task will be running in the background. You can use SkyvernTaskTools().get tool to poll the task information until the task is finished.

no need to run skyvern init command in your terminal to set up skyvern before using this integration.

import asyncio
from dotenv import load_dotenv
from langchain_openai import ChatOpenAI
from langchain.agents import initialize_agent, AgentType
from skyvern_langchain.client import SkyvernTaskTools

from langchain_community.tools.sleep.tool import SleepTool

load_dotenv()

llm = ChatOpenAI(model="gpt-4o", temperature=0)

skyvern_task_tools = SkyvernTaskTools(
    credential="<your_organization_api_key>",
)

agent = initialize_agent(
    llm=llm,
    tools=[
        skyvern_task_tools.dispatch,
        skyvern_task_tools.get,
        SleepTool(),
    ],
    verbose=True,
    agent=AgentType.STRUCTURED_CHAT_ZERO_SHOT_REACT_DESCRIPTION,
)


async def main():
    # use sleep tool to set up the polling logic until the task is completed, if you only want to dispatch a task, you can remove the sleep tool
    print(await agent.ainvoke("Run a task with Skyvern. The task is about 'Navigate to the Hacker News homepage and get the top 3 posts.' Then, get this task information until it's completed. The task information re-get interval should be 60s."))


if __name__ == "__main__":
    asyncio.run(main())

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

skyvern_langchain-0.1.2.tar.gz (3.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

skyvern_langchain-0.1.2-py3-none-any.whl (5.4 kB view details)

Uploaded Python 3

File details

Details for the file skyvern_langchain-0.1.2.tar.gz.

File metadata

  • Download URL: skyvern_langchain-0.1.2.tar.gz
  • Upload date:
  • Size: 3.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.11

File hashes

Hashes for skyvern_langchain-0.1.2.tar.gz
Algorithm Hash digest
SHA256 e5d115f8c4ecd3ea601b7b082493983ba5884df26a767302ad41af1058eff24b
MD5 4b78eb9cdfee3661a716dedb11a4379b
BLAKE2b-256 69cd42b387afbe714c871f8d047c2fece5f2d2a2686ffd6d5e25da55877caeda

See more details on using hashes here.

File details

Details for the file skyvern_langchain-0.1.2-py3-none-any.whl.

File metadata

File hashes

Hashes for skyvern_langchain-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 f924cca7d0da900a50a4f28c761a92a3e52b8a621149c4f5452afadd3c68cd70
MD5 4296c8921c408839f4964cf21111ccfe
BLAKE2b-256 b615b2187cbe3d5d3b7b00f7d516deb6214ddda63b3f8a08ed2b8dbd05478b41

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page