56 lines
3.4 KiB
Markdown
56 lines
3.4 KiB
Markdown
# RequestCaptchaHelp
|
||
|
||
検索が「人かどうかの確認(CAPTCHA)」で**完全に塞がれた**ときに、人が確認を済ませるまで作業を止めて待つためのツール(issue #1199 段階 2)。
|
||
|
||
## いつ使うか
|
||
|
||
`WebSearch` がこの形で失敗したときだけ:
|
||
|
||
```
|
||
WebSearch error: ブラウザ検索がすべて CAPTCHA で止められ、SearXNG も結果を返しませんでした。
|
||
検索そのものが実行できていません。
|
||
```
|
||
|
||
そのうえで、**検索なしではその依頼を達成できない**ときに呼ぶ。
|
||
|
||
呼ぶ前に確かめること:
|
||
|
||
- URL が分かっているなら `WebFetch` で直接開けば済まないか
|
||
- すでに手元にある資料や `Read` で足りないか
|
||
- 検索がそもそも本筋でない依頼ではないか(雑談・要約・書き換えなど)
|
||
|
||
止まっているあいだ、利用者は確認画面を開いて操作する必要がある。**避けられるなら避けたい手間**なので、他に道が無いときだけ呼ぶこと。
|
||
|
||
## 引数
|
||
|
||
| 引数 | 必須 | 説明 |
|
||
|------|------|------|
|
||
| `reason` | いいえ | 検索が通らないと進められない理由。カードを見る人が読む |
|
||
|
||
## 呼んだあと何が起きるか
|
||
|
||
1. その movement が畳まれ、ジョブが「人の確認待ち」で**停車**する(ワーカーは解放される)
|
||
2. 確認カードが出るのは**元のタスクのチャット**。サブタスクの中で呼んだ場合も、親をたどった先の元のタスクへ出る(#1225)
|
||
3. 誰かが確認を済ませて「解決した」を押すと、**その確認画面で止まっているジョブがまとめて再開**する
|
||
4. 「スキップ」を押した場合は、押したタスクのジョブと**その配下で確認待ちのサブタスク**だけが、検索が使えないまま再開する
|
||
5. 再開すると同じステップの頭からやり直しになるので、もう一度 `WebSearch` を呼ぶこと
|
||
|
||
## 止まらないことがある
|
||
|
||
次のときは停車せず、エラーとして「続けてください」が返る。**呼べば必ず止まるツールではない**。
|
||
|
||
| 返る内容 | 意味 |
|
||
|---|---|
|
||
| この実行では人の確認を待てません | 親をたどっても元のタスクに行き着かない実行(チャットに紐づかない実行)。確認カードを出す先が無いので、止めても押す相手が居ない。検索抜きで組み立てるか `complete` で中断する |
|
||
| まだ検索が塞がっていません | この実行の `WebSearch` が上のエラーで失敗していない。SearXNG 経由で結果が出ているなら塞がっていない |
|
||
| 未解決の求めは残っていません | 確認画面に立っていた旗がもう下りている(誰かが解いた・画面が無い)。もう一度 `WebSearch` を試す |
|
||
|
||
待てるかどうかの判断は「サブタスクかどうか」では決まらない(#1225)。サブタスクでも、親をたどって元のタスクに行き着くなら待てる。行き着かない実行だけが上の 1 行目に当たる。
|
||
|
||
確認画面はワークスペース単位で共有される。同じワークスペースの誰かが一度解けば、そのあとの検索は通る。
|
||
|
||
## 関連
|
||
|
||
- 検索そのものは [WebSearch](websearch.md)
|
||
- 停車と再開の仕組み(sentinel)は [movement 制御フローツール](../movement-control-flow-tools.md)
|