原文(日本語に翻訳)
外部セッションが --json-schema を使用し、サブエージェントもスキーマを指定している場合に、ワークフローのサブエージェントがAPI 400エラーで失敗する問題を修正しました。
原文(英語)
Fixed workflow subagents failing with API 400 when the outer session uses --json-schema and the subagent also specifies a schema.
概要
--json-schema フラグで構造化出力スキーマを指定して実行しているセッション内で、サブエージェント(ワークフロー)もスキーマを独自に指定している場合に、API 400エラーが発生してサブエージェントが失敗するバグが修正されました。外部セッションとサブエージェントが異なるJSONスキーマを独立して使用できるようになります。
基本的な使い方
--json-schema を使ったセッションでサブエージェントを呼び出す場合:
bash
# 外部セッションでJSONスキーマを使用
claude --json-schema '{"type": "object", "properties": {"result": {"type": "string"}}}' \
-p "データを解析してください"修正後は、このセッション内でサブエージェントが独自のスキーマを使用しても、API 400エラーが発生しません。
実践例
ユースケース: 構造化出力を使ったワークフロー
bash
# 親セッションのスキーマ
cat > /tmp/parent-schema.json << 'EOF'
{
"type": "object",
"properties": {
"summary": {"type": "string"},
"tasks": {"type": "array", "items": {"type": "string"}}
}
}
EOF
# 親セッションを起動
claude --json-schema "$(cat /tmp/parent-schema.json)" -p "プロジェクト計画を立ててください"このセッション内でサブエージェントが別のスキーマを使う場合:
# CLAUDE.md や会話内でのサブエージェント設定
---
json_schema: |
{
"type": "object",
"properties": {
"code": {"type": "string"},
"tests": {"type": "string"}
}
}
---修正前はこの組み合わせでAPI 400エラーが発生していましたが、修正後は正常に動作します。
ユースケース: 複数ステップの構造化出力パイプライン
bash
# ステップ1: 分析(外部セッション)
ANALYSIS=$(claude --json-schema "$ANALYSIS_SCHEMA" -p "コードを分析して")
# ステップ2: 実装(サブエージェントも独自スキーマを使用)
# 修正後: ネストしたスキーマ使用が正常に動作
claude --json-schema "$IMPL_SCHEMA" -p "分析結果に基づいて実装して: $ANALYSIS"注意点
- この問題はサブエージェントを含むワークフローで
--json-schemaを使用する場合に特有のものでした - API 400エラーは「Bad Request」を意味し、スキーマの競合が原因でした
--json-schemaは構造化出力が必要な場合(他のシステムとのデータ連携など)に有用です