@everme/agent-sdk

中文文档
0.7.10发布于 2026/11/06Apache-2.0ES Module零依赖近 30 天下载 3347

EverMe AI代理插件共享核心. HTTP 客户端,搜索/文本,代理-记忆书写,编辑,即时帮助. Host-agnostic——与@everme/openclaw,@everme/claude-code,@everme/memory-mcp相配,.....

中文使用文档
文档目录10 节
  1. 为什么会这样
  2. 出口
  3. 电线合同
  4. 适配器转弯边界
  5. 信封文件优先级
  6. 设备路径( 本地内存)
  7. 货币/安全合同
  8. 测试
  9. 许可证
  10. 任务意识批量

@everme/代理服务器

这个 createToolEventBuffer 工具池保存完整的序列化输入 输出字段, 包括空字符串; 它不应用普通消息 8000-特征预算. 它现有的文件总大小政策没有改变. 主机 在附加事件之前,必须验证其本地工具合同.

每个 EverMe AI 代理插件的共享核心 . 主机不可知论 - 与EverMe网关进行会谈/api/v1/mem/* +前标 + S3多段)而无别. Per-host关注(MCP框架,OpenClaw生命周期,克洛德代码钩子. )生活在自己的包中并依赖于这个SDK.

为什么会这样

EverMe每个AI代理主机一个插件,这样每个插件就可以独立地进行:

软件包东道主格式
@everme/memory-mcp光标 / Cline / 通用 MCP 主机MCP 服务器( stdio / JSON- RPC)
@everme/openclaw打开Claw环境引擎插件( 在进程模块)
@everme/claude-code克劳德代码本地插件( 呼克 + 命令 + 技能 + MCP)

如果没有一个共享的 SDK 插件,每个插件将会重新执行 EverMe 有线协议——复制编辑、搜索/文本塑造、代理-记忆书写,以及每个插件中不可避免的错误。 SDK是"如何与EverMe网关交谈"的单一真理来源,而每个主机插件都是上方的薄适配器.

出口

import {
  // HTTP layer
  createClient, EvermeError, redactError,
  // Agent-memory realtime writes
  saveAgentMemory, AGENT_MEMORY_ROLES, AGENT_MEMORY_TOOL_CALL_TYPES,
  // Search / context
  searchMemory, getContext,
  // Config (env + host-config merge)
  resolveConfig, assertConfigUsable, TIMEOUT_MS, UPLOAD_TIMEOUT_MS,
  // Prompt helpers
  buildMemoryPrompt, MEMORY_TYPES, MEMORY_TYPE_LABELS,
  // Message helpers
  extractText, toText, stripChannelMetadata, isSessionResetPrompt,
} from "@everme/agent-sdk";

电线合同

POST /api/v1/mem/search            → {items, profiles, rawMessages, agentMemory}
POST /api/v1/mem/context           → {profile, cachedAt, generatedAt}  // body: { forceRefresh?: bool }
POST /api/v1/mem/agent-memory      → {status, messageCount, flushed}

认证 : Authorization: Bearer <emk_*|evt_*>。 。 。 .

每个终点的信封如下:

{ error, requestId, status, result }   // status === 0 → success, return result

写入同步合同 : /mem/agent-memory 接受 flush (同步添加于 每批+取出冲)和 sync (仅同步添加,无冲出). saveAgentMemory 套装 sync: true 提出多项要求的主要请求 上传其冲出最后的要求,所以早期的批次保留 同步添加保证. 钩子运行时间也设定 sync: true 每页 排队,所以检查站和后来的地盘/地盘冲出完成 增加而不是仅仅是一项被接受的同步工作。 直接 SDK 呼叫器可以 选择此选项 sync: true; 平面 flush: false 电话保持同步. 此命令保证需要一个网关支持现有的 sync 字段; 忽略它不能提供保证的旧服务器. flushed 打开 结果意味着冲出.. status 编号 : extracted 这是 实现信号,以及 status: "no_extraction" 是指上游地区 排入会话时尚未取出 .

上传超过 500 个信件按源顺序分割, 倾向于完成 转动,然后是完整的工具调用/结果组,然后是硬信息限制. 工具结果文本不会被共享作者限制为8000个字符; 主机侧剖析/重排仍然适用。 普通用户/助理文本和 个人记忆文本保留其现有的预算。 服务器请求大小限制 工具结果必须保持一个信息,而不是若干信息 相同识别结果碎片.

用户和助理文本保留文字协议实例、元数据引用和时间戳; 共享写入器不将这些字符串当作用户频道信封. 这既适用于代理记忆,也适用于个人记忆。 主机适配器 继续负责排除使用本地控制记录的实际控制记录 源结构. 现有的空地正常化和文本预算依然存在. extractText 提供纯文本提取,而不包含信封高压 主机写入适配器 . toText 财务报告和审定财务报表 stripChannelMetadata 保留现有的 查询- 规范化行为; 它们不能重新分类本地对话文本 .

当用户/ 新建时, 助理信件才会关闭转折 turnId, (中文(简体) ), 或适配器供应时 turnComplete: true,而且没有待拨电话. 明确 turnComplete: false 标记评论或执行记录 防止这些记录被用作收尾. 仅用完投入并不能证明完成. turnId 仍为地方. 明显的布尔 turnComplete 助理信件也发送到 EverMe网关使得其以字节为基础的批量可以使用同源证据. 网关会消耗此可选字段而不转发到 EverOS. 年长的客户忽略它并保持他们现有的行为;年长的网关忽略 因此,它不会得到这一字节的改进。 强制分割 保存实际信息而不产生缺失结果或结尾.

请求代号合同: createClient 每个请求生成一个UUID并发送 作为 requestId 页眉; 网关重新使用有效的输入值, 所以插件 stderr, EverMe ELK,和云平台的日志搜索都在一个ID上加入. client.requestWithMeta(...) 决定: { result, requestId }; 包装 帮助者( e)searchMemory 编号 : getContext 编号 : saveAgentMemory 编号 : savePersonalMemory在结果上显示同样的标识,以及 EvermeError 带着它err.requestId由 err.describe() 编号 : describeError(err)) (中文(简体) ).

工具结果内容被转换为带有前导/后导白空间的文本 已修剪, 但频道元数据模式没有被删除: 工具输出可以 包含字面协议示例、日志时间戳或信件ID。 一样 文字内容规则适用于上述用户和助理信息.

适配器转弯边界

写入的适配器 readStoreBatches 必须说一个钩子 引用是一个合乎逻辑的转折:

export const myAdapter = { platform: "my-host", turnBoundary: "stop", /* ... */ };

