agent-harness は何をしますか?
コーディングエージェントを構築するための、ストリーミングループ、ツール制御、セッション保存、安全な認証情報、レイヤー構成を備えたクリーンルームハーネスです。
機能
- ストリーミングループ: エージェントの応答をストリーミング形式で処理し、リアルタイムな出力制御を可能にします。
- ツール制御: エージェントが実行できるツール(コマンド、API呼び出しなど)を細かく制御します。
- セッション保存: エージェントの状態を保存し、再開できるようにします。
- 安全な認証情報: 環境変数や暗号化ストアを使用して、認証情報を安全に管理します。
- レイヤー構成: 基本設定、環境別設定、ユーザー設定などをレイヤー化して適用します。
使用方法
# ハーネスをインストール
npm install agent-harness
# 設定ファイルを作成
cat > agent-config.yaml <<EOF
layers:
- base: {}
- env: production
- user: my-profile
streaming:
enabled: true
tools:
allowed:
- git
- npm
- node
session:
save: true
path: ./sessions
EOF
# エージェントを起動
npx agent-harness run --config agent-config.yaml
構成
ハーネスは以下のレイヤーで構成されます:
- ベースレイヤー: デフォルトの設定
- 環境レイヤー: 実行環境に基づく設定(development, staging, production)
- ユーザーレイヤー: ユーザー固有の設定
各レイヤーはマージされ、後方のレイヤーが前方のレイヤーを上書きします。
ツール制御
ツール制御は tools.allowed リストで指定されたコマンドのみを実行するように制限します。
tools:
allowed:
- git
- npm
- node
blocked:
- rm -rf /
セッション管理
セッション管理は、エージェントの状態をファイルに保存し、後で再開できるようにします。
const harness = require('agent-harness');
const session = await harness.saveSession();
// 後で
await harness.loadSession(session.id);
認証情報管理
認証情報は環境変数または暗号化ストアから読み込まれます。
export GITHUB_TOKEN=my-secret-token
対応プラットフォーム
- Claude Code
- Cursor
- Codex
- その他、OpenAI互換のエージェント
ライセンス
MIT