App Binding
App Binding 让你接入一个已安装的原生应用——Oratorio、IDE 插件,或你自己写的工具——并把它的工具授予某一个指定线程使用。账号、授权和高风险操作始终由应用自己掌控;DotCraft 只负责控制模型能看到哪些工具,并对每一次调用做审批与审计。

NOTE
一次绑定只作用于单个线程。除非你另行授予,其他线程、其他应用都看不到它。子代理(SubAgent)和分叉线程不会继承绑定,导入的线程也不会自动重新激活绑定。
三个独立步骤
应用访问被刻意拆成几个独立步骤,避免任何意外授予:
| 步骤 | 它做什么 | 它不做什么 |
|---|---|---|
| 1. 安装插件 | 让应用及其工具目录在 DotCraft 中可见。 | 不给任何线程授权。 |
| 2. 安装或打开原生应用 | 让应用可通过其注册的系统标识被拉起。 | 不连接你的账号。 |
| 3. 连接,再绑定线程 | 连接应用账号,再把选定的 scope 授予所选线程。 | 只授予你选中的那个线程。 |
连接会通过 deep link(例如 oratorio://dotcraft/connect?…)打开应用,由应用展示它自己的确认界面。DotCraft 不会要求你选择可执行文件、源码目录或命令行。
你授予了什么
绑定线程时,你批准的是一组 scope。每个 scope 带有风险级别,决定其工具如何暴露给模型:
| 风险 | 含义 | 默认暴露方式 |
|---|---|---|
| Read(读) | 只读取应用状态,不做任何修改。 | 直接加载。 |
| Mutate(改) | 修改应用自有状态或排队操作。 | 延迟加载——按需才出现。 |
| External write(外部写) | 可发布、发送或写入外部系统。 | 延迟加载,且通常走应用内确认。 |
高风险工具遵循"先提议、后确认":Agent 排队一个操作,由你在应用内批准或发布。每次工具调用都会记入 DotCraft 的审计链路,应用还会在此之上保留自己的授权记录。
在 Desktop 中
App Binding 出现在三个位置:
- 插件详情页——安装插件、查看原生应用是否已安装、连接、绑定当前线程、重连或撤销。
- 线程头部——为当前线程绑定、刷新、查看、打开应用或撤销。
- Welcome 流程——在发送第一条消息之前,就用一个或多个已绑定的应用新建线程。
连接状态与绑定状态始终分开展示,因此"我的账号已连接"和"这个线程有访问权"是两回事,一眼就能区分。
绑定状态一览
| 状态 | 含义 |
|---|---|
| Active(活跃) | 授权有效,应用的工具对该线程可用。 |
| Offline(离线) | 授权仍在,但应用已关闭或不可达。调用会快速失败;重新打开应用即可重连。 |
| Expired(过期) | 授权已超时。工具会在下一个安全点被移除。 |
| Revoked(已撤销) | 你或应用切断了访问。工具立即被禁用。 |
关闭原生应用会把绑定置为 offline,而不是删除——重新打开即可重连并重新挂载工具。你可以随时在线程或插件面板中刷新或撤销绑定。
示例
- Oratorio——把 Oratorio 看板接入某个线程,让 Agent 列出条目、查看卡片、创建任务、排队评审轮次。
- Teams——DotCraft 的多 Agent 看板本身就是一个托管式 App Binding 运行时。参见 Teams。
- 你自己的工具——用 SDK 把任意服务封装成一个应用。参见 App Binding 集成 自行构建。
参见
- App Binding 集成——构建一个可接入 DotCraft 的应用。
- 插件与工具——插件如何打包应用、技能与工具。
- Teams——构建在同一绑定层之上的托管运行时。
- 入口——App Binding 可以运行在哪些入口背后。