与 turnBoundary: "stop" sDK索赔 channel: "hook" 每个批次 a 停止并宣布 turns: 1 最后一批(早期批次携带) turns: 0, (中文(简体) ), 这使得主机的写作在 L1-2 捕捉完成 分母 。 在会话尾端上传的整会话主机保留它 : 他们不运行每个回合的交货标记,不能报告掉落的转弯,并且不能 输入他们永远无法触及的损失分母。 简单 readLastTurn 路径总是要求通道;它通过建造而倒转.

信封文件优先级

共享钩子运行时间合并主机 everme.env 输入进程内。 文件值从不覆盖在 shell 中已经设置的变量 - 除外 EVERME_AGENT_TOKEN 财务报告和审定财务报表 EVERME_AGENT_ID,文件获胜的地方。 这种不对称是故意的: evercli 通过重写旋转每台机器 evt 令牌 everme.env,且在外壳中导出的一个 steal sorder 绝不能阴影旋转的证书.

设备路径( 本地内存)

EverMe 桌面写入 ~/.everme/memory/route.json 当用户打开本地内存( w)$EVERME_MEMORY_HOME/route.json 当它被设定的时候。 虽然它说 local, (中文(简体) ), createClient 将每个请求发送到它的回回网关,不管什么 apiBase 编号 : EVERME_API_BASE 说 文件每个请求都会被读取,所以长寿的主机(OpenClaw,MCP服务器)跟随一个切换而无需重启. 它失败关闭: 无法读取、 腐败或关闭的路由仍然意味着默认网关(http://127.0.0.1:18790) (中文(简体) ). 一个已停止的网关以提示失败请求打开 EverMe 桌面;客户端永远不会倒入云中.

货币/安全合同

  • 重试数字 : execWithRetry 重复一次运输故障——但仅限于GET/HEAD. POST写道(/mem/agent-memory)表面显示传输错误,以便呼叫者可以决定;在中空投放后重试一个POST可以重复写作.
  • 编辑数字 : redactError 洗涤器 evt_*, (中文(简体) ), emk_*, (中文(简体) ), X-Amz-Signature/Credential/Security-Token,并且 AWS 访问密钥标识 。 在传递到主机 stderr / 模型上下文之前, 应用到每个错误槽 .
  • 超时数字 : EvermeError{type:"timeout"} 被抛出,所以呼叫者可以在其上分取(例如被降解为倒回),而不是重新试验,仿佛它是一个运输机。 读出身体的超时性也会被抓住——被卡住的身体不再沉默地描述为: null。 。 。 .

测试

npm test

封面为 HTTP 信封, 重试 Gating, 配置优先级, 消息正常化, 代理- 记忆塑造 .

许可证

阿帕奇 - 2.0

任务意识批量

saveAgentMemory 接受可选 syncScope 为原生片段的进步. 范围写入检查 /mem/agent-memory/state 在发送任何批次前: 钩 写入需要 hookSyncScopeSupported: true,导入写入需要 syncScopeSupported: true。所有批次都保留范围;旧服务器失败 不写。 未瞄准的呼叫和单独的会话冲出保留其原始 协议。 这个字段不会改变上游对话的特性和 无法与 deduplication。 。 。 .

saveAgentMemory ưμ㼯a deduplication: "client-native-id" 每批装有后端保护的钩子上 QuenWork, OpenClaw, Pi and ZeroClaw). 维基文库中相关的原始文献: 维基语录链接:名人名言 - 文学作品 - 谚语 - 谚语 - 谚语 - 谚语 - 谚语 它需要一个支持服务器, channel: "hook",没有 offline。写作也可以携带 baseTurn 改为 锚起转水印. 服务器拒绝其他值和组合. 这个 默认保留位置 。 本地ID 选择为客户端所有; 服务器绕过位置 水印而不是存储每个消息的身份。 它不能保证 交叉通道分解或完全重复 POST 重试。 记名检查站 commit(stateId, uploadedCount, { nativeMessageIds }) 持续本地可选 身份密钥仅在成功上传后;仅计数的调用者不变.

