@trinoris/agent-sdk

中文文档
0.3.0发布于 2026/11/03Apache-2.0TypeScriptESM + CJS

编程协调API范围锁、切换声明、旧锁恢复

中文使用文档

@trinoris / agent-sdk

用于Trinoris多代理协调协议的文件系统锁引擎-用于代理 以及需要进程中协议而不是通过CLI的工具。

import { acquire, inspect, release, breakLock, claim } from '@trinoris/agent-sdk';

const paths = { root: 'coordination' };
const r = acquire(paths, 'engine', { agent_instance: 'a1', agent_class: 'claude' }, 15);
if (!r.ok) { /* held by a peer — do not spin; pick other work or write a handoff */ }

为什么是这些原语,而不是那些显而易见的原语

发动机使用 mkdir 作为唯一的测试和设置,因为它是唯一的原语 经过验证的跨目标文件系统的原子性——包括WSL2到Windows的9p桥接 开车。两种看起来正确的设计在比赛中被证明是错误的:

  • mv -n 不是原子的主张。 它在用户空间中执行stat-then-rename并返回 当它下降时,就会成功,所以两个赛车经纪人都得出结论,他们声称是一样的 切换。测量结果:8名选手中有2名参赛,100名选手中有21名失败。
  • 通过“删除-然后重新创建”双破锁来打破失效锁 - 25/60失败在8 参赛者,59/60在32 -因为一旦第一个断路器重新创建锁的名字是 再次被占用,后来的断路器驱逐 新 持有人。仅重命名就不能 解决它。因此,断裂被锁在原子后面 <scope>.breaking 令牌。

flock 是故意不使用的:建议锁超过9p是不可靠的,和 flock 在进程退出时释放——对于在离散工具调用中工作的代理是错误的。

锁的存在不是所有权。 一个租约到期被驱逐的办事迟缓的代理人发现 目录与它离开时完全一样。只有 holder.json的 agent_instance 是权威, 所以再次确认 isHolder() 紧接在每批写操作之前。

许可证

Apache-2.0 -参见 许可证.

版本与发布记录

@trinoris/agent-sdk 共发布 4 个版本,首次发布于 2026/10/25;过去 12 个月发布了 4 个版本。

版本发布日期距今
0.3.0latest2026/11/03今天
0.2.02026/10/277 天前
0.1.02026/10/258 天前
0.0.0-stage2026/10/258 天前

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

@trinoris/agent-sdk 是什么?

编程协调API范围锁、切换声明、旧锁恢复

如何安装 @trinoris/agent-sdk?

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

@trinoris/agent-sdk 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

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

同时提供 ES Module 与 CommonJS 入口,import 和 require() 都可以使用,打包工具会自动选择合适的版本。

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

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

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

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

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

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