02. 基础调用:run、stream、session
这一章讲最常用的三种调用方式:
- 单次调用
run(...) - 流式调用
stream(...) - 多轮对话
session
1. createAgentSdk()
clean SDK 的入口是:
ts
import { createAgentSdk } from 'actoviq-agent-sdk';
const sdk = await createAgentSdk();常见可传选项包括:
workDirtoolsmcpServersagentsskillspermissionModepermissions
2. 单次调用 run(...)
当你只想完成一次任务,不需要保留上下文时,用 run(...):
ts
const result = await sdk.run('请用一段话说明这个 SDK 是做什么的。');
console.log(result.text);
console.log(result.toolCalls);3. 流式调用 stream(...)
如果你想边生成边输出,用 stream(...):
ts
const stream = sdk.stream('请解释一下 session 是什么。');
for await (const event of stream) {
if (event.type === 'response.text.delta') {
process.stdout.write(event.delta);
}
}
const result = await stream.result;
console.log('\nfinal:', result.text);4. 多轮会话 session
如果你希望模型记住前面对话,就要创建 session:
ts
const session = await sdk.createSession({ title: 'Demo Session' });
await session.send('记住发布代号是 Sparrow');
const reply = await session.send('发布代号是什么?');
console.log(session.id);
console.log(reply.text);5. 每个 session 的 ID 在哪里看?
你可以从这几个地方看到:
session.idresult.sessionIdsdk.sessions.list()
示例:
ts
const session = await sdk.createSession({ title: 'My Session' });
console.log(session.id);
const sessions = await sdk.sessions.list();
console.log(sessions);6. 历史对话保存在哪里?
clean SDK 的 session 历史是本地文件存储。
默认目录:
text
~/.actoviq/actoviq-agent-sdk里面保存的内容通常包括:
- session ID
- 标题
- tags
- metadata
- messages
- run history
- 时间戳
7. 这个保存位置可以修改吗?
可以。创建 SDK 时传 sessionDirectory:
ts
const sdk = await createAgentSdk({
sessionDirectory: 'E:/my-session-store',
});这样 clean SDK 的 session 文件就会写到你指定的位置。
8. session ID 可以自定义吗?
当前不可以。
session ID 是 SDK 自动生成的。现在你可以自定义的是:
titletagsmetadatasessionDirectory
9. 怎么查看历史 session 并恢复?
ts
const sessions = await sdk.sessions.list();
console.log(sessions);
const restored = await sdk.resumeSession('your-session-id');
const reply = await restored.send('继续刚才的话题。');
console.log(reply.text);10. 一个完整的 session 管理示例
ts
const sdk = await createAgentSdk();
const session = await sdk.createSession({
title: 'Release Planning',
tags: ['release', 'ci'],
metadata: { owner: 'team-a' },
});
await session.send('记住发布步骤里必须先运行 npm pack --dry-run。');
console.log('current id:', session.id);
console.log('stored sessions:', await sdk.sessions.list());
const restored = await sdk.resumeSession(session.id);
console.log((await restored.send('发布步骤里必须包含什么?')).text);下一章: