---
name: teleprompter-agent
description: 直接操作用户浏览器里打开的「口播提词器」（大炮AI工坊的网页应用）：用户想让你替他在这个网页里做事、改东西、出结果时使用。你每调一个工具，用户都能在页面上实时看到效果。
---

# 用 Agent 直接操作「口播提词器」

打开就能用的口播提词器：粘贴台词就滚，按「字/分钟」调速，手机遥控 iPad，全部免费、不加水印、不限字数

这是「大炮AI工坊」的网页应用（https://zjqsai.com/app/teleprompter）。网站给它开了 **Agent 调用**：你带着用户的 AI 助手口令发指令，网站转给用户浏览器里开着的那个页面执行，结果再回给你。**页面在用户的浏览器里实时变化**，所以你做的每一步用户都看得见、随时能叫停。

## 1. 开始前（要用户自己做的）

1. **AI 助手口令**：让用户打开 https://zjqsai.com/account#agent ，点「生成口令」，把那段话复制给你（`dpw_` 开头）。已经给过就不用再要。
2. **打开网页**：让用户登录同一个账号，在浏览器里打开 https://zjqsai.com/app/teleprompter ，**保持页面开着**（可以切到别的窗口，但别关）。手机上建议全屏打开。

口令只放在请求头 `Authorization: Bearer <口令>` 里，不要写进文件、日志或公开的地方。

## 2. 先看能调哪些工具

```bash
curl -fsS https://zjqsai.com/api/agent/apps/teleprompter -H "Authorization: Bearer $TOKEN"
```

返回 `{online, tools, hint, …}`：

- `online: false`：用户还没打开页面（或关了）。照 `hint` 请用户打开，等用户说打开了再 GET 一次。
- `tools`：这个应用给 agent 的工具清单，每个有 `name`、`description`、参数说明（`input_schema` / `parameters`）。**只调清单里有的工具，参数照说明填**；清单可能随页面状态变，出错时再 GET 一次。

## 3. 调工具

```bash
curl -fsS -X POST https://zjqsai.com/api/agent/apps/teleprompter/call -H "Authorization: Bearer $TOKEN" -H "content-type: application/json" \
  -d '{"tool":"<工具名>","args":{…}}'
```

- 一般几秒内返回 `200 {id, done: true, result}`：`result` 就是页面执行后的结果（多数应用是 `{ok: true, data}` 或 `{ok: false, error: {code, message, hint}}`）。
- 慢的操作最多等 50 秒，没等到返回 `202 {id, done: false, next}`：GET `next` 继续等（结果保留 10 分钟）。
- 一次只发一个调用，等到结果再发下一个；改了东西后简单告诉用户“页面上第几处变了”，让用户看一眼。

| 状态码 | 意思 | 怎么办 |
| --- | --- | --- |
| 401 | 没带口令或口令失效 | 请用户在「我的」重新生成口令 |
| 409 | 用户的页面没开着（超过 40 秒没联系就算关了） | 请用户打开 https://zjqsai.com/app/teleprompter |
| 429 | 太频繁（每分钟最多 120 次），或页面还有很多调用没执行完 | 等一会儿 |
| 400 / 404 | 工具名或参数不对、应用不支持 | 重新 GET 工具清单 |

## 4. 规矩

1. 动手前先跟用户说清打算怎么做；大的改动（清空、整体换风格、删除）先确认。
2. 这个应用的工具不扣积分；工具说明里写了“积分”的除外，调用前先问用户。
3. 页面上的按钮用户也能点；你和用户同时改时，以页面当前状态为准（先调读取状态的工具再改）。
4. 用户把页面关了，或说“停”，就停下，不要反复重试。
5. 导出、下载这类结果会出现在用户的浏览器里，告诉用户去页面上保存。
