🤖

Clineから学ぶ快適なエージェントの要素

2025/01/10に公開

Clineから学ぶ快適なエージェントの要素

Clineは、開発にまつわるあらゆるタスクを自動化してくれます。特に、思考停止で行っている面倒な部分を解消してくれるのが嬉しいです。業務支援ツールやエージェントを作る立場として、Clineを快適たらしめる要素を挙げてみました。いつかエージェント設計のチェックリストに進化させるモチベーションで書いています。

注意事項

  • ここ半年のGitHub CopilotやCursorなどを知らない人が書いており、比較を目的としていません。
  • Clineの前提説明を端折っています。

前提共有

こっちの Cline

https://github.com/cline/cline

  • (本来ならここでデモを挟みます。)

前に書いたやつ
https://zenn.dev/nassy/articles/4492b3e71d8e8e

(私の)Clineの使い方

  • 機能実装のお願いをする (Zero-shot)
  • 機能の実装をお願いする (Few-shot)
    • 既存ファイルを指定し、同じ設計で新しく実装を依頼します。
  • ○○が実装されているところはどこか質問します。
  • 実装を読んでテストコードを書いてもらいます。
  • テスト要件が通るまでプロダクトコードを修正してもらいます。
  • etc…

快適要素

  • タスクを完遂するために潜むサブタスクも片付けてくれるので、(きっちり設計すれば)少しの指示で複数のタスクを片付けてくれる設計になっています。

    • 例1: 実装タスクを進めるためにはマイグレーションを実行して環境を最新化するステップが潜んでいた -> マイグレーションを実行したうえで実装タスクを進めてくれます。
    • 例2: git pushしてほしいと指示 -> pushには型チェック、テスト、コードフォーマットの実行が必要なので、それらを実行してくれます。
  • 入力するのが面倒な環境のコンテキストを拾ってくれます。

    • 具体例としては以下のような情報です。
      • 動作環境
      • コンソールに吐かれるエラー
      • 開かれているファイル(エディタのタブ)
  • 普段使いのツールに溶け込んでいます。

    • 人間が利用するのと同じインターフェース(エディタ、diff view、terminal)を自動操縦しています。
    • Clineが起動したterminalを、そのまま人が利用できます。
  • カスタマイズが容易です。

    • ツールの追加や前提知識を、ルールファイルやcustom instructionに追加できます。
  • エージェントの意思決定過程が見られます(内部処理をトレース可能)。

    • 不可解な挙動をした際にコードを読めるほか、debugツールでステップ実行できます。
  • 自動化の程度を調整できます。

    • 自動承認する度合いを設定で調整できます。
  • 最初にゴールまでのステップを見せてくれます。

  • タスクのまとめをしてくれます。

  • AutoApproveしていてもガードレールがあるので、APIが破産しない安心感を与えてくれます。

    • APIコールを規定回数越えるとストップします。
  • 介入できます。

    • コメントしてヒントを与えたり、ゴールを変更できます。

最後に

励みになるので、良かったらいいね(💕)をお願い致します。

Discussion