aerix.js (英语)
Aerix在浏览器中的转回回路:一个具有工具、钩子和命名限制的代理,运行在
caldrix.js发动机. 在晚上,这是 @caldrix-ai/aerix。 。 。 .
aerix.js 本身没有负载. 你把一个模型装入 Caldrix.js 并手拿它 Engine 改为: Agent。 。 。 .
循环要求引擎一次一个转动,运行转动调用的工具,并输入结果
返回到模型的答案达到最终或极限.
安装
npm install @caldrix-ai/caldrix @caldrix-ai/aerix
@caldrix-ai/caldrix 属于对等关系( e)^0.3.0 || ^0.4.0 || ^0.5.0 || ^0.6.0 || ^0.7.0 || ^0.8.0 || ^0.9.0读取模型的卡德利克斯 chat_template.jinja) (中文(简体) ).
示例
import { Caldrix } from "@caldrix-ai/caldrix";
import { Agent, tool } from "@caldrix-ai/aerix";
const engine = await Caldrix.load("smollm2-instruct");
const weather = tool({
name: "weather",
description: "Today's forecast for a city.",
input: {
city: { type: "string", description: "City name", required: true },
unit: { type: "string", enum: ["c", "f"] },
},
run: async ({ city, unit }) => `Sunny in ${city}, 21°${unit ?? "c"}`,
});
const agent = new Agent({
model: engine,
instructions: "You are a travel helper. Use the tools to answer.",
tools: [weather],
limits: { turns: 8, retries: 2, maxTokens: 384, resultChars: 4000 },
generation: { temperature: 0 },
hooks: { beforeCall: (call) => (call.tool === "weather" ? undefined : { deny: "not allowed" }) },
});
const controller = new AbortController();
for await (const ev of agent.run("Should I pack an umbrella for Lisbon?", { signal: controller.signal })) {
if (ev.type === "final") console.log(ev.text);
}
const { text } = await agent.ask("And for Porto?"); // the same conversation
console.log(text);
agent.reset();
API 密码
软件包导出 Agent, (中文(简体) ), tool 财务报告和审定财务报表 AerixError类型 AgentOptions, (中文(简体) ), Limits, (中文(简体) ), Hooks, (中文(简体) ),
AgentEvent, (中文(简体) ), Call, (中文(简体) ), EndReason, (中文(简体) ), Model, (中文(简体) ), Tool, (中文(简体) ), ToolDef, (中文(简体) ), Field 财务报告和审定财务报表 FieldType。 。 。 .
Model 实值 { chat(messages, opts?): AsyncIterable<Delta> } 超过Caldrix.js的类型。 一个caldrix.js
Engine 满足它.
tool(def) 定义工具 :
name匹配^[a-z][a-z0-9_]{0,63}$在代理中是独一无二的(如果 代理已建).description是模型看到的文本.input是平地地图。 每个字段都有type(单位:千美元)string, (中文(简体) ),number, (中文(简体) ),integer或者说boolean(中文(简体) ) 和可选description, (中文(简体) ),required财务报告和审定财务报表enum。空地图表示没有输入.run(input, { signal, callId })返回一个字符串,或经过的值JSON.stringify。 。 。 . 输入在字段中检查run; 检查失败或丢出成为结果error: …,工具错误不会结束运行.
new Agent(options) 带 AgentOptions数字 :
model(必须),instructions(默认)"", (中文(简体) ),tools(默认无;那么唯一的答案是: (a a final) (中文(简体) ).limits,每个名称绑定:turns(8个,每跑几代,包括复试),retries(2个), 在转弯或转弯后的额外尝试),maxTokens(512,每代)和resultChars4000, (中文(简体) ), 将一个工具结果切入此段并加注).generation: caldrix.js's (英语)GenerationOptions无maxTokens财务报告和审定财务报表constraint,哪个aerix.js 设定.constrain(默认)true:把转弯的计策当作constraint和每个世代的人。 设定false(单位:千美元)Model而不限制解码;然后只适用剖析和重写.hooks,每个可选和等待:beforeCall(call)可能返回{ deny: reason }(结果) 变成refused: <reason>)或(或){ input }(取代电话输入);afterCall(call, result)可能返回{ result }· ;onFinal(text)可能返回{ continue: text },使代理人 以该文本作为用户信息在turns。 。 。 .
agent.run(prompt, { signal }) 产量 AgentEvent继续经纪人的谈话:
{ type: "text", text }:原始流出型号文本.{ type: "usage", promptTokens, completionTokens }:每代一个.{ type: "turn", turn, thought?, calls },然后每个呼叫{ type: "call", id, tool, input }财务报告和审定财务报表{ type: "result", id, tool, text, error }。 。 。 .{ type: "retry", turn, reason }:再次要求剪接或坏转.- 只有一个结局:
{ type: "final", text, thought? },或{ type: "end", reason, message? }地点reason实值"turns", (中文(简体) ),"retries", (中文(简体) ),"abort"或者说"error"(引擎故障或投掷) 钩子,带有它的信息). 引擎故障就是这个事件,从不扔.
agent.ask(prompt, { signal }) 运行到结尾并解析 { text, events } 最终;任何
其他结尾拒绝 AerixError 类型 end,携带 reason 财务报告和审定财务报表 events。 。 。 .
agent.reset() 忘记了谈话. agent.messages 这是迄今为止的对话.
一次跑一次:第二次同时跑 run 掷出 AerixError 类型 busy选项
类型 options。 。 。 .
转弯合同
每个转弯都是一个JSON物体 {"calls":[{"tool":"…","input":{…}}]} 或者说 {"final":"…"},带有
选项 thought。系统消息说明这一合同并列出工具;这是相同的
和Aerix一样的工具渲染.
每个转弯都是受限制的(除非 constrain: false:发动机在从
工具,所以一个回合 结束自己是一个有效的回合 与已知的工具 和右输入
形状,但有一个例外:空 calls 列表通过制约,解析拒绝
并重试。 转来转去 maxTokens 在JSON关闭之前,再次请求,缩短,作为一个
重试。 最多一个回合的8个电话被保留,a thought 被切入到 600 个字符中,然后呼叫
命令,一次一个.
每个转弯的提示是系统消息加上每一个更早的转弯和结果. 发动机保持什么
上一代处理过,所以一个转动只附加到对话中预填新部分;
完成三角洲 usage.cachedTokens 说有多少被重新使用.
未构建
- 路由选择的分数( 浏览器引擎返回)
logprobs这里没有读到它们. - 子代理和一个验证器,收缩和上下文工具,会话保存在索引数据库中.
运行中
- 单位用脚本假的测试
Model:转弯解析,系统渲染和转弯 schema (golden),被钉入Aerix的倒转合同,输入检查,每个钩子,每个端口和每个限制. - 在Playwright的无头铬层进行一个端到端测试:a
Agent一个工具 在已建成的 caldrix.js 上,从回转服务器装入一个输出为噪声的微小测试模型. 它检查引擎是否接收了每代人的转动计划 每次重试都遵循 切转,运行结束 一个命名的结果.
没有其他说法:没有真正的模型,没有其他浏览器或水平,也没有质量或速度数字.
许可证
aerix.js (npm 软件包) @caldrix-ai/aerix) 位于Apache- 2. 0 下 (LICENSE, (中文(简体) ), NOTICE) (中文(简体) ).