• 简体中文
  • v6.5.1
  • 模型切换

    会话会使用你在 model 选项中传入的模型运行。先声明一次智能体可以访问的所有模型, 然后为每个会话选择其一——用快速模型处理高频、低风险的工作,用能力更强的模型进行 评审。当你希望在不改动任何提示词的前提下,于成本与能力之间取得平衡时,可以使用这 种方式。

    声明模型

    模型在智能体文件中配置。每个 provider 列出它对外暴露的模型,当会话未设置 model 时则使用 default_model

    Text
    default_model = "provider/fast-model"
    providers "provider" {
    apiKey = env("PROVIDER_API_KEY")
    baseUrl = env("PROVIDER_BASE_URL")
    models "fast-model" { tool_call = true }
    models "review-model" { tool_call = true }
    }

    按会话设置模型

    model 选项在打开会话时设置。该会话运行的一切——sendruntaskparallelpipeline——都会使用该模型。同一个智能体配置可以为不同会话驱动不同的 模型选择。

    Node.js
    Python
    TypeScript
    import { Agent } from '@a3s-lab/code';
    const agent = await Agent.create('agent.acl');
    // A fast model for high-volume, low-stakes work.
    const fast = agent.session('/repo', { model: 'provider/fast-model' });
    const draft = await fast.run('Draft a short README intro for this project.');
    console.log('draft:', draft);
    await fast.close();
    // A stronger model for review / higher-stakes reasoning.
    const review = agent.session('/repo', { model: 'provider/review-model' });
    const critique = await review.run(`Critique this README intro:\n${draft}`);
    console.log('critique:', critique);
    await review.close();

    按 worker 智能体覆盖模型

    worker 智能体通过各自的规格进行注册。为某个 worker 指定自己的 model,即可让它运行 在与委派它的会话不同(通常更小、更廉价)的模型上。编排会话保留自己的 model,只有被 委派出去的工作才会运行在该 worker 的模型上。

    Node.js
    Python

    说明:

    • model 的取值是一个标识符字符串,由你的运行时解析为智能体文件中声明的某个模型—— SDK 中没有任何硬编码的模型名称。
    • worker 智能体的 model 仅作用于该智能体被委派的工作。会话自身的 send/run/task 调用仍使用会话的 model
    • 未设置 model 的 worker 会继承会话的 model,因此你只需为那些换用不同模型确有收益 的智能体进行覆盖即可。

    展示会话 model 选项的可运行版本位于 crates/code/sdk/node/examples/basic/test_api_alignment.ts