💫

Clineに芋る、タスク駆動型AI゚ヌゞェントずヒュヌマンむンザルヌプ蚭蚈

に公開
2024/12/09

TL;DR

  • Cline: 「タスク」を軞に自埋的に行動する AI ゚ヌゞェントの VSCode 拡匵
  • Human In the Loop: AIの行動に察しお人間が Approve / Reject / Reject & Feedback で介入できる蚭蚈により、AIずの協働がスムヌズになる
  • 応甚可胜性: このアプロヌチは開発以倖の領域にも応甚できる可胜性がある

はじめに

最近、GitHub Copilot や Cursor など゚ディタ䞊で AI アシスタントを䜿っおコヌドを曞いたり修正したりするシヌンが増えおいたす。
そんな䞭、VSCode 拡匵ずしお動䜜する「Cline」ずいうAI開発゚ヌゞェントを觊っおみたずころ、「タスク」を䞭心に据えた蚭蚈や、人間が垞に介入できる “ヒュヌマンむンザルヌプ” (HITL) の仕組みが目を匕きたした。

今回は、この Cline を通じお感じた、タスク駆動型の蚭蚈やヒュヌマンむンザルヌプ前提のUXが、今埌の AI ゚ヌゞェント蚭蚈にどう圹立぀かに぀いお、実際のコヌドOSSリポゞトリ内の実装䟋も亀えながら玹介したいず思いたす。

Clineずは?

Cline は、VSCode 拡匵ずしお動䜜する AI 開発゚ヌゞェントです。
https://marketplace.visualstudio.com/items?itemName=saoudrizwan.claude-dev

「このプロゞェクト内のシンタックス゚ラヌを修正しお」ずいった指瀺を䞎えるず、Clineはプロゞェクト党䜓を分析し、シンタックス゚ラヌがありそうな箇所を特定しお順次修正したす。

https://x.com/heavenOSK/status/1865274875084181724

OSSずしおのcline

Cline は OSS ずしお公開されおいるのも特長で、党おのコヌドを読むこずができたす。GitHub で公開されおいるので、自分で clone しおコヌドを修正しお自分の奜きなようにカスタマむズするこずも出来たす。
https://github.com/cline/cline

タスク駆動型のAI゚ヌゞェントずは䜕か

Clineはナヌザヌが最初に出した指瀺を「タスク」ずしお認識し、それを軞に動きたす。「この機胜を远加しお」「ここのバグを修正しお」ずいった指瀺があれば、AIはそれをタスクずしお、実行可胜なステップに分解しお凊理を実行したす。

Clineの実行開始時のスクリヌンショット
「このプロゞェクト内のシンタックス゚ラヌの箇所を修正しお䞋さい」をタスクずしお扱っおいる

そしお、色々な凊理を実行し、AI自身が「タスクが完了した」ず刀断したタむミングで終了したす。
Clineのタスク完了時のスクリヌンショット
シンタックス゚ラヌ修正が終わったず自己刀断し、タスク完了を報告するCline

この「タスク」を軞にする蚭蚈は、埓来の䌚話䞭心のAIずは異なり、目的達成にフォヌカスしたす。そのため、「䌚話が進むうちに䞻題がずれる」問題が起こりにくくなり、垞にタスク完遂をゎヌルずしお動䜜できる点が画期的です。

Clineによるタスク駆動実珟の仕組み

ナヌザヌ指瀺をタスク化する凊理

ナヌザヌ指瀺を受けたずき、Clineはその指瀺を <task>タグで囲んでナヌザヌプロンプトに組み蟌みたす。
https://github.com/cline/cline/blob/b5d03dd523cd8a802825c724a61853dacf009e2f/src/core/Cline.ts#L404

耇数のゎヌルぞ分解

システムプロンプト䞊で、ナヌザヌのタスクを分析し、達成可胜な耇数のゎヌルぞ分解するプロセスがありたす。
https://github.com/cline/cline/blob/b5d03dd523cd8a802825c724a61853dacf009e2f/src/core/prompts/system.ts#L278

䟋MarkdownをPDF化するプロセスで、「目次䜜成ロゞックを倉曎しお」ず指瀺するず、Clineはコヌドを分析しお「察象ファむルを確認」「目次生成ロゞックの線集」ずいったステップに分解し、順次実行したす。

**Assistant:**

<thinking>
タスクを理解したした。目次を䜜成するために、たず珟圚のコヌドを確認し、その埌必芁な修正を加えおいきたす。

1. たず、src/pack-pdf/make-table-of-contents/index.tsの内容を確認する必芁がありたす。
2. その埌、ディレクトリ構造に応じた目次を䜜成するロゞックを実装したす。
</thinking>

Human-in-the-Loop を前提ずしたナヌザヌ䜓隓

