Extension
Extension 是一个代码包,在自己的后台进程里运行。在 0.1.41 里,它注册 Connector:在外部渠道和 Cowork 的 Gateway 之间收发消息的那一端。声明了浏览器权限,它还能读、操作它列出的网站的网页。
怎么上线
- 把包放进
<Cowork 主目录>/extensions/packages/<name>/,或者在 设置 › 扩展 里用 从本机目录安装 把一个文件夹复制进去。 - 设置 › 扩展 里显示它在等批准。这时里面什么都不会运行。
- 你批准并打开开关。Cowork 启动它的进程,调用它的
activate函数。 - 文件夹里任何文件变了,都要重新批准。
包里有什么
| 文件或文件夹 | 内容 |
|---|---|
package.json | name,必须和文件夹名相同(小写字母、数字和连字符);version;description;pi.extensions,只列一个入口文件;以及 Cowork 段,声明 connectors、capabilities、origins、platforms |
入口文件,比如 index.mjs | 导出 activate(api),对每个声明的 Connector 调 api.registerConnector(...) |
<Cowork 主目录>/extensions/logs/<name>.log | Extension 写的日志;文件由 Cowork 写 |
<Cowork 主目录>/extensions/data/<name>/ | Extension 自己的数据文件夹,它的进程就在这个文件夹里运行 |
能声明什么
| 项 | 意思 |
|---|---|
connectors | 它要注册的 Connector ID。注册没列出的 ID 会被拒绝 |
capabilities | browser 操作网页;audio(需要 browser)采集网页的声音;platform-gate-v1 才能用 platforms |
origins | 有 browser 时必填:它能用的确切网站,1 到 20 个,比如 https://example.com |
platforms | 它支持的电脑:darwin-arm64、darwin-x64、win32-x64 |
Connector
一个 Connector 有一个 id 和三个函数。start(ctx) 启动它:连接、定时器在这里开,不要放在 activate 里;限时 5 秒。stop() 调多次也要安全;限时 5 秒。send(reply) 把一条回复送到渠道;限时 30 秒。通过 ctx,Connector 把收到的消息交给 Cowork(ctx.emit)、写日志(ctx.log),有浏览器权限时用 ctx.browser。
限制
- 只有你能批准 Extension,AI 不能。
- 批准只对你批准时的那些文件有效。改一个字节就要重新批准。
- 一个包最多 200 个文件、5 MB。不安装 npm 包和
dependencies。 - 进程崩溃后,Cowork 稍等一会儿自动重启它。
- 0.1.41 里 Extension 不能给 AI 加工具或命令。要给 AI 新的做事方法,写 Skill。
相关
- 扩展 安装、批准、打开一个 Extension
- Gateway 外部渠道消息 Connector 的消息去哪
- Injection Extension 在网页里运行的脚本