TypeScript SDK

Prerequisites

ItemValue
Package@joytoken/agent-sdk-ts
Node.js18+
API keyJOY_TOKEN_API_KEY
Default modelauto

Step 1: Install

$npm install @joytoken/agent-sdk-ts

Step 2: Create a Provider

1import { createJoyTokenProvider } from "@joytoken/agent-sdk-ts";
2
3const model = createJoyTokenProvider({
4 apiKey: process.env.JOY_TOKEN_API_KEY,
5 defaultModel: "auto",
6});

Step 3: Define a Tool

1import { defineTool } from "@joytoken/agent-sdk-ts";
2
3const lookup = defineTool({
4 name: "lookup",
5 description: "Look up a record by id.",
6 parameters: {
7 type: "object",
8 properties: { id: { type: "string" } },
9 required: ["id"],
10 },
11 execute: async ({ id }) => `record:${id}`,
12});

Step 4: Run the Agent

1import { Agent, stepCountIs } from "@joytoken/agent-sdk-ts";
2
3const agent = new Agent({
4 model,
5 modelName: "auto",
6 tools: [lookup],
7 stopWhen: [stepCountIs(6)],
8});
9
10const result = await agent.run("Summarize record 42.");
11console.log(result.finalText);

Step 5: Persist State

1const result = await agent.run({
2 messages: previousMessages,
3 input: "Continue.",
4});
5
6await saveMessages(result.messages);

Common Errors

ErrorFix
Tool is not calledCheck whether name, description, and parameters are clear
Loop runs too longUse stepCountIs, maxToolCalls, and maxCost
Request failsCheck JoyToken Logs and result.steps