查看 Markdown

Developer接入与参考

数字分身与你的电脑

数字分身是代表你的那个智能体,下文简称分身。分身能用你名下的每一台电脑,读写文件、跑命令、把文件发给你。每台电脑上的本机策略决定分身能做什么。

说明

前提:要能运行 aidc(Node.js 18 以上)。你要用自己的账号登录(aidc login),并且至少是一家组织的 member。电脑要是 macOS(Apple 芯片)或 Windows x64。

快速上手

这一节用两条命令,让分身用上这台 Mac。开始前,先装好 aidc 并登录,见接上一台 Mac。

接上这台 Mac
$ aidc twin bind zhang-san-twin
已绑定:张三的分身(zhang-san-twin)是你的数字分身。你名下每一台登记过的电脑它都能用(每台本机策略再收);aidc twin 查看。
$ aidc node setup --full --yes --stay-awake
1/4 装 AIDH 运行时(约 120 MB,sha256 校验)…
下载 AIDH 运行时 0.21.3-2:100%
2/4 登记这台电脑…
4/4 起后台 worker…
这台电脑已接上:zhang-san-mbp(demo-zhang-san-mbp-k3f9)
  AIDH 运行时:刚装好 0.21.3-2
  登记:刚登记(demo-zhang-san-mbp-k3f9 → Demo Company)
  worker:0.8.0 已在后台运行(LaunchAgent ai.aidc.cli-node,登录即起):demo-zhang-san-mbp-k3f9 → https://www.ai-dc.ai
  本机策略:全权(与你本人同权:任何文件、经你的 shell 跑任何命令)· read、write、exec · 先问我:不问(刚改)
  睡眠:插着电时不睡(caffeinate -s;用电池、合上盖子照常睡)· aidc node up --allow-sleep 收回
  数字分身:张三的分身(zhang-san-twin) · 分身 zhang-san-twin 能用:read、write、exec
…

--full --yes 给分身全权,见选择权限。要限定目录时,改用 --allow 和 --scopes。

绑定数字分身

用 aidc twin bind <智能体> 把一个智能体绑成你的数字分身。分身是组织共享池里的一个智能体,代表你。

能绑的智能体要同时满足三条:

  • 在花名册里是私有的。
  • 主人是你。
  • 没有共享给任何组、全员、链接或其他人。

部门和公共智能体不能绑。一个人只绑定一个分身,一个智能体只属于一个人。

还没有合适的智能体时,运行 aidc twin create。平台在组织的共享池里替你建一个私有的分身,主人是你,并直接绑好。名字缺省是「<你的名字>的分身」,用 --name 改。这条命令要组织开通。已经绑了别的智能体当分身时,先运行 aidc twin unbind。

已经有分身时再绑一个,新的会换掉原来那个。aidc twin unbind 解绑,分身立即不能再用你的电脑。

绑定后,分身能用你名下每一台登记过的电脑,不用一台一台授权。每台电脑上的本机策略再收一道。

分身共享给别人以后,就不能再用你的电脑。平台每次使用时都再判一次。

绑定后,运行 aidc twin 查看分身,以及每台电脑它能不能用。● 表示在线,○ 表示不在线。不在线的电脑权限不变,重新在线后分身就能用。

查看分身与电脑
$ aidc twin
我的数字分身:张三的分身(zhang-san-twin)
我名下的电脑(2 台):
  ● zhang-san-mbp(demo-zhang-san-mbp-k3f9):分身 zhang-san-twin 能用:read、write、exec
  ○ zhang-san-pc(demo-zhang-san-pc-7m2q):分身 zhang-san-twin 能用:read、write、exec

接上一台 Mac

这一节装好 aidc、登录,并把这台 Mac 接上。

安装脚本不需要 sudo。

curl -fsSL https://www.ai-dc.ai/developer/cli/install.sh | sh
aidc login

只登录 aidc 不会把电脑接上。登录只让这台电脑拿到你账号的 Key。还没接上时,aidc login 成功后会提示运行 aidc node setup。这样设计是因为登录过的电脑不一定是你的。

aidc node setup 的用法:

aidc node setup [--full --yes | --allow <目录>… --scopes read,write,exec] [--stay-awake] [--name <显示名>]

下面这条命令给分身全权,并让插着电的 Mac 不睡:

aidc node setup --full --yes --stay-awake

限定目录时,改用 --allow <目录>… 和 --scopes read,write,exec,见选择权限。各参数的默认值见参考 · 账号与环境。

aidc node setup 依次做这几件事:

  1. 装 AIDH 运行时。已经装好就跳过。
  2. 登记这台电脑。已经登记过就跳过,在用的 Node Key 不变。
  3. 设本机策略。只在带了策略参数时才改。
  4. 在后台起 worker。
  5. 显示分身能不能用这台电脑。

动手之前,它先检查参数和登录。全权没加 --yes 时,它只说明风险,不做任何改动。没登录时,它提示先运行 aidc login。

同一台电脑重装、重新登记,还是同一条记录。

