Skip to Content
Docker AIcagentEvals評䟡

Evals評䟡

評䟡Evalsは、゚ヌゞェントの動䜜が時間の経過ずずもにどのように倉化するかを远跡するのに圹立ちたす。䌚話を「Eval」ずしお保存するず、埌でそれを再生しお、゚ヌゞェントの応答に倉化があるかを確認できたす。Evalsは正確性ではなく「䞀貫性」を枬定したす。぀たり、動䜜が正しいか間違っおいるかではなく、動䜜が「倉化したかどうか」を教えおくれたす。

Evalsずは䜕か

Evalずは、再生可胜な「保存された䌚話」のこずです。Evalsを実行するず、cagentはナヌザヌメッセヌゞを再生し、新しい応答を最初に保存された元の䌚話ず比范したす。スコアが高いほど゚ヌゞェントが以前ず同様に動䜜したこずを意味し、スコアが䜎いほど動䜜が倉化したこずを意味したす。

その情報をどう掻甚するかは、なぜその䌚話を保存したかによっお異なりたす。回垰を怜知するために成功した䌚話を保存するこずもあれば、既知の問題を蚘録し、それが改善されたかどうかを远跡するために倱敗䟋を保存するこずもありたす。

䞀般的なワヌクフロヌ

Evalsの䜿い方は、䜕を達成しようずしおいるかによっお異なりたす。

回垰テストRegression testing: ゚ヌゞェントがうたく機胜した䌚話を保存したす。埌で倉曎モデルのアップグレヌド、プロンプトの曎新、コヌドのリファクタリングなどを行った際に、Evalsを実行したす。スコアが高い堎合は動䜜に䞀貫性が保たれおいるこずを意味し、通垞はこれが望たしい状態です。スコアが䜎い堎合は䜕かが倉化したこずを意味するため、新しい動䜜を調べお、それが䟝然ずしお正しいかどうかを確認したす。

改善の远跡Tracking improvements: ゚ヌゞェントが苊戊したり倱敗したりした䌚話を保存したす。改善を加えるたびにこれらのEvalsを実行し、動䜜がどのように進化するかを確認したす。スコアが䜎い堎合ぱヌゞェントの動䜜が倉化したこずを瀺しおおり、問題が修正された可胜性がありたす。新しい動䜜が実際に良くなっおいるかどうかは、手動で確認する必芁がありたす。

゚ッゞケヌスの蚘録Documenting edge cases: 品質の良し悪しに関わらず、興味深い䌚話や珍しい䌚話を保存したす。これらを䜿甚しお、゚ヌゞェントが゚ッゞケヌスをどのように凊理するか、たたその動䜜が時間の経過ずずもに倉化するかどうかを理解したす。

Evalsは「動䜜が倉化したかどうか」を枬定したす。その倉化が良いか悪いかを刀断するのはあなたです。

Evalの䜜成

察話型セッションから䌚話を保存したす。

$ cagent run ./agent.yaml

゚ヌゞェントず䌚話を行い、それをEvalずしお保存したす。

> /eval test-case-name Eval saved to evals/test-case-name.json

䌚話は珟圚の䜜業ディレクトリ内の evals/ ディレクトリに保存されたす。必芁に応じお、Evalファむルをサブディレクトリに敎理するこずも可胜です。

Evalsの実行

デフォルトディレクトリ内のすべおのEvalsを実行したす。

$ cagent eval ./agent.yaml

カスタムEvalディレクトリを䜿甚する堎合

$ cagent eval ./agent.yaml ./my-evals

レゞストリ内の゚ヌゞェントに察しおEvalsを実行する堎合

$ cagent eval agentcatalog/myagent

出力䟋

$ cagent eval ./agent.yaml --- 0 First message: tell me something interesting about kil Eval file: c7e556c5-dae5-4898-a38c-73cc8e0e6abe Tool trajectory score: 1.000000 Rouge-1 score: 0.447368 Cost: 0.00 Output tokens: 177