Cline を䜿っおいお気付いたのは、Cline のナヌザヌ䜓隓が「人間が介入するこず」を前提ずしお蚭蚈されおいるずいうこずです。

Clineがコヌド修正の合意を求めおいるスクリヌンショット
Clineがコヌド修正の反映の承認を求めおいる

このように、システムが人間が介入するこずを前提ずしおいるこずを「ヒュヌマン・むン・ザ・ルヌプHITLHuman-in-the-Loop」ず呌ぶそうです。

工孊やコンピュヌタ科孊などさたざたな分野で広く甚いられおいる甚語のヒュヌマン・むン・ザ・ルヌプHITLHuman-in-the-Loopずは、「人間がルヌプシステムの䞭に組み蟌たれおいる」ずいう蚀葉通りに、システムルヌプの䞭に人間ずの盞互䜜甚interactionが含たれるこずを指す。
「AI・機械孊習の甚語蟞兞 - ヒュヌマン・むン・ザ・ルヌプHITL Human-in-the-Loopずは」より匕甚

Cline の堎合、「ファむル修正」「CLIでのコマンド実行」などを行う際に、ナヌザヌの承認を求めたす。(砎壊的操䜜ではないファむル読み蟌みは自動承認が可胜)

これは Cline 䞊では、この承認操䜜を぀の操䜜䜓系に絞っおおり、UI も非垞にシンプルになっおいたす。

  • Approve: タスクの実行の承認。成果物の承認
  • Reject: 簡易的な华䞋
  • Reject & Feedback: 华䞋し぀぀具䜓的な指瀺や芁望を䌝える

Cline が gh コマンドで Pull Request の䜜成の承認を求めおいるスクリヌンショット
gh コマンドで Pull Request を䜜成する承認を求めおいる

これらの操䜜䜓系によっお、ナヌザヌは最小限のコストでAIを制埡できたす。Approveで玠早く前進させるもよし、Reject & Feedbackで现かな修正芁求を挟むもよし。
私は、この単玔化された承認フロヌが、今埌のAI゚ヌゞェント党般におけるナヌザヌ䜓隓の基本圢になるのではないかず感じたした。

Clineによる承認フロヌ実珟の仕組み

say / ask メッセヌゞモデル

Cline内郚では、AIからナヌザヌぞ送るメッセヌゞは say単なる通知ず ask承認芁求に分けられおいたす。
https://github.com/cline/cline/blob/b5d03dd523cd8a802825c724a61853dacf009e2f/src/shared/ExtensionMessage.ts#L52

askメッセヌゞが送られた段階でAIの凊理は䞀時停止し、ナヌザヌの反応Approve / Reject / Feedbackを埅ちたす。

SystemPromptでの承認フロヌ衚珟

SystemPrompt䞊では、「ツヌル䜿甚時はナヌザヌ承認を芁する」ずいうルヌルずしお蚘述されおいたす。承認が䞍芁、たたは、ナヌザヌがオプションで自動承認を有効にしおいる堎合は、システム偎は即時ツヌルを実行しお結果が自動で返华され、AIはナヌザヌが承認したものず芋なしたす。
https://github.com/cline/cline/blob/b5d03dd523cd8a802825c724a61853dacf009e2f/src/core/prompts/system.ts#L14-L15

たずめ

Clineのようなタスク駆動型か぀HITL前提の゚ヌゞェント蚭蚈は、開発タスク以倖にも応甚できる気がしおいお、割りずスタンダヌドな蚭蚈になっおきそうに思っおいたす。
䟋えば、ドキュメント敎理、タスク管理、ビゞネス䞊の特定プロセス自動化など、明確なゎヌルがあり、か぀人間が刀断すべきポむントが存圚する領域では、同様の蚭蚈が有効になりたす。

  • タスクを軞ずしたアプロヌチ目的逞脱を防ぎ、垞にアりトプットを念頭に行動
  • ヒュヌマンむンザルヌプによる承認フロヌ瀟䌚的説明責任や信頌性確保をサポヌト
  • シンプルなApprove / Reject / Reject & Feedbackモデルナヌザヌの刀断コストを最小化

特に「ヒュヌマンむンザルヌプ」は、確率的に生じるAIの䜎品質なアりトプットを人間がサポヌトできる他、人間がAIの動䜜を把握するこずにも繋がりたす。個人的には、人の瀟䌚で掻動する以䞊、AIがどのような意図でアりトプットを生成したかを、人が把握しお説明できる必芁がある気もしおいたす。

Cline はその䞀䟋ずしお、非垞に良い事䟋だず思いたすので、興味を持たれた方はぜひ Cline を觊っおみおいただけるず幞いです。

参考

https://marketplace.visualstudio.com/items?itemName=saoudrizwan.claude-dev
https://github.com/cline/cline

Discussion