后台的 worker 只向外连接,电脑不开入站端口。macOS 上它是 LaunchAgent ai.aidc.cli-node,你登录这台 Mac 时自动起来。每次运行 aidc node up,都先从平台取最新的 worker。

接好以后,运行 aidc node status 查看这台电脑的状态。

这台电脑的状态
$ aidc node status
demo-zhang-san-mbp-k3f9 → https://www.ai-dc.ai(中枢眼里:在线)
worker:在跑
本机策略:全权(与你本人同权:任何文件、经你的 shell 跑任何命令)· read、write、exec · 先问我:不问
睡眠:插着电时不睡(caffeinate -s;用电池、合上盖子照常睡)· aidc node up --allow-sleep 收回
数字分身:张三的分身(zhang-san-twin) · 分身 zhang-san-twin 能用:read、write、exec

更新 aidc,运行 aidc update。

接上一台 Windows 电脑

这一节装好 aidc、登录,并把这台 Windows 电脑接上。

先装 Node.js 18 以上。然后下载单文件 https://www.ai-dc.ai/developer/cli/aidc.mjs,用 node aidc.mjs … 运行它。

node aidc.mjs login
node aidc.mjs node setup --full --yes

worker 装成计划任务 ai.aidc.cli-node,以你自己的身份运行。它不需要管理员权限,也不开窗口。全权时,命令经 PowerShell 运行。

单文件的 aidc 不能用 aidc update 更新。要更新,重新下载 aidc.mjs。

选择权限

这一节决定分身在这台电脑上能做什么。本机策略缺省什么都不许。

限定目录(缺省)

aidc node policy --allow <目录>… --scopes read,write,exec [--exec ls,git…|none] [--ask write,exec|none]
参数 做什么
--allow <目录>… 分身能使用的目录。不能设成整个家目录或根目录
--scopes read,write,exec 允许的事:读、写、跑命令
--exec ls,git…|none 允许运行的程序。命令不经 shell,只能跑这里列出的程序
--ask write,exec|none 先在电脑上弹窗问你的操作,60 秒没点就拒绝。缺省问写文件和跑命令

允许的目录之外一律拒绝。软链接指到外面,也拒绝。

「先问我」的弹窗只在 macOS 上有。

全权

aidc node policy --full --yes

全权时,分身在这台电脑上与你本人同权:

  • 能读写任何文件。
  • 命令经你的登录 shell 运行,管道、重定向和任何程序都能用。
  • 能做你登录过的 aidc、浏览器、SSH 密钥能做的事。

全权默认不弹窗问你。

重要

只在你信任这个分身、它的机器人只对你开放私聊时,才打开全权。

收回全权,运行 aidc node policy --scoped。原来允许的目录和程序照旧。

两档都适用

节点目录 ~/.aidc/node 存着 Node Key 和本机策略。任何时候,分身的文件工具都不能碰它。

分身的每一步操作都记在这台电脑上的审计日志里:~/.aidc/node/logs/device-audit.log。

出门也能用

这一节让插着电的电脑不睡。电脑醒着,分身在你出门时才能用它。

电脑睡着、关机或断网时,分身用不了它。worker 只向外连接,平台没有办法叫醒它。

在 Mac 上,aidc node setup 和 aidc node up 都能带 --stay-awake。它让插着电的 Mac 不睡(caffeinate -s)。用电池或合上盖子时,Mac 照常睡。只需设一次,重启后仍然有效。

运行 aidc node up --allow-sleep 收回这个设置。运行 aidc node down 停 worker 时,这个设置也一起收回。

aidc node status 的「睡眠」一行显示这台 Mac 空闲多久睡,以及插电不睡开没开。

在 Windows 上,aidc 不改电源设置。要插电不睡,在 Windows 的电源设置里,把接通电源时的睡眠设成「从不」。

电脑重启以后,你登录一次,worker 才起来。锁屏不影响。

分身能做什么

分身用下面 8 个工具操作你的电脑。

工具 做什么
whoami 现查自己是谁的分身、在哪跑、能用哪几台电脑
list_devices 列出你名下的电脑,以及在不在线、能做什么
list_dir 列一个目录,一次最多 500 项
read_file 读文本文件,一次最多 256 KB
write_file 写文本文件,最大 1 MB
send_file 把电脑上的任何文件发给对方,或拿到分身那边处理。最大 200 MB
put_file 把分身那边的文件存到你的电脑上。最大 200 MB
run_command 跑命令。缺省 120 秒,最长 200 秒

read_file 只读文本文件。二进制文件(PDF、图片、Office、压缩包……)用 send_file。

在企业微信、钉钉里,20 MB 以内的文件,对方收到的是文件本身。更大的文件,对方收到下载链接。下载链接凭链接就能下载,7 天后打不开。

put_file 的上级目录不存在时,会自动建好。

run_command 超时,连它起的子进程一起停掉。输出超过 64 KB 时,保留开头和结尾。时间更长的任务,放到后台运行,再看日志。

