TypeScript SDK
Prerequisites
| Item | Value |
|---|---|
| Package | @joytoken/agent-sdk-ts |
| Node.js | 18+ |
| API key | JOY_TOKEN_API_KEY |
| Default model | auto |
Step 1: Install
$ npm install @joytoken/agent-sdk-ts
Step 2: Create a Provider
1 import { createJoyTokenProvider } from "@joytoken/agent-sdk-ts"; 2 3 const model = createJoyTokenProvider({ 4 apiKey: process.env.JOY_TOKEN_API_KEY, 5 defaultModel: "auto", 6 });
Step 3: Define a Tool
1 import { defineTool } from "@joytoken/agent-sdk-ts"; 2 3 const 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
1 import { Agent, stepCountIs } from "@joytoken/agent-sdk-ts"; 2 3 const agent = new Agent({ 4 model, 5 modelName: "auto", 6 tools: [lookup], 7 stopWhen: [stepCountIs(6)], 8 }); 9 10 const result = await agent.run("Summarize record 42."); 11 console.log(result.finalText);
Step 5: Persist State
1 const result = await agent.run({ 2 messages: previousMessages, 3 input: "Continue.", 4 }); 5 6 await saveMessages(result.messages);
Common Errors
| Error | Fix |
|---|---|
| Tool is not called | Check whether name, description, and parameters are clear |
| Loop runs too long | Use stepCountIs, maxToolCalls, and maxCost |
| Request fails | Check JoyToken Logs and result.steps |