Skip to content

Agent 适配器

如何安装与选择 Agent 适配器。

Updated View as Markdown

标识

Agent 适配器(Agent Adapter)是一个声明式、不可变的 Agent 集成定义——它描述所需的 Sandbox 模板、运行时、能力、交互模式、持久化路径和凭据类型。Appaloft 不会从 manifest 加载代码,也不接受任意 shell 命令字符串

每次安装都属于当前组织:两个组织可以安装相同 digest 的定义,但不能看到或操作彼此的安装。组织成员可以查看安装,组织管理员可以校验、安装、停用和卸载。

输入字段与校验

最小的 Codex terminal/headless 适配 manifest 示例(需要把 template id、版本、digest 和运行时版本范围替换成当前 Appaloft 实例已经准入的值):

codex.agent-adapter.jsonjson
{
  "schemaVersion": "appaloft.agent-adapter/v1",
  "id": "codex",
  "displayName": "Codex",
  "version": "1.0.0",
  "kind": "declarative",
  "requirements": {
    "adapterApi": "^1.0.0",
    "sandboxTemplate": {
      "id": "agent-workspace",
      "version": "^1.0.0",
      "digest": "sha256:1111111111111111111111111111111111111111111111111111111111111111"
    },
    "runtimes": [{ "id": "codex", "version": "^1.0.0" }],
    "capabilities": { "required": ["managed-terminal", "headless"], "optional": [] }
  },
  "interactionModes": [
    {
      "id": "terminal",
      "transport": "terminal",
      "command": ["codex"],
      "eventFidelity": "raw-pty",
      "sessionRecovery": "process-lifetime"
    },
    {
      "id": "headless",
      "transport": "headless",
      "command": ["codex", "exec"],
      "taskInput": "append-argument",
      "eventFidelity": "line-events",
      "sessionRecovery": "managed-run-lineage"
    }
  ],
  "persistentPaths": ["/workspace/.codex"],
  "healthcheck": { "kind": "process" },
  "credentials": []
}

命令 / 接口示例

# 校验只返回规范化后的 digest 和兼容性结果,不会持久化数据或启动 Agent
appaloft agent-adapter validate ./codex.agent-adapter.json
appaloft agent-adapter install ./codex.agent-adapter.json
appaloft agent-adapter list
appaloft agent-adapter show <installation-id>

也可以在 Web 控制台的 组织设置 → Agent Adapter 页面粘贴 manifest,先校验再安装。

Workspace 配置模板

Workspace 配置模板把一个精确的适配器定义、Sandbox 模板、运行限制、初始化命令、默认端口和检查命令组合成一个可复用的创建入口。它不会执行安装脚本,也不会创建新的 Workspace 聚合——创建 Workspace 前,Appaloft 会编译模板,并把解析出的适配器 digest、Sandbox 模板 digest、Harness 和能力快照固定到 Runtime 上。

codex.profile.jsonjson
{
  "schemaVersion": "appaloft.agent-workspace-profile/v1",
  "id": "codex-standard",
  "displayName": "Codex Standard",
  "version": "1.0.0",
  "adapter": {
    "id": "codex",
    "version": "1.0.0",
    "digest": "sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
    "interactiveModeId": "terminal",
    "taskModeId": "headless"
  },
  "harnessTemplateId": "aht_codex_declarative_v1",
  "sandbox": {
    "template": {
      "id": "agent-workspace",
      "version": "1.0.0",
      "digest": "sha256:1111111111111111111111111111111111111111111111111111111111111111"
    },
    "requestedIsolation": "container-trusted",
    "limits": { "cpuMillis": 2000, "memoryBytes": 4294967296, "diskBytes": 21474836480, "maxProcesses": 128 },
    "networkPolicy": { "mode": "deny" }
  },
  "workingDirectory": "/workspace",
  "initialization": [{ "id": "verify-codex", "argv": ["codex", "--version"] }],
  "defaultPorts": [],
  "persistentPaths": ["/workspace/.codex"],
  "suggestedChecks": []
}
appaloft agent-workspace-profile validate ./codex.profile.json
appaloft agent-workspace-profile install ./codex.profile.json
appaloft agent-workspace-profile list
appaloft agent-workspace-profile compile <installation-id>

组织管理员可以在 组织设置 → Workspace 配置模板 完成相同操作。开发者在 Workspaces 页面选择一个已启用的模板后创建 Workspace;不可用的能力会让对应按钮保持禁用状态,而不是在创建之后才静默降级。

错误码与恢复提示

停用会阻止 Workspace 解析该安装,但不会破坏已有 Workspace 的恢复引用:

appaloft agent-adapter disable <installation-id>

只有在没有任何活跃 Workspace 引用时才能卸载;存在引用时,服务端会返回冲突并保留该安装记录:

appaloft agent-adapter uninstall <installation-id>

卸载只删除当前组织的安装记录,不会删除可能被其他组织共享的不可变定义本身,也不会终止已有的 Sandbox 或 Agent 进程。Workspace 配置模板使用完全相同的停用和引用保护语义:

appaloft agent-workspace-profile disable <installation-id>
appaloft agent-workspace-profile uninstall <installation-id>

相关任务

Navigation

Type to search…

↑↓ navigate↵ selectEsc close