# @alook/daemon 中文文档

规范地址：https://npmcn.com/package/%40alook/daemon/

版本：0\.1\.65
npm 元数据更新时间：2026-11-07T04:26:10.128Z
中文译文更新时间：2026-11-06T13:15:08.029Z
软件包许可：Apache-2\.0

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40alook/daemon
原文对照：https://npmcn.com/package/%40alook/daemon/?lang=original
项目主页：https://github.com/alookai/alook#readme
源码仓库：https://github.com/alookai/alook

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：6.3 MB，6 个文件
- 模块格式：ES Module
- TypeScript 类型：未声明
- Node.js 要求：\>=20\.9
- 运行依赖：5 个
- 首次发布：2026-07-15T13:14:31.475Z
- 最新版本发布：2026-11-07T04:26:09.791Z
- 近 30 天下载量：3145（2026-10-06 至 2026-11-04，npm 官方下载统计）
- 已发布版本数：74（近 12 个月 74 个）

## 中文简介

外观代理守护进程——主机侧跑时间后端,处理管理器,证书代理,以及控制平面.

## 安装

```sh
npm install @alook/daemon
```

也可以使用：`pnpm add @alook/daemon`、`yarn add @alook/daemon`、`bun add @alook/daemon`

## README

# @ alook/ 守护进程

Alook的主机守护进程:控制-平面连接,代理调度,证书, 诊断 和生命周期的管弦乐.

运行时执行位于可独立构建的 `@alook/agent-driver` 软件包下 `agent-driver/`该套件适应了克洛德代码,代码,光标, OpenCode 和 Pi 在一个公众背后 `AgentSession` 合同。 守护进程消耗 并且不讲供应商程序或SDK协议.

驱动软件包保持主机中立. 其CLI运输制造出一次发射 状态目录, 显示一个稳定 `alook` 命令通过 `PATH`编曲 由主机提供的明确环境层。 供应商适配器从不导入 守护进程或控制飞机代码.

> **证相.** 这里的形状、协议、旗帜字符串和控制流 由研究生产代理-运行时守护进程如何驱动这些 CLI 生成 被重新表述为"干净而通俗的抽象". 这是原始代码,不是副本 任何供应商来源, 并携带没有特定平台胶水.

* * *

## 守护进程生命周期命令

网络机器工作表生成了完整的命令. 生产命令使用 内建的 Alook 端点; 本地开发命令包括明确的本地 URL :

```sh
npx --yes @alook/daemon@latest daemon start --machine-key '<cmt_pair_token>'
```

重新启动先前的配对机器而不旋转其证书:

```sh
npx --yes @alook/daemon@latest daemon start --id '<machine_id>'
```

仅与该精确机器生成的命令重接/旋转:

```sh
npx --yes @alook/daemon@latest daemon reconnect \
  --id '<machine_id>' --machine-key '<cmt_reconnect_token>'
```

重接先取替换所有权, 只停止保存匹配 PID,然后激活符号. 已证实的承诺前拒绝恢复前一个 发射记录。 如果收到承诺的答复,当地发射失败, 新保持的记录仍不上网,并随即收回 `daemon start --id '<machine_id>'`。网络出错、超时、 5xx 或其他 模糊的激活响应从不重新启动可能被取消的旧证书; 由于新的证书没有收到,在 用户界面和运行 `daemon reconnect` 再来一次 从不粘贴配对或机器证书 输入日志、错误报告或聊天.

* * *

## 这个大主意

守护进程创建 `AgentDriverSdk`,探测或打开选定的后端,以及 然后只与一个 `AgentSession`数字 :

-   `start(message)` 承认第一个命令.
-   `send(message)` 接受、队列或拒绝带有打入的收件的后继命令.
-   `interrupt(...)` 财务报告和审定财务报表 `stop(...)` 提供有限度的生命周期控制.
-   `snapshot()` 暴露逻辑状态而不泄露过程/SDK对象.
-   `events` 是常态化的同源流 `AgentEvent` 数值.
-   `closed` 完全解决一次 终端和主机清理的事实.

内部 `@alook/agent-driver`,后端适配器宣布其执行模式 使供应商产出正常化. `LogicalAgentSession` 拥有录取,FIFO队列, 安全地送货、订货、清理 内部 `ProcessLane` 财务报告和审定财务报表 `SdkLane` 主机使SDK运输器与在流程中的运输器相类似; 他们故意不是公共守护神原始人.

