@ agent-relay/harneses (英语)
本地编码代理器的预置绳接定义. 要求节点.js 22或更新.
使用此软件包 @agent-relay/harness-driver 当代理中继器创建或监督管理的会话时.
运行时间选择
Claude Code, Codex, and OpenCode 既提供了官方AI SDK本土的取用运行时间,也提供了现有的PTY运行时间. 他们的适配器从实验开始,所以 auto 继续选择 PTY ,直到每个适配器通过升级门.
import { claude } from '@agent-relay/harnesses';
await claude.create({ relay }); // auto: PTY while the adapter is experimental
await claude.create({ relay, runtime: 'native' }); // explicit native harness runtime
await claude.create({ relay, runtime: 'pty' }); // explicit terminal runtime
运行时间选择在会话开始前是最终的 。 中继不会在PTY和AI SDK之间切换运行的会话.
| 节奏 | AI SDK 适配器 | PTY 主题 | 初始选择 |
|---|---|---|---|
| 克劳德代码 | @ai-sdk/[email protected] | 对 | PTY; 本地语是明确和实验的 |
| 代码 | @ai-sdk/[email protected] | 对 | PTY; 本地语是明确和实验的 |
| 打开代码 | @ai-sdk/[email protected] | 对 | PTY; 本地语是明确和实验的 |
| Pi | @ai-sdk/[email protected] | 没有 | 明显的实验性本土 |
| 深层特工 | @ai-sdk/[email protected] | 没有 | 明显的实验性本土 |
| 进取 | 无 | 对 | 保留有批准提示的 PTY |
| 其他内置 | 无 | 对 | PTY 主题 |
见 Devin CLI 设置和限制 用于认证、工作空间信任和孤立的 MCP 配置.
皮和深层特工需要 runtime: 'native' 在实验期间 深层代理公司不发布人工收缩广告,停止其目前的适配器不会保留记忆中的对话.
机能执行是 pty 或者说 native。经纪人可在内部将本地的绑带和附带的应用程序服务器包装为 headless 进程,但 headless 不是一个可观察模式。 两种执行路径都发布相同的常态化 AgentEvent 合同.
本地会话在启动时收到认证的代理中继主机工具和协作指示. 他们可以发现代理商和频道,检查或搜索消息,发送DM,发送到频道,并回复线索,而无需依赖提供者-全球MCP配置或用户的额外提示.
原生带附着
AI SDK会话揭露代理事件历史和现场事件而不是终端字节:
agent-relay node agent attach my-agent --mode view
agent-relay node agent attach my-agent --mode drive
agent-relay node agent attach my-agent --mode view --json
agent-relay node agent attach my-agent --mode view --reasoning --diagnostics
view 只读. drive 在经纪人确认后发送每个输入行; /interrupt, (中文(简体) ), /approve <id>, (中文(简体) ), /reject <id>,以及 /detach 属于本地控制. passthrough 无法使用, 因为本地磁带会话没有终端字节流 . --json 写入已正常的 NDJSON 以退出 。 理由和诊断除非有要求,否则保密.
观察性
AI SDK流是Relay的参考可观察性剖面. 中继发布便携式代理事件和活动 starting, (中文(简体) ), thinking, (中文(简体) ), typing, (中文(简体) ), using_tool, (中文(简体) ), waiting, (中文(简体) ), idle,以及 error每个事件都有其来源,其中之一 exact 或者说 inferred 忠诚.
PTY会话使用相同的能力矩阵. 今天,经纪人提供确切的启动和运行时间失败,加上推断的繁忙和闲置边界. 终端字节无法证明的信号,包括推理,文本块,工具,批准,文件,和收缩,被报告为不可用,而不是被猜测.
另一个中继程序可以通过消息表层检查成功被接受到中继广播的持久代理日志中的事件:
const activity = await relay.messaging.sessionEvents?.list('my-agent', {
type: 'activity.changed',
limit: 100,
});
经纪人拥有每个产卵表面的PTY出版物. 管理 create({ relay }) 给本地的听众打电话 AgentRelay 举个例子.
托管出版物在业务上是可观察的,而不是无损失的审计分类账。 经纪人通过限定的出版商队列和日志队列,超时,以及本地重播故障来维护秩序;在持续断电或经纪人崩溃期间,事件可以缺席.
当地东道国的安保和解决问题
AI SDK本地主机提供商是一个过程和文件系统生命周期边界,不是操作系统沙盒. 它拒绝Lexical traversal and statistic symlink 为适配器文件操作进行最优的逃生,在将桥端端口交给适配器进程之前,以回转方式将桥端端口搁置,并终止它所启动的唯一子进程. 由另一个过程所实现的并发文件系统突变在此边界外,所以路径守护不安全,不能用作对不可信代码的隔离.
本地主机AI SDK运行时间目前支持macOS和Linux. 在 Windows 上,使用 PTY 运行时间;在输入平台出错的情况下,一个明确的本地选择失败,而不是尝试 POSIX 适配器靴陷阱命令. 飞行前检查月台 22号节点, pnpm,工作空间访问,缓存访问,以及回路端口分配. 如果启动失败, 请先验证这些命令和权限 。 Bootstrap 工作通过运行时缓存下的稳定适配器身份来缓存;删除无关的工作空间文件从来不是清理的一部分.
适配器升级必须保留 @ai-sdk/[email protected] 在改变适配器的推出状态之前,家庭统一并通过注册、生命周期、代理活动重放、可观察性、真实CLI和100循环浸泡合同.