!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())

[Skip to main content](#__docusaurus_skipToContent_fallback)

You are viewing the **preview** v0.2 docs. View the **stable** v0.1 docs [here](/v0.1/docs/get_started/introduction/). Leave feedback on the v0.2 docs [here](https://github.com/langchain-ai/langchainjs/discussions/5386).

[

![🦜️🔗 Langchain](/v0.2/img/brand/wordmark.png)![🦜️🔗 Langchain](/v0.2/img/brand/wordmark-dark.png)

](/v0.2/)[Integrations](/v0.2/docs/integrations/platforms/)[API Reference](https://v02.api.js.langchain.com)

[More](#)

*   [People](/v0.2/docs/people/)
*   [Community](/v0.2/docs/community)
*   [Tutorials](/v0.2/docs/additional_resources/tutorials)
*   [Contributing](/v0.2/docs/contributing)

[v0.2](#)

*   [v0.2](/v0.2/docs/introduction)
*   [v0.1](https://js.langchain.com/v0.1/docs/get_started/introduction)

[🦜🔗](#)

*   [LangSmith](https://smith.langchain.com)
*   [LangSmith Docs](https://docs.smith.langchain.com)
*   [LangChain Hub](https://smith.langchain.com/hub)
*   [LangServe](https://github.com/langchain-ai/langserve)
*   [Python Docs](https://python.langchain.com/)

[Chat](https://chatjs.langchain.com)[](https://github.com/langchain-ai/langchainjs)

Search

*   [Providers](/v0.2/docs/integrations/platforms/)
    
    *   [Providers](/v0.2/docs/integrations/platforms/)
    *   [Anthropic](/v0.2/docs/integrations/platforms/anthropic)
    *   [AWS](/v0.2/docs/integrations/platforms/aws)
    *   [Google](/v0.2/docs/integrations/platforms/google)
    *   [Microsoft](/v0.2/docs/integrations/platforms/microsoft)
    *   [OpenAI](/v0.2/docs/integrations/platforms/openai)
*   [Components](/v0.2/docs/integrations/components)
    
    *   [Chat models](/v0.2/docs/integrations/chat/)
        
    *   [LLMs](/v0.2/docs/integrations/llms/)
        
    *   [Embedding models](/v0.2/docs/integrations/text_embedding)
        
    *   [Document loaders](/v0.2/docs/integrations/document_loaders)
        
    *   [Document transformers](/v0.2/docs/integrations/document_transformers)
        
    *   [Vector stores](/v0.2/docs/integrations/vectorstores)
        
    *   [Retrievers](/v0.2/docs/integrations/retrievers)
        
    *   [Tools](/v0.2/docs/integrations/tools)
        
    *   [Toolkits](/v0.2/docs/integrations/toolkits)
        
        *   [Connery Toolkit](/v0.2/docs/integrations/toolkits/connery)
        *   [JSON Agent Toolkit](/v0.2/docs/integrations/toolkits/json)
        *   [OpenAPI Agent Toolkit](/v0.2/docs/integrations/toolkits/openapi)
        *   [AWS Step Functions Toolkit](/v0.2/docs/integrations/toolkits/sfn_agent)
        *   [SQL Agent Toolkit](/v0.2/docs/integrations/toolkits/sql)
        *   [VectorStore Agent Toolkit](/v0.2/docs/integrations/toolkits/vectorstore)
    *   [Stores](/v0.2/docs/integrations/stores/)
        

*   [](/v0.2/)
*   [Components](/v0.2/docs/integrations/components)
*   [Toolkits](/v0.2/docs/integrations/toolkits)
*   OpenAPI Agent Toolkit

OpenAPI Agent Toolkit
=====================

This example shows how to load and use an agent with a OpenAPI toolkit.

tip

See [this section for general instructions on installing integration packages](/v0.2/docs/how_to/installation#installing-integration-packages).

*   npm
*   Yarn
*   pnpm

    npm install @langchain/openai

    yarn add @langchain/openai

    pnpm add @langchain/openai

    import * as fs from "fs";import * as yaml from "js-yaml";import { OpenAI } from "@langchain/openai";import { JsonSpec, JsonObject } from "langchain/tools";import { createOpenApiAgent, OpenApiToolkit } from "langchain/agents";export const run = async () => {  let data: JsonObject;  try {    const yamlFile = fs.readFileSync("openai_openapi.yaml", "utf8");    data = yaml.load(yamlFile) as JsonObject;    if (!data) {      throw new Error("Failed to load OpenAPI spec");    }  } catch (e) {    console.error(e);    return;  }  const headers = {    "Content-Type": "application/json",    Authorization: `Bearer ${process.env.OPENAI_API_KEY}`,  };  const model = new OpenAI({ temperature: 0 });  const toolkit = new OpenApiToolkit(new JsonSpec(data), model, headers);  const executor = createOpenApiAgent(model, toolkit);  const input = `Make a POST request to openai /completions. The prompt should be 'tell me a joke.'`;  console.log(`Executing with input "${input}"...`);  const result = await executor.invoke({ input });  console.log(`Got output ${result.output}`);  console.log(    `Got intermediate steps ${JSON.stringify(      result.intermediateSteps,      null,      2    )}`  );};

Disclaimer ⚠️
=============

This agent can make requests to external APIs. Use with caution, especially when granting access to users.

Be aware that this agent could theoretically send requests with provided credentials or other sensitive data to unverified or potentially malicious URLs --although it should never in theory.

Consider adding limitations to what actions can be performed via the agent, what APIs it can access, what headers can be passed, and more.

In addition, consider implementing measures to validate URLs before sending requests, and to securely handle and protect sensitive data such as credentials.

* * *

#### Was this page helpful?

  

#### You can leave detailed feedback [on GitHub](https://github.com/langchain-ai/langchainjs/issues/new?assignees=&labels=03+-+Documentation&projects=&template=documentation.yml&title=DOC%3A+%3CPlease+write+a+comprehensive+title+after+the+%27DOC%3A+%27+prefix%3E).

[

Previous

JSON Agent Toolkit

](/v0.2/docs/integrations/toolkits/json)[

Next

AWS Step Functions Toolkit

](/v0.2/docs/integrations/toolkits/sfn_agent)

Community

*   [Discord](https://discord.gg/cU2adEyC7w)
*   [Twitter](https://twitter.com/LangChainAI)

GitHub

*   [Python](https://github.com/langchain-ai/langchain)
*   [JS/TS](https://github.com/langchain-ai/langchainjs)

More

*   [Homepage](https://langchain.com)
*   [Blog](https://blog.langchain.dev)

Copyright © 2024 LangChain, Inc.