🔧 ハーネスプログラミング リファレンス
VS Code + GitHub Copilot Agent Window / Kimi Code によるエージェント駆動開発の概要ガイド
📖 ハーネスプログラミングとは
コーディングハーネス(Coding Harness)とは、VS Code等のIDE内でLLM(言語モデル)と開発環境を橋渡しするレイヤーです。
LLMは本質的にテキストを生成するだけで、ファイル編集やコマンド実行は自力ではできません。ハーネスがその「テキスト → アクション」の変換を担います。
「モデルはエンジン、ハーネスは車」 — ハーネスの設計品質がエージェント開発の品質を左右する
🔄 エージェントループ
ハーネスの中核は Think → Act → Observe → Think Again のツール呼び出しループです。
👤 ユーザー指示
→
📋 プロンプト構築
→
🤖 モデル呼び出し
→
⚙️ ツール実行
→
📊 結果を記録
→
🔁 ループ継続 or 完了
用語整理
- ターン:ユーザーが1メッセージ送り、エージェントが最終レスポンスを返すまで
- ラウンド:ループ1周(プロンプト構築→モデル呼出→ツール実行→結果記録)
- 1ターンの中で何ラウンドも回ることがある
🎯 ハーネスの3つの主要な役割
| 役割 | 内容 |
|---|---|
| ① コンテキスト組み立て | システムプロンプト、ユーザーの質問、ワークスペース構造、会話履歴、ツール結果、カスタム指示、メモリなどを組み合わせてプロンプトを構築する |
| ② ツール公開 | read_file, replace_string_in_file, run_in_terminal, semantic_search など、モデルが呼び出せるツールをJSON Schemaで宣言。MCPサーバーや拡張機能から追加ツールも統合可能 |
| ③ ツール実行 | モデルがツール呼び出しをリクエスト → 引数を検証 → 実行 → 結果をフォーマット → 次のイテレーションにフィードバック |
🪟 VS Code + GitHub Copilot Agent Window
2つの作業サーフェス
| サーフェス | 特徴 | 向いている場面 |
|---|---|---|
| Editor Window | エディタ・デバッガ・拡張機能と併用。AIはChat viewで補助 | コードを書きながらAIに手伝ってもらう |
| Agents Window(Preview) | プロンプト中心の専用UI。複数プロジェクト横断でセッション管理 | プロンプト主体でタスクをオーケストレーション |
3つの組み込みエージェント
- 🤖 Agent:自律的にファイル横断編集・ターミナル実行・ツール呼び出し
- 📋 Plan:まず計画を立て、承認後に実装エージェントに引き渡し
- ❓ Ask:コードベースや概念について質問(ファイル変更なし)
権限レベル
| レベル | 説明 |
|---|---|
| Default | 読み取り専用ツールのみ自動承認。その他は確認ダイアログ |
| Bypass Approvals | すべてのツール呼び出しを自動承認 |
| Autopilot(Preview) | 全自動。質問にも自動回答しタスク完了まで走り続ける |
モデルごとの差異
- Claude系:
replace_string_in_fileでファイル編集 - GPT系:
apply_patchでファイル編集 - Gemini系:ツール呼び出しを「説明」するのではなく実際に使うようリマインドが必要
🚀 Kimi Code でのハーネスプログラミング
主要機能
| 機能 | 詳細 |
|---|---|
| ルールファイル | AGENTS.md をリポジトリルートに配置してエージェントの振る舞いを定義 |
| エージェントループ | 256Kコンテキストウィンドウでリポジトリ全体を解析、自律的にファイル横断の編集・テスト・デバッグ |
| MCP サポート | 外部ツール(DB・CI/CD・API等)をエージェントに接続可能 |
| サブエージェント | coder / explore / plan を並列で委任可能 |
| デュアルモード | Ctrl-X で Agent Mode ⇄ Shell Mode を切り替え |
| IDE統合(ACP) | kimi acp でVS Codeと統合可能 |
MCP サーバー追加例
# HTTP トランスポート
kimi mcp add --transport http context7 https://mcp.context7.com/mcp \
--header "CONTEXT7_API_KEY: your-key"
# stdio トランスポート
kimi mcp add --transport stdio chrome-devtools \
-- npx chrome-devtools-mcp@latest
VS Code との統合(ACP)
// VS Code settings.json
{
"agent_servers": {
"Kimi Code CLI": {
"command": "kimi",
"args": ["acp"],
"env": {}
}
}
}
⚖️ VS Code + Copilot vs Kimi Code 比較
| 観点 | VS Code + Copilot Agent Window | Kimi Code |
|---|---|---|
| ハーネス設計の自由度 | copilot-instructions.md + MCP + .agent.md | AGENTS.md + MCP + サブエージェント + Lifecycle Hooks |
| メインUI | VS Code統合(Editor / Agents Window) | ターミナルファースト + IDE統合(ACP経由) |
| モデル選択 | GPT-4.1, Claude, Gemini など多数 | Kimi K2.6(OSSでSOTA級) |
| 長時間タスク | セッション制限あり | 12〜13時間連続実行の実績 |
| コンテキスト窓 | モデル依存 | 256K固定 |
| OSS | ❌ プロプライエタリ | ✅ MIT License(CLI部分) |
| 料金 | Copilotクレジット消費 | Kimiメンバーシップ or API Key |
| セッション引き渡し | Local → CLI → Cloud Agent | ターミナル内で完結 |
⚙️ ハーネスカスタマイズ
ルールファイルの対応表
| ツール | ルールファイル | 配置場所 |
|---|---|---|
| GitHub Copilot | copilot-instructions.md | .github/ |
| Claude Code | CLAUDE.md | リポジトリルート |
| Kimi Code | AGENTS.md | リポジトリルート |
copilot-instructions.md の例
# Copilot Instructions
## コードスタイル
- TypeScript strict モードを使用
- 関数にはJSDocコメントを必ず付ける
- エラーハンドリングには try-catch を使う
## テスト
- 新機能には必ずユニットテストを書く
- テスト実行: `npm run test`
## アーキテクチャ
- Azure CaaS環境向けのBicep/ARMテンプレートを扱う
- 変更時は既存リソースへの影響を必ず確認すること
AGENTS.md の例(Kimi Code)
# AGENTS.md
## ビルド・テスト
- ビルド: `npm run build`
- テスト: `npm run test`
- リント: `npm run lint:fix`
## コードスタイル
- TypeScript strict モード
- IMPORTANT: すべての公開APIにはJSDocコメントを付けること
## アーキテクチャ
- Azure CaaS環境向けのBicep/ARMテンプレートを扱う
- 変更時は既存リソースへの影響を必ず確認すること
🚀 始め方
VS Code + GitHub Copilot
- VS Code 最新版(1.109+推奨)をインストール
- GitHub Copilot & GitHub Copilot Chat 拡張機能をインストール
- 設定で
chat.agent.enabled: trueを有効化 - Chat view(
Ctrl+Alt+I)を開き、ドロップダウンから Agent を選択 - 自然言語で指示を出す → エージェントが自律的にループ実行
Kimi Code
- インストール:
curl -fsSL https://code.kimi.com/kimi-code/install.sh | bash kimi --version - プロジェクトルートに
AGENTS.mdを作成 - 必要に応じて MCP サーバーを追加
- セッション開始:
cd your-project kimi Tabキーで Thinking モード、Ctrl-Xで Shell モード切り替え
💡 Tips & ベストプラクティス
- 🎯 具体的に指示する:「ログイン機能を追加して。認証はJWT、テストも書いて、npm testで通るように」のように、完了条件を明確に
- 📋 Plan モードを活用:複雑なタスクはまず計画を確認してから実行に移す
- 🔒 権限レベルを段階的に調整:最初は Default → 慣れたら Bypass → 信頼できるタスクは Autopilot
- 📝 ルールファイルを育てる:copilot-instructions.md / AGENTS.md はチームで共有し、継続的に改善
- 🔗 MCPで外部ツールを接続:DB, CI/CD, API等をエージェントから直接操作可能に
- 🔄 使い分けの提案:
- 日常のコーディング・PR作成 → VS Code + Copilot
- 長時間リファクタ・大規模変更 → Kimi Code
- 計画はCopilot → 実行はKimi Code の併用も有効