TypeScript API Reference
Imports
1 import { 2 Agent, 3 createJoyTokenProvider, 4 defineTool, 5 maxCost, 6 maxToolCalls, 7 stepCountIs, 8 } from "@joytoken/agent-sdk-ts";
Agent
1 const agent = new Agent({ 2 model: createJoyTokenProvider(), 3 modelName: "auto", 4 system: "Keep answers short.", 5 tools: [], 6 stopWhen: [stepCountIs(6)], 7 });
| Option | Use |
|---|---|
model | Model provider |
modelName | JoyToken model, usually auto |
system | System message |
tools | Local tool list |
stopWhen | Stop conditions |
temperature | Model temperature |
maxTokens | Maximum output tokens |
tier | JoyToken routing tier |
metadata | Pass-through metadata |
Agent.run
1 const result = await agent.run("Hello"); 2 3 const continued = await agent.run({ 4 messages: result.messages, 5 input: "Continue.", 6 });
| Return field | Use |
|---|---|
finalText | Final text |
messages | Full message list for persistence |
steps | Model reply and tool results for each step |
usage | Aggregated usage |
stoppedBy | Matched stop condition |
createJoyTokenProvider
1 const model = createJoyTokenProvider({ 2 apiKey: process.env.JOY_TOKEN_API_KEY, 3 apiBaseUrl: process.env.JOY_TOKEN_API_BASE_URL, 4 openAIBaseUrl: process.env.JOY_TOKEN_OPENAI_BASE_URL, 5 defaultModel: "auto", 6 });
defineTool
1 const tool = defineTool({ 2 name: "lookup", 3 description: "Look up a record.", 4 parameters: { 5 type: "object", 6 properties: { id: { type: "string" } }, 7 required: ["id"], 8 }, 9 execute: async ({ id }, context) => { 10 return `record:${id}`; 11 }, 12 });
Stop Conditions
1 stopWhen: [ 2 stepCountIs(8), 3 maxToolCalls(4), 4 maxCost(1), 5 ]
| Function | Use |
|---|---|
stepCountIs(n) | Stop after n steps |
maxToolCalls(n) | Stop after n tool calls |
maxCost(n) | Stop when cost reaches n credits |