* * *

## 持久性交付模式(其核心)

当一个消息到达,会发生什么取决于运行时间的生命周期:

### 安全边界运行时间(克洛德和法典)

一个孩子的过程跨越许多个回合。 两个适配器都声明 `lifetime: "session"`· ; 他们的公共能力是: `midTurnDelivery: "safe_boundary_queue"`在工具使用过程中收到的信息, 压缩, 或审查由 `LogicalAgentSession` 并收到一个后 `command_accepted` 或者说 `command_failed` 活动。 守护进程没有执行 协议或队列.

对克劳德来说,输入通道是 **溪流-json**: 进程为 以 `--input-format stream-json --output-format stream-json --include-partial-messages`,每个消息是 NDJSON 线 `{"type":"user","message":{"role":"user","content":[{"type":"text","text":…}]}}`。 。 。 .

### 进程内 SDK 运行时间 (Pi)

皮宣布 `in_process_sdk` 运输和 `midTurnDelivery: "steer"`其车道代表迅速、引导、中止和处置 同时保留同样的收据、事件和终端合同.

### 持续方向运行时间( ursor)

光标保留一个 `cursor-agent acp` 进程和非加太会议 届会。 根命令开始 a `session/prompt`; 繁忙命令引导相同的 逻辑上通过并行的即时请求。 每个请求都有自己的 JSON-RPC id,而根收仍为稳定的终端所有人. 旧 答复不能解决当前问题。 中断发送 `session/cancel` 而不杀死过程.

### 持续服务运行时间( OpenCode)

OpenCode 开始每个逻辑会话一个经认证的,仅回放的服务. 实际的 CLI 主选择它的适配器: v1 保留 `--pure` 持久活动 重放; v2 使用其原生的 API, 坚持收件箱/ 信件, 以及新的闲置记录 在所有被接受的投入之后。 根提示和忙碌方向盘共享相同的服务 和供应商会议。 Live SSE处理权限和工具进度. 未知 主要或缺失的本地能力明显失败.

* * *

## 运行时间比较

