设置
要使用 ScaleDown 中间件,请创建 ScaleDown 账号,从 ScaleDown dashboard 获取 API key 并安装langchain-scaledown 包。新账号包含 50 亿免费 Token。
凭证
Set API key
SCALEDOWN_API_KEY。若需指向不同的 API 主机,请设置 SCALEDOWN_BASE_URL。若需在中间件之间共享一个连接,请创建 ScaledownClient 并将其作为 client=传递给每个中间件。
它也有助于(但不是必需的)设置 LangSmith 用于可观察性和。要启用自动跟踪,请设置您的 LangSmith API 密钥:
Enable tracing
安装
ScaleDown 中间件位于langchain-scaledown 包中:
摘要
长时间运行的智能体会耗尽上下文。每次历史记录填满时,通过调用通用模型来总结旧历史记录会增加成本和延迟。ScaledownSummarizer 使用 ScaleDown 来写入摘要,并通过其 summarizer 参数接入内置的 SummarizationMiddleware。内置的中间件仍然决定何时总结以及保留哪些最近消息。
默认摘要与LangChain的提示词模板包含相同的部分:会话意图、摘要、附件和后续步骤。
ScaleDown 总结输出限制在 200 个 Token,因此
max_tokens 超过该值的输出会被 API 限制。Summarizer with SummarizationMiddleware
ScaledownSummarizationMiddleware 是相同设置的快捷方式,只有一个区别:如果 ScaleDown 调用失败,它会保留历史记录不变,并正常调用模型。
ScaledownSummarizationMiddleware
summarizer 参数。它还将被驱逐的历史记录保存到一个智能体可以读取的文件中。
Configuration options
Configuration options
上下文压缩
ScaledownCompressionMiddleware 在每次模型调用前,会压缩相对于用户最新问题的较大系统提示词。系统消息是会被压缩的上下文,而最后一个用户消息则是决定要保留内容的查询。用户消息和对话历史会保持不变。
用于“大海捞针”类工作负载,例如检索增强生成(RAG),其中一大块检索到的文档包含少量相关事实。不要用于短提示词或创意生成,因为压缩可能会丢失模型所需的指令、语气或细节。在使用 Deep Agents 时,系统消息也包含 harness 自身的指令,压缩也会将这些内容压缩。
Context compression
min_context_chars、没有用户消息或 ScaleDown 调用失败时,请求将保持不变。
Configuration options
Configuration options
工具结果压缩
向支持智能体咨询欧盟订单的退款政策,它可以将商店的整个政策页面引入上下文。后续的每一步都会再次为这些 Token 支付费用。ScaledownToolCompressionMiddleware为您的工具添加了一个可选的compression_query参数。当模型只需要部分结果时,它会填写compression_query,例如"refund policy for EU orders"。中间件在工具运行前移除该参数,然后在模型看到之前将输出压缩为相关部分。
Tool result compression
compression_query 就能再次调用工具:
Compression note
compression_query、输出短于min_result_chars、结果为错误或包含非文本内容,或ScaleDown调用失败时,结果保持不变。
Configuration options
Configuration options
提取
智能体通常需要从用户处获取少量事实信息才能执行操作,例如订单号、遇到的错误或邮箱地址。ScaledownExtractionMiddleware通过ScaleDown替代在每轮对话中向代理模型询问,而是在每次运行前(首次模型调用前)将用户消息和你的架构发送给ScaleDown,并将结果存储在代理状态下的scaledown_extraction中。工具可以在运行期间读取这些信息,最终输出包含在agent.invoke()中。
仅使用用户消息,永不使用代理自身的回复,因此每个提取值都是用户所述内容。请用平白语言描述每个字段:
Extraction
None:
Extraction result
inject_into_prompt=True使模型可见字段,该文本会被添加到系统提示中,需确保仅对可接受字段启用此功能。
Configuration options
Configuration options
API参考
获取所有ScaleDown类源码和完整参数文档,请参考langchain-scaledown仓库。
官方原文:src/oss/python/integrations/middleware/scaledown.mdx · 非官方翻译,译文由 AI 生成,以英文原文为准。