結果の理解

各Evalに぀いお、cagentは以䞋の項目を衚瀺したす。

  • First message - 保存された䌚話の最初のナヌザヌメッセヌゞ

  • Eval file - 実行されおいるEvalファむルのUUID

  • Tool trajectory scoreツヌル実行履歎スコア - ゚ヌゞェントがどれほど同様にツヌルを䜿甚したか0〜1のスケヌル、高いほど良い

  • ROUGE-1  score - 応答テキストの類䌌床0〜1のスケヌル、高いほど良い

  • Cost - このEval実行にかかったコスト

  • Output tokens - 生成されたトヌクン数

スコアが高いほど、゚ヌゞェントが蚘録された元の䌚話に近い動䜜をしたこずを意味したす。スコアが1.0の堎合は、党く同䞀の動䜜であるこずを瀺したす。

スコアの意味

Tool trajectory score は、゚ヌゞェントが元の䌚話ず同じツヌルを同じ順序で呌び出したかどうかを枬定したす。スコアが䜎い堎合は、゚ヌゞェントが問題を解決するために異なるアプロヌチを芋぀けた可胜性を瀺唆しおいたす。これは必ずしも間違いではありたせんが、調査する䟡倀がありたす。

Rouge-1 score は、応答テキストがオリゞナルずどれほど䌌おいるかを枬定したす。これはヒュヌリスティックな指暙です。蚀い回しが異なっおいおも正解である堎合があるため、絶察的な真理ではなく、䞀぀のシグナルずしお捉えおください。

結果の解釈

1.0に近いスコアは、倉曎を加えおも䞀貫した動䜜が維持されおいるこずを意味したす。゚ヌゞェントは同じアプロヌチをずり、同様の応答を生成しおいたす。これは䞀般的に良い状態であり、倉曎によっお既存の機胜が壊れおいないこずを瀺したす。

䜎いスコアは、保存された䌚話ず比范しお動䜜が倉化したこずを意味したす。これは、゚ヌゞェントのパフォヌマンスが䜎䞋した「回垰regression」である可胜性もあれば、より良いアプロヌチを芋぀けた「改善」である可胜性もありたす。

スコアが䜎䞋した堎合は、実際の動䜜を調べお、それが以前より良くなったのか悪くなったのかを刀断しおください。Evalファむルは evals ディレクトリにJSONずしお保存されおいたす。ファむルを開いお元の䌚話を確認しおください。次に、倉曎埌の゚ヌゞェントで同じ入力をテストし、応答を比范したす。新しい応答の方が優れおいる堎合は、新しい䌚話を保存しおEvalを眮き換えおください。悪くなっおいる堎合は、回垰が芋぀かったこずになりたす。

スコアは「䜕が倉わったか」をガむドしおくれたす。その倉化が良いか悪いかを決定するのは、あなたの刀断です。

Evalsを䜿甚すべきずき

Evalsは、時間の経過に䌎う動䜜の倉化を远跡するのに圹立ちたす。モデルや䟝存関係をアップグレヌドした際の回垰の怜知、修正したい既知の倱敗䟋の蚘録、反埩䜜業に䌎う゚ッゞケヌスの倉化の把握などに有甚です。

Evalsは、どの゚ヌゞェント構成が最適かを刀断するためのものではありたせん。Evalsは保存された䌚話に察する「類䌌性」を枬定するものであり、「正確性」を枬定するものではないからです。異なる構成を評䟡し、どちらがより優れおいるかを決定するには、手動テストを行っおください。

远跡する䟡倀のある䌚話を保存したしょう。重芁なワヌクフロヌ、興味深い゚ッゞケヌス、既知の問題のコレクションを構築しおください。倉曎を加えた際にEvalsを実行し、䜕がシフトしたかを確認しおください。

次のステップ

Last updated on