| 运行时间 | 生命周期 | 运输/协议 | 指导 | 初步投入 | 输出格式 |
| --- | --- | --- | --- | --- | --- |
| **克劳德** | 持续届会 | 流- json NDJSON | `safe_boundary_queue` | stdin 用户信息行 | 溪流-json |
| **代码** | 持续届会 | JSON-RPC 2.0 (英语:`app-server --listen stdio://`(中文(简体) ) | `safe_boundary_queue` | `initialize` → `thread/start`编号 :`resume` | JSON-RPC通知 |
| **毕** | 持续届会 | `@earendil-works/pi-coding-agent` | `steer` | `session.prompt()` | SDK 回调 |
| **光标** | 持续届会 | ACP JSON-RPC 2.0 (英语:`cursor-agent acp`(中文(简体) ) | `steer` | `session/prompt` | `session/update` + 相关迅速反应 |
| **打开代码** | 持续届会 | 认证的 HTTP + SSE (`opencode serve`; v1 添加 `--pure`(中文(简体) ) | `steer` | CLI 主要会话提示 API | 本地康复+现场SSE |

(精确发射旗帜在 `agent-driver/src/adapters/<backend>/`. ) (中文(简体) )

* * *

## 版式

```
agent-driver/
  src/
    contract.ts                  # public SDK, session, receipt, event, and result types
    sdk.ts                       # createAgentDriverSdk
    registry.ts                  # built-in ids and capabilities
    controller/
      logical-session.ts         # admission, queueing, turns, stop, cleanup
      process-host.ts            # internal child-process lane
      sdk-host.ts                # internal in-process SDK lane
    adapters/<backend>/          # vendor launch + normalization
    host/default-host.ts         # standalone host implementation
    internal/                    # adapter-only transport/config/process helpers
    testing/                     # public conformance fixtures
src/
  index.ts                       # daemon exports; re-exports the driver public API
  drivers/index.ts               # daemon runtime lookup/probe facade only
  logger.ts                      # structured daemon logging
  runtime/                       # manager liveness, notification, error helpers
  inbox/                         # unread projection and freshness policy
  manager/
    agentDriverHost.ts           # host resource/env/CLI preparation
    managerPolicy.ts             # pure scheduling reducer
    managerRuntime.ts            # applies effects through AgentSession
  server/                        # data/control-plane contracts and WebSockets
  daemon/createDaemon.ts         # runtime-agnostic daemon composition
  cli/                           # lifecycle CLI and proxy data-plane client
  credentials/                   # voucher broker and key-swapping proxy
scripts/
  daemon.ts                      # local daemon entry
```

## 主机管弦乐(管理器 + 服务器)

除了驾驶一个单跑时间,后端包括 **主机侧** 管弦乐可以运行代理端到端:

-   **`manager/`** —— 说 `AgentProcessManager` 时间表进程。 A. 决 定 纯还原器`managerPolicy.ts`:单飞行单过程每剂,醒后/入睡, 消息队列 + 串联, 已停止检测 → `spawn`编号 :`send`编号 :`stop`编号 :`terminate_stalled` 效果); 薄的执行器(`managerRuntime.ts`将其应用于真正的会议 回馈运行时间事件 . `AgentRouter` 消耗控制平面(下方).
-   **`server/`** ——代理 qq服务器边界, 拆分为两个共享的平面 一份合同(`contract.ts`:
    -   **数据平面** (单位:千美元)`ServerApi`: 什么情况 `alook` CLI呼叫—— `send` 编号 : `inboxPull` 编号 : `ack` 编号 : `read` 编号 : `listChannels`,按路径样式处理 `ChannelRef`编号.
    -   **控制平面** (单位:千美元)`HostCommand` + 键 `HostControlChannel`: 服务器 ~ 主机命令 (单位:千美元)`agent:wake` 编号 : `agent:stop`; 附加 `bot:*` 寿命周期框架). `agent:wake` 携带一个 无身体 `UnreadNotice` (频道+最新后台,无消息内容) — DAEMON (单位:千美元)`AgentRouter`编号 :`AgentProcessManager`),不是服务器,而是决定是否产出一个 进程,通知已运行的,或将通知合并到下一个回合. 服务器没有程序内固定设备 : `wsControlServer.ts` (服务器端)和 `wsControlChannel.ts` (主机端,可注射插座+) 指数后退重接+心跳) `HostCommand` 边框 一个真实的 WebSocket(`ws://127.0.0.1` 在本地 dev, 一个真实 `ws-do` URL 进入 (b) 生产。 一个真正的服务器连接是相同的 `WsControlChannel` 指针 在真实的 URL 中, 上游没有变化 .

`tests/integration/daemon/control-plane.test.ts` 窃听一个真实的 `WsControlChannel` 反对运行 `ws-do dev` 服务器进入一个完整的循环:种子一个服务器/bot/ 以人类拥有者的身份发布信息 并维护守护进程 控制通道收到结果 `agent:wake` `HostCommand` 那么,演戏 作为物剂(无CLI产出),在真实的证书链上回复 (转录) 凭证 代理 × 代理 × 代理 × 代理 × 代理 × 代理 ) 并称 复 答 回 可读 超过真正的HTTP。 有关如何运行, 请参看下方“ 在本地区域显示真实的守护进程 ” 测试用手进行.

## 全权证书(零信任隔离)

产出运行时间需求 _有点_ 回调到服务器的证书, 但递递 它真正的 API 键意味着代理进程(以及它运行的任何工具)可以读取它, 不能被瞄准, 漏水迫使旋转. `credentials/credentialProxy.ts` 执行 **凭单** 模式取而代之——相同的形状是生产守护进程 使用 :

1.  主机启动本地密钥抖取代理 `127.0.0.1` (只回转).
2.  每一次发射,a `CredentialBroker` **薄荷每枚发射凭单** (单位:千美元)`vch_…`(中文(简体) ) 输入0600文件。 给孩子 `<PREFIX>_PROXY_URL` + 键 `<PREFIX>_PROXY_TOKEN_FILE` + 其能力设置 **从来没有真正的密钥**。 。 。 .
3.  孩子们的CLI呼叫代理 `Authorization: Bearer vch_…`。 。 。 .
4.  代理验证凭证, **真实的交换 `Bearer <hostApiKey>`**, (中文(简体) ), 邮票 `X-Agent-Id` 编号 : `X-Client` 编号 : `X-Agent-Active-Capabilities`和前进 向上游提供.

这个买的 **证书隔离** (代理只持有凭单), **能力范围界定** (代理拒绝券盖外的终点), 财务报告和审定财务报表 **可撤销性** (保证金是每次发射的,可单独收回;旋转) 泄露的凭单从来不碰真正的钥匙). 这是 **仅限** 证书路径 —— 说 `cliTransport` 需求 `ctx.credentialProxy` (一个运行中的经纪人+代理 URL)和 丢出没有它; 没有任何简单文字的回落 能够给特工一个真正的 键。 一切都是中性主机:真实的密钥、上游 URL、凭单前缀和 标题都来自主机通过 `CredentialBrokerConfig`。 。 。 .

