TypeSafeClassifier 将这些决策暴露为 LangChain Runnable,因此可以调用、批量处理或与其他可运行组件组合。它接受字符串、结构化 JSON 和 LangChain 消息对象,并在 LangSmith 中记录追踪和 Token 使用情况。适用于需要精准决策的场景,例如请求路由、模型选择或检查工具调用安全性。
在 LangChain 中间件中使用 TypeSafe 决策来控制 create_agent 行为,包括自定义中间件对智能体状态进行分类。参考 智能体中间件 查看示例。
设置
可选:设置
TYPESAFE_BASE_URL 使用兼容网关、测试服务器或私有部署。默认值为 https://api.typesafe.ai。快速入门
创建TypeSafeClassifier,并在每次调用中传入状态和命名问题。共享状态的提问将并行独立评估:
旧版本在
TypeSafeClassifier 上配置 questions 并仅向 invoke 传递状态。现需向 invoke 同时传递 state 和 questions。nouls、choices 和 scores 分组。响应中还包含回答的 model、Token usage 和 TypeSafe request_id。
请求 state 可以是字符串、JSON 对象/数组或 LangChain 消息。单个 BaseMessage 或消息序列会被转换为角色/内容 JSON,即使嵌套在更大对象中。
决策类型
每个提问属于三种 基础类型:Noul 是唯一不包含 confidence 的类型,概率即答案。使用 Score 而非 Noul 表示连续谱:Noul 中 0.5 表示概率均分,而非“中等”。
智能体中间件
包中包含两个实验性 中间件,在智能体决策点调用分类器。从langchain_typesafe.experimental.middleware 导入。
这些中间件是实验性的且需要
langchain-typesafe[experimental]。其 API 可能未经通知变更。模型路由
跨命名模型分类最新人类消息,并选择该模型处理整个运行中的所有模型调用。每个ModelChoice 将模型与选择标准配对:
工具风险闸门
询问工具调用存在风险或权限不足的概率。判定为风险的操作返回ToolMessage 错误而非执行工具。仅对您列出的工具进行分类。可传入工具名称或对象:
instructions 或传入 criteria=NoulCriteria(true=..., false=...) 自定义工具风险描述。
自定义中间件
TypeSafeClassifier 直接处理 LangChain 消息对象,无需预转换。示例在每次运行开始时对会话状态进行分类并存储完整 ChoiceAnswer:
before_model 在工具结果后重新分类,或通过 wrap_tool_call 分类拟执行动作。参考 自定义中间件 查看所有钩子和状态模式。
追踪
TypeSafe 分类在 LangSmith 中追踪,可查看决策、Token 使用和成本等数据。参考链接
官方原文:src/oss/python/integrations/providers/typesafe.mdx · 非官方翻译,译文由 AI 生成,以英文原文为准。