Skip to content

TypeScript 最小示例

本文示例适合用来验证三件事:

  1. AgentOS 网关可访问
  2. SDK 初始化和 bundle 注册正常
  3. ModelKit chat 能返回有效结果

如果你在用 AI 编程工具,这一页更适合作为“参考真值”而不是长篇教程。
也就是说,当 AI 写出的接入代码和文档说法不一致时,应优先回到这里核对最小骨架。

推荐提示词

text
请参考 AgentOS 文档里的 TypeScript 最小示例,在我的项目里生成一个尽量贴近该示例结构的最小接入实现。

要求:
- 使用 agentos-sdk-ts
- 先 registerBundle
- 再 subscribe 一个最小事件处理器
- 再调用 modelkit.chat.create 完成一次最小消息请求
- 尽量保留示例的执行顺序和代码骨架,不要臆造新的初始化流程
- 如果需要模型名,优先支持通过环境变量传入,并给出默认回退值

示例代码

示例来源:agentos-sdk-ts/example/agentos_sdk_example.mjs

ts
import { AgentOSEventHandler, AgentOSSDK, ModelTask } from 'agentos-sdk-ts';

const sdk = new AgentOSSDK({
  baseUrl: process.env.AGENTOS_BASE_URL ?? 'http://127.0.0.1:8888'
});

class DemoEventHandler extends AgentOSEventHandler {
  async onWelcome(welcome) {
    console.log('Welcome bundleId:', welcome.bundleId);
  }
}

async function main() {
  await sdk.agentos.registerBundle({
    bundleId: 'com.example.minimal.ts',
    appGroupId: 'com.example.minimal'
  });

  await sdk.agentos.subscribe(new DemoEventHandler());

  const models = await sdk.modelkit.listModelsByTask(ModelTask.chat);

  const completion = await sdk.modelkit.chat.create({
    model: process.env.AGENTOS_LLM_MODEL ?? models[0]?.id ?? 'qwen3-1.7b',
    messages: [
      {
        role: 'user',
        content: 'Say hello from the TypeScript minimal app.'
      }
    ]
  });

  console.log(completion.choices?.[0]?.message?.content);
}

main().catch(console.error);

运行方式

bash
npm install agentos-sdk-ts
AGENTOS_BASE_URL=http://127.0.0.1:8888 node app.mjs

你应该看到什么

  • 首次注册成功,没有鉴权错误
  • SSE 订阅建立成功
  • 终端输出一条模型返回的文本消息

AI 最容易写错的地方

  • 跳过 registerBundle(...),直接假设已经有 token
  • 把 AgentOS 当成默认 OpenAI 官方地址,而不是独立网关
  • 臆造不存在的 SDK 初始化参数或事件名
  • 没有先验证最小链路就直接引入额外抽象

人工验收清单

  • 代码结构是否仍然是 SDK 初始化 -> registerBundle -> subscribe -> chat.create
  • 是否支持通过 AGENTOS_BASE_URL 指定网关地址
  • 是否至少打印出一条可见的模型返回内容