ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

Flue useModel钩子教程:给你的AI Agent选择并声明模型

Flue useModel钩子教程:给你的AI Agent选择并声明模型 Flue useModel钩子教程给你的AI Agent选择并声明模型【免费下载链接】flueThe sandbox agent framework.项目地址: https://gitcode.com/GitHub_Trending/flue1/flue在 Flue 这个 AI Agent 沙箱框架中useModel()是给你的 Agent选择并声明大语言模型的专用钩子——它是每个 Agent 唯一必填的钩子没有这一行代码Agent 根本无法启动。本文用最短的篇幅讲清楚如何声明模型、模型标识符怎么写、如何调推理档位与压缩策略以及对话中途换模型是如何生效的。快速上手一行代码声明你的 AI Agent 模型Flue 的设计哲学是声明而不是连接。你只需要用一个字符串告诉框架我要用哪个模型剩下的鉴权、流式输出、重试全部由运行时接管——你的代码里永远不会出现 API Key也永远不会手动构造 SDK 客户端。use agent; import { useModel } from flue/runtime; export function TriageAgent() { useModel(anthropic/claude-sonnet-4-6); // 声明模型仅此一行 return Investigate the reported issue and recommend the next action.; }有两条必须记住的规则必须调用没有useModel()的 Agent 渲染无法开始运行每次渲染恰好一次一个 Agent 同一时刻只有一个模型调用本身不能消失、也不能重复但传入的参数可以变化见下文。模型标识符provider/model 的命名格式useModel()接受一个provider-id/model-id格式的字符串第一个/之前是提供商其余部分就是提供商自己的模型 ID所以模型 ID 里可以再带斜杠标识符提供商模型 IDanthropic/claude-sonnet-4-6anthropicclaude-sonnet-4-6openai/gpt-5.5openaigpt-5.5openrouter/moonshotai/kimi-k2.6openroutermoonshotai/kimi-k2.6cloudflare/cf/moonshotai/kimi-k2.6cloudflarecf/moonshotai/kimi-k2.6Flue 内置了主流提供商的完整目录anthropic、openai、google、amazon-bedrock、groq、mistral、deepseek、openrouter 等每个模型自带上下文窗口、成本、推理能力等元数据用来决定压缩何时触发、思考级别是否生效、能否接受图片。写错的标识符会快速失败——请求发出前就会报错提示未解析的提供商和模型 ID省去排错时间。进阶配置thinkingLevel 推理档位与 compaction 压缩useModel()的第二个参数是一个可选配置对象只有两个字段useModel(anthropic/claude-opus-4-6, { thinkingLevel: high, // 默认推理努力程度 compaction: { keepRecentTokens: 16000 }, // 长对话自动压缩策略 });thinkingLevel可选off、minimal、low、medium、high、xhigh、max不设置时默认medium。档位越高推理越深但延迟和 token 消耗也越高它是默认值单次调用如子代理、harness.prompt()仍可单独覆盖。compaction长对话会撑爆上下文窗口Flue 会在接近上限时自动把早期历史折叠成摘要。你可以用reserveTokens调触发时机、用keepRecentTokens调保留多少近史原文、用model指定一个更便宜的模型专门做摘要省成本小技巧 ✅。传compaction: false则关闭阈值自动压缩。完整的参数校验逻辑可以查看源码use-model.ts它会严格拒绝未知字段避免拼写错误悄悄失效。对话中途换模型从便宜模型升级到强模型的实战Agent 函数在每次模型调用前都会重新渲染并重新执行useModel()所以模型标识符可以不是常量而是根据持久化状态动态计算。最常见的模式是升级escalation平时跑便宜模型复杂情况自动切到强模型。use agent; import { useModel, usePersistentState, useTool } from flue/runtime; export function Reviewer() { const [escalated, setEscalated] usePersistentState(escalated, false); useModel(escalated ? anthropic/claude-opus-4-6 : anthropic/claude-haiku-4-5); useTool({ name: escalate_review, description: Escalate when the change is too complex for a quick pass., async run() { setEscalated(true); return Escalated. A stronger model will take over.; }, }); return Review the proposed change and leave actionable feedback.; }这里有个容易误解的细节模型、思考档位和压缩配置都是submission 作用域的——运行时只在每次唤醒处理输入时读取一次。运行中重渲染算出的新模型值会锁存在下一条消息时才生效而不是当前回复中途切换。两个使用边界子代理与凭据管理子代理里不能用useModel()delegate 的模型应在其useSubagent()定义上声明未声明时继承父 Agent 的模型。相关约束的报错信息见 use-model.ts。凭据不用你管模型提供商的 API Key 从环境变量解析如ANTHROPIC_API_KEY、OPENAI_API_KEY本地开发放在项目根目录的.env里即可flue run和vite dev都会自动加载部署到 Node 或 Cloudflare 则通过宿主平台的密钥机制注入。Agent 代码全程不接触密钥。另外Flue 支持用setProvider()注册自定义提供商本地 Ollama、代理网关、新发布的模型都能接入——标识符写法和内置模型完全一致文档见 models.md。小结useModel 钩子的 4 个要点要点说明唯一必填没有useModel()Agent 无法启动每次渲染恰好一次调用不能消失或重复参数可以变声明而非连接字符串标识模型运行时负责连接、鉴权、流式与重试submission 生效换模型值在下一条输入时才切换想继续深入可以阅读官方文档中关于模型的完整指南 apps/docs/src/content/docs/guide/models.md、钩子总览 apps/docs/src/content/docs/guide/agent-hooks.md以及带推理档位的示例 Agent with-thinking.ts。掌握useModel()之后你的 Agent 就已经有了大脑接下来只需为它添加工具和技能。【免费下载链接】flueThe sandbox agent framework.项目地址: https://gitcode.com/GitHub_Trending/flue1/flue创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表