これは、APIテストおよびAPIライフサイクル管理のためのコマンドラインツールであるApidog CLIがどのように開発されたかを共有する10部構成のシリーズです。順番に読むか、興味のある記事に直接飛んでください:
| タイトル | 焦点 | |
|---|---|---|
| 1 | 私たちは126のMCPツールを構築しました。しかし、それはAgentにとって最善の解決策ではありません。 | 問題の発見 |
| 2 | なぜ私たちは全く新しいApidog CLIを開発したのか | アーキテクチャ開発 |
| 3 | 黄金律:CLIはファクトを生成し、モデルはファクトに基づいて行動する | コア哲学 |
| 4 | agentHints:CLIにAgentとの対話方法を教える |
構造化された出力 |
| 5 | SKILL:運用経験をコードとして出荷する | 運用経験 |
| 6 | 数字は嘘をつかない:ツール呼び出し30%減、トークン25%減 | 定量的な結果 |
| 7 | PRDからテストループまで:Apidog CLIを使用した完全なAgentワークフロー | 実践チュートリアル |
| 8 | AgentツールにとってCI/CD互換性が不可欠である理由 | DevOpsの視点 |
| 9 | AIブランチ:AI Agentによるより安全なプロジェクト変更 | セキュリティレイヤー |
| 10 | Spec-Firstは昨日。Skill-Firstへようこそ。 | ビジョンと未来 |
従来のCLI出力は人間向けです。Agentは構造化された結果、失敗の理由、次ステップの提案を必要とします。agentHintsは、製品経験を機械可読なガイダンスに変換します。
CLI出力のギャップ
従来のCLI出力は**人間**向けに設計されています。
| 成功 | 失敗 |
|---|---|
| 「成功」または「完了」と表示 | エラーメッセージを表示 |
| 作成されたリソースを表示する場合がある | スタックトレースを表示する場合がある |
| 人間が読み、次のステップを決定 | 人間が読み、デバッグ |
これは人間には機能します。人間は:
- 曖昧なメッセージを解釈する
- 次に何をすべきかを決定する
- 以前のコマンドのコンテキストを記憶する
- 専門知識を適用して続行する
しかし、Agentの動作は異なります。
Agentが本当に必要とするもの
Agentは単に結果を読むだけではありません。**結果を次のタスクチェーンに接続する**必要があります。
| Agentが必要とするもの | 理由 |
|---|---|
| 構造化された結果 | プログラムによる出力の解析が必要 |
| 失敗の理由 | 一般的なメッセージではなく、具体的な詳細が必要 |
| 次ステップの提案 | 次に何をすべきかについてのガイダンスが必要 |
人間は「リソースが正常に作成されました」と見て、「おそらく作成されたものを確認し、その後いくつかのテストを実行すべきだ」と理解します。
Agentは「リソースが正常に作成されました」と見て…次に何をすべきか全く分かりません。
agentHints:ソリューション
Apidog CLIは、その出力にagentHintsを追加します。
典型的な応答は次のようになります:
{
"success": true,
"data": {
"id": "12345",
"name": "Health Check Test Case"
},
"agentHints": {
"summary": "Test case created successfully.",
"nextSteps": [
"Read the created test case back to confirm structure.",
"Add assertions if the test case needs response validation.",
"Add the test case to a test scenario for integration testing.",
"Run related tests after adding to scenario."
]
}
}3つのコンポーネント:
| コンポーネント | 目的 |
|---|---|
success + data |
実際の結果 |
summary |
人間が読める要約 |
nextSteps |
機械が読める次ステップの提案 |
実行慣性の問題
私たちが観察した実際の問題は次のとおりです:
リソースを正常に作成した後、モデルはしばしば次の書き込みを直接生成し続けます。
例:
Agent: テストケースを作成
CLI: 成功を返す
Agent: (読み戻しなしに)すぐにテストシナリオを作成
Agent: すぐにテストを実行
結果: シナリオの構造が間違っており、テストが失敗複雑なビジネスプロセスにおいて、**機械的な継続実行は適切ではありません。**
最も正しいアプローチはしばしば次のとおりです:
- リソースを作成
- **まず読み戻す**
- 構造を確認
- それから続行
読み戻しが重要な理由
読み戻しをスキップすると、実際の問題が発生します:
| 問題 | 原因 |
|---|---|
| 誤ったデフォルト値 | サーバーがAgentが指定しなかったデフォルト値を埋める |
| 関連IDの欠落 | インポートが新しい内部IDを生成する可能性 |
| 構造的バリアント | フロントエンドが特定のパースに依存する場合がある |
| 誤った仮定 | Agentが「想像」に基づいて続行する |
実際の構造が読み戻されない場合、Agentは自身の推測に基づいて書き込みを続けがちであり、実際のデータに基づきません。
ナビゲーターとしてのagentHints
agentHintsは、製品経験を機械可読な次ステップの提案に変換します。
それは、**Agentが意思決定をする必要があるまさにその場所**に表示されます。
テストケース作成後の例:
{
"agentHints": {
"nextSteps": [
"Read back the created test case with --with-case-detail flag.",
"Validate any updates with cli-schema before writing.",
"Run tests after completing test scenario."
]
}
}Agentは:
- 出力を読む
agentHintsをパースするnextSteps[0]に従う:テストケースを読み戻す- 実際の構造を確認する
- その後、正確な情報に基づいて続行する
CLIの役割変換
これにより、AgentワークフローにおけるCLIの意味が変化します。
| 古い役割 | 新しい役割 |
|---|---|
| コマンド実行者 | ワークフローナビゲーター |
| 結果の表示 | 次のステップのガイド |
| 人間が読める出力 | Agentが読める構造 |
| 単発の応答 | 継続的なガイダンス |
CLIは軽量なステータスナビゲーターになります。
組み込みのワークフローツリー
Apidog CLIには、組み込みの**何千ものツリー構造ワークフロー**があります。
これらは単なるハードコードされた提案ではありません。それらは:
| 機能 | 説明 |
|---|---|
| コンテキストを意識 | 提案は特定の操作に合致 |
| リソース固有 | エンドポイント、テストケース、シナリオごとに異なるヒント |
| ワークフローを意識 | 提案は典型的なシーケンスを反映 |
| エラーを通知 | 成功と失敗で異なる提案 |
テストシナリオの更新成功後の例:
{
"agentHints": {
"summary": "Test scenario updated successfully.",
"nextSteps": [
"Run the test scenario to verify changes.",
"Check the test report for any failures.",
"If failures occur, read back scenario steps for debugging."
]
}
}バリデーション失敗後の例:
{
"success": false,
"error": {
"code": "VALIDATION_ERROR",
"message": "Field 'comparator' has invalid value",
"details": [...]
},
"agentHints": {
"summary": "Validation failed. Fix the errors and re-validate.",
"nextSteps": [
"Review the error details in the output.",
"Adjust the JSON file based on error suggestions.",
"Re-run cli-schema validate before writing."
]
}
}失敗でさえもナビゲート可能になります。
agentHintsによるより安全なループ
agentHintsを使用した完全なワークフローを追ってみましょう:
ステップ1: Agentがテストケースを作成
↓
CLI出力: success + agentHints
↓
agentHints.nextSteps[0]: 「作成されたテストケースを読み戻す」
↓
ステップ2: Agentが読み戻す (実際の構造で)
↓
CLI出力: テストケース構造 + agentHints
↓
agentHints.nextSteps[0]: 「必要に応じてアサーションを追加」
↓
ステップ3: Agentがアサーションを追加する (実際の構造に基づいて)
↓
CLI出力: success + agentHints
↓
agentHints.nextSteps[0]: 「テストを実行」
↓
ステップ4: Agentがテストを実行
↓
CLI出力: テストレポートすべてのステップがガイドされます。盲目的なジャンプはありません。仮定もありません。
比較:agentHintsありとなし
| シナリオ | agentHintsなし | agentHintsあり |
|---|---|---|
| 作成後 | Agentは次の書き込みを続行 | Agentはまず読み戻しを行う |
| 更新後 | Agentは成功を仮定 | Agentは構造を確認 |
| バリデーション通過後 | Agentはすぐに書き込み | Agentは書き込み後、読み戻しを行う |
| バリデーション失敗後 | Agentはエラーに混乱 | Agentは具体的な修正提案を得る |
| テスト実行後 | Agentは合否を確認 | Agentはデバッグガイダンスを得る |
次は何ですか
CLIがAgentに次のステップをガイドできるようになった今、残る疑問は次のとおりです:
Agentはそもそもどのワークフローに従うべきかをどうやって知るのでしょうか?
第5部、SKILL:運用経験をコードとして出荷するでは、SKILLがどのようにワークフロー知識(いつコマンドを使用するか、どの順序に従うか、どのフィールドを推測すべきでないか)をパッケージ化するかを探ります。
主要なポイント
- 従来のCLI出力は人間指向であり、Agentは構造化されたガイダンスを必要とする
- agentHintsはJSON出力で要約と次ステップの提案を提供する
- 実行慣性によりAgentは読み戻しをスキップするが、agentHintsはこれを防ぐ
- CLIは実行者からナビゲーターへと役割を変換する
- 組み込みのワークフローツリーにより、すべてのステップがナビゲート可能になる
- agentHintsがあれば、失敗でさえも対処可能になる
Apidogをダウンロードして、1つのワークスペースでAPIの設計、モック、テスト、ドキュメント作成を行いましょう。コマンドラインAPIテスト、CI自動化、AI Agentワークフローに関するApidog CLIの詳細については、こちらをご覧ください。
