TypeScript API 参考
TypeScript API 参考
导入
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 });
| 选项 | 用途 |
|---|---|
model | 模型 provider |
modelName | JoyToken 模型,默认用 auto |
system | system message |
tools | 本地工具列表 |
stopWhen | 停止条件 |
temperature | 模型温度 |
maxTokens | 最大输出 token |
tier | JoyToken routing tier |
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 });
| 返回字段 | 用途 |
|---|---|
finalText | 最终文本 |
messages | 可持久化的完整消息 |
steps | 每一步模型回复和工具结果 |
usage | 聚合用量 |
stoppedBy | 命中的停止条件 |
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 });
停止条件
1 stopWhen: [ 2 stepCountIs(8), 3 maxToolCalls(4), 4 maxCost(1), 5 ]
| 函数 | 用途 |
|---|---|
stepCountIs(n) | 最多运行 n 步 |
maxToolCalls(n) | 最多执行 n 次工具 |
maxCost(n) | 费用达到 n credits 后停止 |