@ adelie/ amsp
Adelie 代理的 API 的客户端,以及 AMP (代理消息流协议) 的类型, API 服务的事件流 。 没有运行时间依赖性; 在节点 24 和当前浏览器中运行 fetch, (中文(简体) ), ReadableStream, (中文(简体) ), TextDecoder 财务报告和审定财务报表 AbortController。 。 。 .
项目所有者在Adelie Web App中打开代理的API(代理的) API 密码 选项卡)和薄荷的密钥。 一个程序然后运行代理, 读取运行随其发生
import { AgentClient } from "@adelie/amsp";
const client = new AgentClient({
baseUrl: "http://localhost:7364/api/amsp/v1",
agent: "demo/coder", // <projectId>/<agentId>
apiKey: process.env.PENGUIN_AGENT_KEY,
});
const run = client.run({ input: "Summarize README.md" });
for await (const event of run) {
if (event.type === "text.delta") process.stdout.write(event.text);
}
const first = await run.result();
const second = await client.ask({
sessionId: first.sessionId,
input: "Now list its headings",
onApproval: () => "allow", // without a callback, approval requests are denied
});
console.log(second.text, second.usage.total);
run()启动运行并返回它: 为事件刻出一次, 等待session页:1,result()和呼吁abort()让服务器中止它.ask()返回结果.result()解析每次跑到run.done,无论它status在溪流拒绝之前AmspHttpError(单位:千美元)status, (中文(简体) ),code, (中文(简体) ),message); 结束或中断的流run.done拒绝方式AmspStreamError; 中止signal拒绝它的理由.onApproval每个答案approval.requested,客户会张贴答案;parseArguments读取工具调用中的 JSON 参数.agent(), (中文(简体) ),session(id), (中文(简体) ),abort(id)财务报告和审定财务报表approve(id, toolCallId, decision)打电话给API的其他路线;readSse是SSE读取器, 对于一个读取跑者身体本身的程序.- 每个 AMP 事件类型都导出(
AmspEvent, (中文(简体) ),RunDone, (中文(简体) ),ToolCallDone(中文(简体) ). 客户端不知道的某类事件被传递.
没有客户端的读者
发送请求的程序本身 fetch,它自己的证书或URL——读取正文 readSse 并用 RunCollector,哪个 AgentClient 用于 result()数字 :
import { readSse, RunCollector } from "@adelie/amsp";
import type { AmspEvent } from "@adelie/amsp";
const collector = new RunCollector();
for await (const data of readSse(response.body!)) {
if (data === "[DONE]") break;
collector.add(JSON.parse(data) as AmspEvent);
}
const result = collector.result(); // throws AmspStreamError when the stream ended before run.done
文档
发展
pnpm --filter @adelie/amsp build # tsup → dist/ (exports point at dist)
pnpm --filter @adelie/amsp typecheck
pnpm --filter @adelie/amsp test
部分 爱德莉 • Apache-2.0