saveAgentMemory 接受可选 taskBatching: true; 接钩适配器选择使用 拥有同样的财产。 目前只有Codex允许. 其他打电话者保留 现有的分批路径。 这是本地的SDK选项,从来不是电线场.

战略规划用户任务,保留匹配原始结果,压缩 仅用 KiB UTF-8 工具结果预算进行字节超标的任务,然后拆分 其余为文本/空白/硬边界优先权。 它用64个KB软 目标,280 KiB消息预算 和500个消息封顶。 它保存消息计数, 命令和源元数据,所以 BaseTurn/turns 和 main-batch slush 行为停止 上传路径。 硬倒置并不能保证关闭的任务.

版本与发布记录

@everme/agent-sdk 共发布 28 个版本,首次发布于 2026/05/12;过去 12 个月发布了 28 个版本。

版本发布日期距今
0.7.10latest2026/11/067 天前
0.7.92026/11/067 天前
0.7.82026/11/049 天前
0.7.72026/10/3014 天前
0.7.62026/10/1628 天前
0.7.52026/10/121 个月前

关于 @everme/agent-sdk 的常见问题

@everme/agent-sdk 是什么?

EverMe AI代理插件共享核心. HTTP 客户端,搜索/文本,代理-记忆书写,编辑,即时帮助. Host-agnostic——与@everme/openclaw,@everme/claude-code,@everme/memory-mcp相配,.....

如何安装 @everme/agent-sdk?

在项目目录运行 npm install @everme/agent-sdk,或使用 pnpm add / yarn add / bun add。

@everme/agent-sdk 支持 TypeScript 吗?

该包的 package.json 没有声明类型入口。需要类型提示时,可以在 npm 上查找社区维护的 @types/everme__agent-sdk 是否存在。

@everme/agent-sdk 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@everme/agent-sdk 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=18.0.0。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@everme/agent-sdk 可以商用吗?

@everme/agent-sdk 使用 Apache-2.0 许可。宽松许可:允许商业使用、修改和再分发,并附带明确的专利授权;分发时需保留许可与 NOTICE 文件,修改过的文件要注明改动。以上为概括,不构成法律意见,请以许可原文为准。

@everme/agent-sdk 的下载量有多少?

根据 npm 官方下载统计,@everme/agent-sdk 在 2026/10/14 – 2026/11/12 这 30 天内被下载 3,347 次,日均约 112 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@everme/agent-sdk 还在维护吗?

最新版本 0.7.10 发布于 2026/11/06(7 天前);至今共发布 28 个版本,其中过去 12 个月发布了 28 个;首次发布于 2026/05/12。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。