Steamship Javascript Client
The @steamship/client
library provides access to Steamship Agents in NodeJS and Browser environments.
It is written in Typescript and available as open-source here (opens in a new tab). It powers Steamship's website (opens in a new tab), our @vercel/ai integration, and our React components
Installation
npm i @steamship/client
Usage
First, create a Steamship Client:
import Steamship from "@steamship/client"
const steamship = new Steamship({
apiKey: "YOUR-API-KEY"
});
Then, use your client to interact with a Steamship Agent. All you need to know is its BASE_URL.
Every running Steamship Agent has a BASE_URL. This URL always takes the following form:
https://{user-handle}.steamship.run/{workspace-handle}/{instance-handle}/
You can find your Agent's base URL by going to its management console on steamship.com/dashboard/agents (opens in a new tab) and clicking on the Connect > Web SDK sidebar panel.
Chat
Chat with an Agent using request/response fashion like so.
const response = await steamship.agent.respond({
url: BASE_URL,
input: {
prompt: 'Hi there! Tell me a story!',
context_id: CONTEXT_ID // Think of this as the chatroom name.
}
});
Steamship Agents are stateful.
You don't need to worry about providing the chat history.
Instead, provide a CONTEXT_ID
which looks up this history on the server side.
Steaming Chat
Chat with an Agent in streaming mode like so:
const response = await steamship.agent.respondAsync({
url: BASE_URL
input: {
prompt: "Hi there! Tell me a story!",
context_id: CONTEXT_ID // Think of this as the chatroom name.
},
})
const stream = await SteamshipStream(response, steamship)
You can parse the streaming response in a number of ways.
We suggest starting with SteamshipStream
, which will provide you with a Markdown-formatted stream of media content.
HTTP Endpoints
Each running Steamship Agents provides its own HTTP API. What that API does depends on the Agent implementation, but in general, Steamship developers use this API to do things like:
- Implement webhooks
- Provide "learning APIs" to upload, e.g. PDFs or text documents
- Provide settings endpoints
You can call an API method on an agent like so:
const response = await steamship.agent.post({
url: BASE_URL,
path: 'set',
arguments: {
arg1: 'Value 1',
arg2: 'Value 2'
}
});
// The response is a web Fetch response.
const json = await response.json();
If you want to make a get request, use steamship.agent.get
and append the query params to the path
property.