!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)

LangChain v0.2 is coming soon! Preview the new docs [here](/v0.2/docs/introduction/).

[

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

](/v0.1/)[Docs](/v0.1/docs/get_started/introduction/)[Use cases](/v0.1/docs/use_cases/)[Integrations](/v0.1/docs/integrations/platforms/)[API Reference](https://api.js.langchain.com)

[More](#)

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

[v0.1](#)

*   [v0.2](https://js.langchain.com/v0.2/docs/introduction)
*   [v0.1](/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.1/docs/integrations/platforms/)
    
    *   [Providers](/v0.1/docs/integrations/platforms/)
    *   [Anthropic](/v0.1/docs/integrations/platforms/anthropic/)
    *   [AWS](/v0.1/docs/integrations/platforms/aws/)
    *   [Google](/v0.1/docs/integrations/platforms/google/)
    *   [Microsoft](/v0.1/docs/integrations/platforms/microsoft/)
    *   [OpenAI](/v0.1/docs/integrations/platforms/openai/)
*   [Components](/v0.1/docs/integrations/components/)
    
    *   [LLMs](/v0.1/docs/integrations/llms/)
        
    *   [Chat models](/v0.1/docs/integrations/chat/)
        
    *   [Document loaders](/v0.1/docs/integrations/document_loaders/)
        
    *   [Document transformers](/v0.1/docs/integrations/document_transformers/)
        
    *   [Document compressors](/v0.1/docs/integrations/document_compressors/)
        
    *   [Text embedding models](/v0.1/docs/integrations/text_embedding/)
        
    *   [Vector stores](/v0.1/docs/integrations/vectorstores/)
        
    *   [Retrievers](/v0.1/docs/integrations/retrievers/)
        
    *   [Tools](/v0.1/docs/integrations/tools/)
        
    *   [Agents and toolkits](/v0.1/docs/integrations/toolkits/)
        
        *   [Connery Toolkit](/v0.1/docs/integrations/toolkits/connery/)
        *   [JSON Agent Toolkit](/v0.1/docs/integrations/toolkits/json/)
        *   [OpenAPI Agent Toolkit](/v0.1/docs/integrations/toolkits/openapi/)
        *   [AWS Step Functions Toolkit](/v0.1/docs/integrations/toolkits/sfn_agent/)
        *   [SQL Agent Toolkit](/v0.1/docs/integrations/toolkits/sql/)
        *   [VectorStore Agent Toolkit](/v0.1/docs/integrations/toolkits/vectorstore/)
    *   [Chat Memory](/v0.1/docs/integrations/chat_memory/)
        
    *   [Stores](/v0.1/docs/integrations/stores/)
        

*   [](/v0.1/)
*   [Components](/v0.1/docs/integrations/components/)
*   [Agents and toolkits](/v0.1/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.1/docs/get_started/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.

* * *

#### Help us out by providing feedback on this documentation page:

[

Previous

JSON Agent Toolkit

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

Next

AWS Step Functions Toolkit

](/v0.1/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.