`src/credentials/credentialProxy.test.ts` 包括互换、拒付凭单 (单位:千美元)`invalid local agent proxy token`),能力范围界定,以及针对 向上抛出.

### 三个关键层次(以及每个层次的居住地点)

制作守护进程 **3个** 证书等级,而不是两个等级——对 理解什么 `hostApiKey` 应:

1.  **机器主密钥** ——认证守护进程到服务器,并用于 **薄荷** 代理证书。 仅保存在守护进程内( 未坚持到 磁盘或密钥链。 在当前的守护进程中, 它被传递为一个进程 **参数v** (单位:千美元)`--api-key …`),所以任何本地进程都可以通过 `ps aux`。 。 。 . 缓解:从一个lev var,一个0600文件,或者从OS键链取而代之 (原始内容存档于2018-09-21). argv. 这个代理 **从不转发主密钥**。 。 。 .
2.  **代理驾驶员证书** ——服务器薄荷每剂1枚(可视同 当守护进程用主密钥询问时. 这就是代理商在上游的 互换和前进 属于 `CredentialBrokerConfig.hostApiKey`从主密钥中嵌入 实值 **主机侧管弦乐** 并且故意超出这一范围 后端 .
3.  **`vch_` 凭单** - 由 `CredentialBroker` 每一次发射,写给0600 文件,也是代理程序所见过的唯一证书.

## 收件箱层( 新鲜度)

信息如何到达代理和发送动作如何 门 :

-   **`inbox/projection.ts`** —— 说 `projectAgentInboxSnapshot` 桶待处理 按目标(频道/DM/线程)和项目分别输入 仅以元数据显示的摘要 `[inbox notice: …]` (计算,第一, 最近,发送者,旗帜。 没有尸体——特工拉出尸体 `alook inbox pull`。 。 。 .
-   **`inbox/stateMachine.ts`** —— 说 `planAgentInboxSideEffect` 是"别回答" 僵硬的上下文"的后卫. 向外行动前(`send` 编号 : `task_claim` 编号 : `task_update`它比较模型已经看到 `seq` 边界对待决 信件和返回 **转发** (让它过去), **举行** (保持行动, 将最近几条未见的消息显示为上下文,以便首先调和: 这是"Freshness hold ~ 保存为草稿",您可以在留言时点击 忙碌的代理人),或 **绕行** (解释性) `continueAnyway`) (中文(简体) ). 这是纯粹的功能 生产稳定 `producerFactId`; 条款编号 `SMR-002` (假设)和 `SMR-006` (持有的信封)保存完好.

## 构建运行( R)

这个项目使用 **小时** (见《大会正式记录,第五十八届会议,补编第6号》) `packageManager` 页:1.

```bash
pnpm install
pnpm run typecheck           # tsc --noEmit (passes clean)
pnpm test                    # Vitest package suite, including its packed/runtime categories
pnpm run test:integration    # real infra: requires wrangler dev + ws-do dev + queue-worker dev (see below)
```

单位行为由 `src/**/*.test.ts`全面控制飞机和 信用链行为与真实的以下行为相关 [`tests/integration/daemon/`](https://npmcn.com/package/tests/integration/daemon) - 看这个 可执行的参考文献目录 网络( 实数) `WsControlChannel` 一个真正的WebSocket,真正的 `enroll-agent`/creditive-proxy HTTP呼叫,没有进程内快捷键).

### 将守护进程指向本地下面的真实区域

没有模拟服务器可以代表 `src/web`编号 :`src/ws-do` - 一个守护进程 总是跟真人说话 驾驶一个手在本地dev,运行 真实的服务器和行走真实的证书链(`cmt_` 配对标志 + `cmk_` 守护进程证书 `crk_` 每名代理导出键 :

**1号航站楼 — Web app + Control-plane DO:**

```bash
pnpm --filter @alook/web dev      # http://localhost:3000
pnpm --filter @alook/ws-do dev    # ws://localhost:8789
```

**2号航站楼——对+激活一台机器**,然后用 结果 `cmk_...` 证书 :

```bash
# 1. As a signed-in user, create a pairing token:
curl -s -X POST http://localhost:3000/api/community/machines/pair \
  -H "Cookie: <session-cookie>" | tee /tmp/pair.json
# → { "tokenId": "cmt_…", "expiresAt": "…" }

# 2. Exchange it for a daemon credential:
curl -s -X POST http://localhost:3000/api/community/daemon/activate \
  -H "Authorization: Bearer $(jq -r .tokenId /tmp/pair.json)" \
  -H "content-type: application/json" \
  -d '{"hostname":"my-laptop","platform":"darwin","arch":"arm64"}'
# → { "credential": "cmk_…", "machineId": "cm_…", "expiresAt": null }

# 3. Start it detached (the default):
pnpm run daemon -- start --machine-key cmk_… \
  --server-url http://localhost:3000 \
  --ws-url ws://localhost:8789

# Keep it attached for local debugging:
pnpm run daemon -- start --foreground --machine-key cmk_… \
  --server-url http://localhost:3000 \
  --ws-url ws://localhost:8789
```

一个捆绑在这个机器上的机器人(通过社区UI/API)现在可以被唤醒了 在一条频道上发布一条信息,它是一个成员——真正的唤醒者路径 (单位:千美元)`src/web` → `src/queue-worker` → `src/ws-do`交付 `agent:wake` 超过 守护进程是真的 `WsControlChannel`。 。 。 .

`pnpm --filter @alook/daemon build` 发射自成一体的守护进程捆绑。 这个 已公布的柏油球包括运行时驱动器的执行,而 `@alook/agent-driver` 也可以为主机独立构建和发布 只需要逻辑的SDK.

## 用法草图

```ts
import { createAgentDriverSdk } from "@alook/agent-driver";

const sdk = createAgentDriverSdk();
const opened = await sdk.open({
  backend: "codex",
  launch: {
    workingDirectory: ".",
    instructions: { format: "markdown", content: "Be concise." },
    launchId: "launch-example",
  },
  config: {
    model: { kind: "default" },
    mode: "default",
  },
});
if (!opened.ok) throw new Error(opened.error.message);

const { session } = opened;
const eventsDone = (async () => {
  for await (const event of session.events) {
    if (event.type === "assistant_message_completed") console.log(event.text);
  }
})();

await session.start({ id: "command-1", kind: "user", text: "Inspect this repository." });
await session.send({ id: "command-2", kind: "user", text: "Now summarize the risks." });
await session.stop({ reason: "owner_request", forceAfterMs: 5_000 });
const result = await session.closed;
await eventsDone;
void result;
```

## 看着PII

守护进程在转发发送前, 以管道顺序过滤本地发送的 ALook 信件正文 。 每个机器人都有它自己的持续管道 `<baseDir>/daemons/<machineId>/<botId>/pii/pipelines.json`,只包含该机器人的插件源和配置。 它一次加载文件,并在内存中再用其配置并编译出过滤器;之后的发送不会重读JSON或者重新编译没有变化的过滤器. 成功的管理变革只取代了机器人的快照. 手动编辑文件需要重新启动守护进程 。 另一个bot的无效配置不能阻挡它. 附件和对云模型的要求在此过滤器外. 已启用的过滤器已关闭: 错误、 无效结果或执行限制 .

新鲜配置包含五个默认过滤器: **密钥**, (中文(简体) ), **电子邮件地址**, (中文(简体) ), **身份证号码**, (中文(简体) ), **电话号码** 财务报告和审定财务报表 **银行卡**键共运行先前的私钥,公认的API-键,JWT/Authorization和证书分配/连接-密码检查,保留其特定类别的替换标记. 已保存的管道保留已安装的过滤器、源、旗和删除;没有自动合并.

默认 **身份证号码** 过滤器覆盖16个国家和地区的选定身份、社会保障和个人税号。 模糊的数字格式需要文档标签。 见 [支持的格式、检查和限制](https://npmcn.com/package/%40alook/daemon/src/pii/ID_NUMBERS.md)以前初始化的配置保留了已安装的规则源.

默认 **电话号码** 过滤器识别国际数字和电话标记的国家数字,使用被标注的Google编号元数据,以及现有的独立格式。 见 [承认边界和来源归属](https://npmcn.com/package/%40alook/daemon/src/pii/PHONE_NUMBERS.md)。 。 。 .

在机器人会话内:

```sh
alook pii list
alook pii add --file ./company-terms.ts --description "Redacts internal project names"
```

TypeScript 文件默认导出一个同步纯转换返回 `{ text: string, triggered: boolean }`数字 :

```ts
export default (text: string) => {
  let triggered = false;
  const output = text.replace(/Project Wren/g, () => {
    triggered = true;
    return "[INTERNAL_PROJECT]";
  });
  return { text: output, triggered };
};
```

布尔是明确的每个插件,包括当后期插件恢复文本时. 遗留字符串返回源仍然可以执行,每个节点输入/输出比较作为相容性估计;这不能报告不匹配。 成功发送包括 `pii.triggeredFilters` 仅在过滤器报告命中时,没有原始值。 见 [证书格式、协议和接收限制](https://npmcn.com/package/%40alook/daemon/src/pii/CREDENTIALS.md)。 。 。 .

插件没有提供文件系统、进程、环境、网络或模块导入能力。 它们运行时有内存和执行限制. 添加附件新过滤器,无法替换已有的过滤器。 CLI 没有禁用/ 删除操作 。 当守护进程在线时, 发送请求不是应用更改; 页面等待本地守护进程的结果 。 删除的默认在重启后保留被删除 。 规则可能错失敏感价值;在依赖管道之前先审查管道及其范围.

隐私游乐场通过Alook的服务器将测试文本转发给守护进程,并返回所选择的管道输出. 它使用相同的跑道并检查显示的配置修订. 测试输入和输出是短暂的:它们不存储在配置,聊天历史,重放队列或身体日志中. 没有发送聊天消息或模式请求 。 输入和输出必须每个符合1024 UTF-8字节;失败的过滤器返回安全错误而不是部分输出.

## 用户自动化

在用户设置中创建访问码 → 自动化 。 选择写入权限( E)**创建 bots**, (中文(简体) ), **创建服务器**, (中文(简体) ), **邀请朋友访问服务器**, (中文(简体) ), **发送信件**),过期,以及每次许可的费率. 读取权限( E)**列表机**, (中文(简体) ), **列表朋友**, (中文(简体) ), **列表服务器**) 启动并可以关闭。 出现时保存完整代码:只返回一次 。 编辑名称、权限或费率保留了过期;明确保留了新的失效期再次开始。 删除一个代码拒绝了后续的请求.

`use` 运行独立于守护进程连接或 Look bot 会话。 它调用通过访问码认证的专用自动化API;普通客户端和bot API保留其原始认证,不消耗自动化配额. 设定 `ALOOK_ACCESS_CODE` 或通过 `--access-code-file <path>` 在资源命令之前。 保持文件的隐私。 不要将代码放入命令参数或 URL .

```sh
npx @alook/daemon use bot --create '{"name":"Helper","machineId":"mac1","backendId":"codex","model":"gpt-6"}'
npx @alook/daemon use server --create '{"name":"demo","description":"Team work"}'
npx @alook/daemon use server --invite '{"server":"demo#0042","friend":"alice#0042"}'
npx @alook/daemon use machine --list
npx @alook/daemon use friend --list
npx @alook/daemon use server --list
npx @alook/daemon use message --send --target '/demo#0042/general' --as me --file './message.txt'
npx @alook/daemon use message --send --target '/.dm/alice#0042' --as '@Helper#0042' --file './message.txt'
```

运行 `npx @alook/daemon use expire` 以立即过期提供的访问代码。 它不需要额外许可或剩余配额,只影响该代码。 后来的请求,包括一再到期的请求,均被拒绝。 过期的代码留下活动列表;他们的记录仍然被存储. 返回自动化会刷新列表 .

这些是实例。 使用由代码用户拥有的现有机器ID,可用的后端,以及被支持的模型. 可选的机器人字段是 `description` 财务报告和审定财务报表 `reasoningEffort`. Bot Creat 保持与网络形式相同的机器准备状态,模型和计划检查. 代码直接授予每个选定的动作 。 机器,朋友和服务器列出每个需要自己的读取权限;没有其他账户动作. 创建服务器不会添加 bots .

邀请命令将正常的服务器邀请链接发送给被DM接受的朋友;它不会强迫这个人加入. 它不接受任意的信息内容。 来电者必须是服务器的成员 服务器和好友参数使用由列表命令返回的全名#NNNN手柄.

`message --send` 需要默认关闭 `message.send` 写许可. 它发送UTF-8文件内容,保存行折,而不是附加文件或读取stdin. `--as me` 选择代码所有者; `--as @name#NNNN` 选择同一人类拥有的合格机器人。 其他身份被拒绝。 通过现有发送功能解决选定发送者的目标回放和权限. Bot 未读对齐, CAS 和重复检查仍然保留; 此命令不拉出其收件箱 。 独立访问码路径不执行bot认证代理本地PII过滤器.

读取响应是故意小的:机器返回id/name/status/后端(机器没有名称#NNN手柄);朋友返回名/handle/is my bot;服务器返回名/handle/通道. 自动化 API 在返回数据之前应用了这个预测.

每个命令返回一个JSON行,例如:

```json
{"success":{"bot":{"id":"b1","handle":"Helper#0042"}}}
{"success":{"server":{"id":"s1","handle":"demo#0042","url":"https://alook.ai/c/channels/s1"}}}
```

一个代码的7权限 单独计算。 收费标准使用前一个小时或24小时,每个代码有64/小时的上限,甚至允许一天的收费标准. 受限方所接受的有效认证请求即使随后商业验证或创建失败,也会消耗请求. 无效的基本输入和超限请求不消耗另一个请求. 政策编辑保存了近代历史. 一个被拒绝的请求返回一个错误; HTTP 429 包含一个重试间隔 .

写 POST 发送一次 。 如果连接失败, 创建、 邀请或信件可能已经成功; 在再次尝试之前检查 A look . `use` 永远不会自动重复写请求.

`use server --list` 包括每个服务器参与的顶级 `channels`,与 `name`, (中文(简体) ), `type` (单位:千美元)`text` 或者说 `forum`)和犬科动物 `ref`它使用 `server.read`:公共频道跟随服务器成员;私人频道要求代码拥有者的创建者或访问成员. 线索和信件不返回 。 没有可见顶级频道的服务器保持空 `channels` 阵列.

仅供地方发展之用,通过 `use --server-url http://localhost:<port> …` 或设置 `ALOOK_SERVER_URL`。远程起源需要 HTTPS . `use` 不跟随 HTTP 重定向与访问代码.

## 常见问题

### @alook/daemon 是什么？

外观代理守护进程——主机侧跑时间后端,处理管理器,证书代理,以及控制平面\.

### 如何安装 @alook/daemon？

在项目目录运行 npm install @alook/daemon，或使用 pnpm add / yarn add / bun add。它还提供命令行工具 alook-daemon，可以用 npx alook-daemon 直接运行。

### @alook/daemon 支持 TypeScript 吗？

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

### @alook/daemon 支持 ESM 还是 CommonJS？

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

### @alook/daemon 需要什么版本的 Node\.js？

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

### @alook/daemon 可以商用吗？

@alook/daemon 使用 Apache-2\.0 许可。宽松许可：允许商业使用、修改和再分发，并附带明确的专利授权；分发时需保留许可与 NOTICE 文件，修改过的文件要注明改动。以上为概括，不构成法律意见，请以许可原文为准。

### @alook/daemon 的下载量有多少？

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

### @alook/daemon 还在维护吗？

最新版本 0\.1\.65 发布于 2026/11/07（今天）；至今共发布 74 个版本，其中过去 12 个月发布了 74 个；首次发布于 2026/07/15。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

