@eve:由 @typesafeai 的 Jev 提供支持的自动工具审批。https://eve.dev/docs/guides/evaluate#evaluate-tool-approvals…

X AI KOLs Timeline 工具

摘要

Eve 引入了使用 TypeSafe AI 的 Jev 实现自动工具审批和模型选择,通过 AI SDK 评估 API 为不同任务动态选择 AI 模型。

由 @typesafeai 的 Jev 提供支持的自动工具审批。https://eve.dev/docs/guides/evaluate#evaluate-tool-approvals…
查看原文
查看缓存全文

缓存时间: 2026/09/18 02:37

由 @typesafeai 的 Jev 驱动的自动工具审批功能。 https://eve.dev/docs/guides/evaluate#evaluate-tool-approvals…


自动模型选择 – eve

来源:https://eve.dev/docs/guides/evaluate 自动选择代理模型,或在您的工具和应用程序代码中评估类型化的问题。

使用 eve/models 中的 auto,在推理开始之前从白名单中选择代理模型。它使用 AI SDK 评估 API (https://ai-sdk.dev/docs/ai-sdk-core/evaluation),因此评估器可以是 Vercel AI Gateway 模型 ID 或已安装提供商提供的评估模型。使用 eve/ai 中的 evaluate 在您自己的工具或应用程序代码中提出类型化的问题。

AI SDK 评估模型规范处于实验阶段,可能会在补丁版本中更改。

默认情况下,auto 使用 typesafe-ai/jev 进行评估。与其他 AI SDK 模型字符串一样,除非应用程序配置了不同的全局默认提供商,否则它使用 Vercel AI Gateway。

import { defineAgent } from "eve";
import { auto } from "eve/models";

export default defineAgent({
  model: auto({
    options: {
      "openai/gpt-5.6-sol": "Difficult reasoning and engineering tasks",
      "openai/gpt-5.6-luna": "Routine tasks where fast completion matters",
    },
  }),
});

按照与任何其他 AI SDK 模型相同的方式配置 Gateway 认证。eve 不添加 TypeSafe 凭证或传输层。在 eve dev 期间,Gateway 评估器使用与 Gateway 语言模型通过 /login 选择的相同连接。已配置的 AI SDK 默认提供商在开发期间仍然拥有字符串模型解析权。当代理使用 auto 时,TUI 页脚显示 dynamic model,然后为当前轮次添加已解析的模型,例如 dynamic model · openai/gpt-5.6-luna

您自行安装提供商包并传递其评估模型。提供商拥有其凭证和设置。

pnpm add @ai-sdk/typesafe-ai
import { typeSafeAi } from "@ai-sdk/typesafe-ai";
import { defineAgent } from "eve";
import { auto } from "eve/models";

export default defineAgent({
  model: auto({
    model: typeSafeAi.evaluationModel("jev-latest"),
    options: {
      "openai/gpt-5.6-sol": "Difficult reasoning and engineering tasks",
      "openai/gpt-5.6-luna": "Routine tasks where fast completion matters",
    },
  }),
});

任何实现了 AI SDK Experimental_EvaluationModel 接口的提供商都可以在此使用。

选项的键是显示给评估器的值。字符串值描述一个 Gateway 模型,其 ID 就是该键。当所选模型是提供商实例、别名或需要推理覆盖时,请使用对象形式。

import { anthropic } from "@ai-sdk/anthropic";
import { defineAgent } from "eve";
import { auto } from "eve/models";

export default defineAgent({
  reasoning: "medium",
  model: auto({
    options: {
      "openai/gpt-5.6-sol": "Hard problems",
      my_secret_model: {
        model: anthropic("sonnet-5"),
        description: "Routine work that can use the direct Anthropic provider",
        reasoning: "low",
      },
    },
  }),
});

评估器看到的是选项键、描述和最近的文本消息。它永远不会收到提供商凭证或序列化的语言模型实例。当它选择 my_secret_model 时,eve 会将该键解析回创作的 Anthropic 模型。

支持的推理值包括 "provider-default""none""minimal""low""medium""high""xhigh"。省略的值会继承代理的推理设置。

使用 evaluate 对您传递给它的状态提出选择、评分或布尔值问题。它默认使用 typesafe-ai/jev,并使用与 auto 相同的认证方式,包括 eve dev 期间通过 /login 选择的 Gateway 连接。传递 model 以使用另一个评估模型 ID 或提供商实例。已配置的 AI SDK 默认提供商优先于本地 Gateway 连接。

import { evaluate } from "eve/ai";
import { defineTool } from "eve/tools";
import { z } from "zod";

export default defineTool({
  description: "Choose the team that can help with a customer request.",
  inputSchema: z.object({ request: z.string().min(1).max(8000) }),
  async execute({ request }, ctx) {
    const result = await evaluate({
      state: { request },
      questions: {
        team: {
          type: "choice",
          instructions: "Select the team best suited to handle the request.",
          criteria: {
            billing: "Invoices, payments, and refunds",
            support: "Product questions and troubleshooting",
          },
        },
      },
      abortSignal: ctx.abortSignal,
    });
    return { team: result.answers.team.choice };
  },
});

上面的选择类型为 "billing" | "support"。每个问题出现在 result.answers 中其创作键下。结果还包括令牌使用量、警告、提供商元数据和响应元数据。

evaluate 接受 AI SDK 评估选项,包括 maxRetriesheadersproviderOptions。传递 abortSignal 以取消请求。输入和答案验证、重试以及提供商错误遵循 AI SDK 语义。

您也可以在工具之外调用 evaluate;它不需要活跃的 eve 会话。每次调用执行自己的评估。auto 使用此函数并添加下面描述的每轮路由行为。

当评估模型需要决定工具调用是否可以自动运行还是需要人工批准时,使用 auto({ model? })。它接受与上述相同的 AI SDK 评估模型字符串和提供商实例,并默认使用 typesafe-ai/jev

import { defineTool } from "eve/tools";
import { auto } from "eve/tools/approval";
import { z } from "zod";

export default defineTool({
  description: "Deploy an application.",
  inputSchema: z.object({ environment: z.string() }),
  approval: auto({ model: "typesafe-ai/jev" }), // 使用 AI SDK 字符串模型解析
  execute: ({ environment }) => deploy(environment),
});

评估模型会审查工具名称和输入是否有危险影响。警告、审查失败或输入不完整需要人工批准。有关分类器选项和数据处理,请参阅人机协作审批 (https://eve.dev/docs/human-in-the-loop#approvals)。

auto 在第一个 step.started 事件时进行评估,在传入的提示可用之后,在所选语言模型运行之前。它在同一轮次的后续工具循环步骤中重用该选择。新的轮次做出新的选择,子会话从其自身的提示进行路由。

评估器接收最多八条最近的用户和助手文本消息,上限为 16,000 个字符。没有用户文本的请求以及超出限制的最新消息在提供商 I/O 之前就会失败。

评估验证、重试、提供商错误和模型解析遵循 AI SDK 语义。取消活动轮次会中止评估并防止选择被保留。

相似文章