分身做不到的事:看屏幕、点鼠标、敲键盘。也做不到要人当场输入的交互式命令。例如要输密码的 sudo、vim,或要按 y 确认的安装程序。能用参数代替交互的命令(比如 -y),照常能跑。

谁能让分身用电脑

平台每一轮都判断是谁在跟分身说话,再决定能不能用你的电脑。

谁在跟分身说话 分身能不能用你的电脑
网页工作台、AIDC Desktop、Agent API 的个人 Key、Engine 试运行 能用。平台认得出是你
企业微信、钉钉的私聊 缺省能用。平台认不出是谁
群聊 不能用。群里谁都能 @ 它
平台认得出是别人在跟你的分身说话 不能用

企业微信、钉钉认不出是谁,所以要让分身的机器人只对你开放私聊。

调整与收回

用 aidc node grant 和 aidc node revoke,一台一台地调整分身能用的电脑。

  • aidc node grant --scopes read:这台电脑对分身只保留读。
  • aidc node grant --only-me:只在你本人跟分身说话时,分身才能用这台电脑。
  • aidc node revoke:这台电脑不给分身用,立即生效。
  • aidc node grant:不带参数时,恢复缺省的全开。
  • aidc node down:停 worker。登录这台电脑时,worker 也不会自动起来。

恢复一台被排除的电脑后,在这台电脑上再运行一次 aidc node up。

企业微信、钉钉认不出人,所以 --only-me 在那里不可用。

命令行

下表列出本页涉及的命令。

命令 做什么
aidc twin 显示你的分身,以及每台电脑它能不能用
aidc twin create 平台替你建一个数字分身并绑好。要组织开通
aidc twin bind <智能体> 绑定数字分身。已有分身时,换成新的
aidc twin unbind 解绑。分身立即不能再用你的电脑
aidc node setup 一条命令接上这台电脑
aidc node join 只登记这台电脑,不起 worker
aidc node policy 设本机策略
aidc node up 起 worker。每次运行都先取最新的 worker
aidc node down 停 worker
aidc node status 显示这台电脑的状态
aidc node list 列出你名下所有电脑
aidc node grant 调整这台电脑对分身的用法;不带参数则恢复全开
aidc node revoke 这台电脑不给分身用,立即生效

每条命令的参数与默认值,见参考 · 账号与环境。

API

调用下表的端点,可以查看、绑定和设置分身与电脑。

方法 路径 做什么
GET /api/v1/twin 查看数字分身,以及名下每台电脑它能不能用
POST /api/v1/twin 建数字分身并绑好(aidc twin create 用它)
PUT /api/v1/twin 绑定数字分身。一个人一个,换绑即换掉原来那个
DELETE /api/v1/twin 解绑
GET /api/v1/devices 查看名下的电脑:在不在线,分身能不能用
POST /api/v1/devices 登记这台电脑(aidc node join 用它)
POST /api/v1/devices/grants 调整这台电脑对分身的用法:收窄、只在本人说话时可用,或恢复
POST /api/v1/devices/grants/revoke 这台电脑不给分身用
POST /api/v1/devices/mcp 设备 MCP,智能体那一侧的工具(只认平台发给智能体的设备令牌)

绑定、登记和单台设置只认账号的开发者 Key(aidc-dk-…)。Key 所属的账号要是 developer 或 member。

限制

这一节列出分身各项操作的上限。

项目 上限
列目录 500 项
读文本 256 KB
写文本 1 MB
收发文件 200 MB
企业微信、钉钉里直接收到的文件 20 MB
单条命令 缺省 120 秒,最长 200 秒
命令输出 64 KB,超过时留开头和结尾
下载链接 7 天
支持的电脑 macOS(Apple 芯片)、Windows x64

Linux 和 Intel 芯片的 Mac 都不支持。它们没有 AIDH 运行时。

常见错误

遇到下表的现象,按「怎么办」处理。

现象 原因 怎么办
aidc twin 里电脑显示 ○ 电脑睡着、关机、断网,或 worker 没在跑 叫醒或打开电脑;在那台电脑上运行 aidc node up
aidc node up 报 worker_not_ready,最近的错误是 401 这台电脑在别处重新登记过,这里的 Node Key 失效了 运行 aidc node join,再运行 aidc node up
aidc node setup 报 unsupported_platform 这台电脑是 Linux 或 Intel 芯片的 Mac 换一台 macOS(Apple 芯片)或 Windows x64 的电脑
aidc node join 报「先装 AIDH」 本机还没有 AIDH 运行时 运行 aidc aidh install,或直接用 aidc node setup
分身在群聊里说不能用电脑 群聊里分身不动你的电脑 改在私聊里跟它说
设了 --only-me 后,企业微信里分身用不了这台电脑 企业微信认不出是你 运行 aidc node grant 恢复缺省,或在网页工作台里跟分身说
下载链接打开时说「已经失效」 链接发出超过 7 天 让分身再发一次

下一步

本页由 developer/docs/devices.md 生成 · Markdown 原文 · llms.txt