From c04ff8bcf15cc382de67bb5cfde60f3fab5d4411 Mon Sep 17 00:00:00 2001 From: wu21-web Date: Wed, 12 Aug 2026 20:22:37 +0900 Subject: [PATCH 1/3] docs: update cli-refs --- pages/src/content/docs/en/cli-reference.md | 6 +++--- pages/src/content/docs/ja/cli-reference.md | 6 +++--- pages/src/content/docs/ru/cli-reference.md | 6 +++--- pages/src/content/docs/zh/cli-reference.md | 6 +++--- 4 files changed, 12 insertions(+), 12 deletions(-) diff --git a/pages/src/content/docs/en/cli-reference.md b/pages/src/content/docs/en/cli-reference.md index 726c6397a..8fbfbdc8e 100644 --- a/pages/src/content/docs/en/cli-reference.md +++ b/pages/src/content/docs/en/cli-reference.md @@ -89,9 +89,9 @@ staged + unstaged + untracked changes in the current directory's repo. | `--from ` | — | — | Source ref to start the diff from (e.g., `main`). | | `--to ` | — | — | Target ref to end the diff at (e.g., `feature-branch`). When set, OCR computes `merge-base(from, to)..to`. | | `--commit ` | `-c` | — | Single commit to review (vs its parent). | -| `--preview` | `-p` | `false` | Run the filter pipeline but skip the LLM. Prints the file list and exclusion reasons. Honors `--format json`. | +| `--preview` | `-p` | `false` | Run the filter pipeline but skip the LLM. Prints the file list and exclusion reasons. Honors `--format json`; `--format sarif` is not supported (a preview has no completed findings to emit). | | `--resume ` | — | — | Resume from a previous compatible range or commit review session. | -| `--format ` | `-f` | `text` | `text` (human-readable) or `json` (machine-readable comment array). | +| `--format ` | `-f` | `text` | `text` (human-readable), `json` (machine-readable comment array), or `sarif` (SARIF 2.1.0 report for GitHub Code Scanning). | | `--audience ` | — | `human` | `human` streams progress lines; `agent` quiets stdout and prints only the final summary / JSON. | | `--background ` | `-b` | — | Optional requirement / business context injected into the plan + main prompts. | | `--concurrency ` | — | `8` | Maximum number of files reviewed in parallel. | @@ -316,7 +316,7 @@ With no `--path`, the whole repository is scanned. |---|---|---|---| | `--path ` | - | whole repo | Comma-separated repo-relative directories or files to scan (e.g., `internal/agent`, `internal/llm/client.go`). | | `--exclude ` | - | - | Comma-separated gitignore-style patterns to skip (e.g., `**/generated/*,*.pb.go`); merged with `rule.json` excludes. | -| `--preview` | `-p` | `false` | Enumerate and filter files without calling the LLM. Prints the file list, reviewable/excluded counts, total lines, and per-file exclusion reasons. Honors `--format json`. | +| `--preview` | `-p` | `false` | Enumerate and filter files without calling the LLM. Prints the file list, reviewable/excluded counts, total lines, and per-file exclusion reasons. Honors `--format json`; `--format sarif` is not supported. | ```bash ocr scan --preview # see what would be scanned diff --git a/pages/src/content/docs/ja/cli-reference.md b/pages/src/content/docs/ja/cli-reference.md index cc600fcbe..914bda903 100644 --- a/pages/src/content/docs/ja/cli-reference.md +++ b/pages/src/content/docs/ja/cli-reference.md @@ -85,9 +85,9 @@ ocr r [flags] (alias) | `--from ` | — | — | diff の開始 ref(例: `main`)。 | | `--to ` | — | — | diff の終了 ref(例: `feature-branch`)。設定すると OCR は `merge-base(from, to)..to` を計算します。 | | `--commit ` | `-c` | — | 単一の commit をレビューします(その親との差分)。 | -| `--preview` | `-p` | `false` | フィルタリングのパイプラインを実行しますが LLM はスキップします。ファイル一覧と除外理由を出力します。`--format json` に対応しています。 | +| `--preview` | `-p` | `false` | フィルタリングのパイプラインを実行しますが LLM はスキップします。ファイル一覧と除外理由を出力します。`--format json` に対応しています。`--format sarif` はサポートされていません(プレビューには出力する完了した指摘がありません)。 | | `--resume ` | — | — | 以前の互換性のある範囲または単一 commit レビューセッションから再開します。 | -| `--format ` | `-f` | `text` | `text`(人間が読みやすい形式)または `json`(機械可読なコメント配列)。 | +| `--format ` | `-f` | `text` | `text`(人間が読みやすい形式)、`json`(機械可読なコメント配列)または `sarif`(GitHub Code Scanning 用の SARIF 2.1.0 レポート)。 | | `--audience ` | — | `human` | `human` は進捗行をストリーム出力します。`agent` は stdout を静音化し、最終サマリー / JSON のみを出力します。 | | `--background ` | `-b` | — | plan + main prompt に注入する、任意の要件 / 業務コンテキスト。 | | `--concurrency ` | — | `8` | 並行してレビューするファイルの最大数。 | @@ -292,7 +292,7 @@ ocr s [flags] (alias) |---|---|---|---| | `--path ` | - | リポジトリ全体 | スキャン対象のリポジトリ相対ディレクトリまたはファイル(カンマ区切り、例: `internal/agent`、`internal/llm/client.go`)。 | | `--exclude ` | - | - | 除外する gitignore 形式のパターン(カンマ区切り、例: `**/generated/*,*.pb.go`)。`rule.json` の excludes とマージされます。 | -| `--preview` | `-p` | `false` | LLM を呼び出さずにファイルを列挙・フィルタリングします。ファイルリスト、レビュー対象/除外数、総行数、ファイルごとの除外理由を出力します。`--format json` に対応しています。 | +| `--preview` | `-p` | `false` | LLM を呼び出さずにファイルを列挙・フィルタリングします。ファイルリスト、レビュー対象/除外数、総行数、ファイルごとの除外理由を出力します。`--format json` に対応しています。`--format sarif` はサポートされていません。 | ```bash ocr scan --preview # スキャン対象を確認 diff --git a/pages/src/content/docs/ru/cli-reference.md b/pages/src/content/docs/ru/cli-reference.md index 0052b0fec..3834f0443 100644 --- a/pages/src/content/docs/ru/cli-reference.md +++ b/pages/src/content/docs/ru/cli-reference.md @@ -89,9 +89,9 @@ ocr r [flags] (alias) | `--from ` | — | — | Исходная ссылка, от которой начинается diff (например, `main`). | | `--to ` | — | — | Целевая ссылка, на которой заканчивается diff (например, `feature-branch`). Если задана, OCR вычисляет `merge-base(from, to)..to`. | | `--commit ` | `-c` | — | Один коммит для ревью (сравнивается с родительским). | -| `--preview` | `-p` | `false` | Запускает конвейер фильтрации, но пропускает LLM. Выводит список файлов и причины исключения. Учитывает `--format json`. | +| `--preview` | `-p` | `false` | Запускает конвейер фильтрации, но пропускает LLM. Выводит список файлов и причины исключения. Учитывает `--format json`; `--format sarif` не поддерживается (в предпросмотре нет завершённых находок для вывода). | | `--resume ` | — | — | Возобновляет предыдущую совместимую сессию ревью диапазона или коммита. | -| `--format ` | `-f` | `text` | `text` (для чтения человеком) или `json` (машиночитаемый массив комментариев). | +| `--format ` | `-f` | `text` | `text` (для чтения человеком), `json` (машиночитаемый массив комментариев) или `sarif` (отчёт SARIF 2.1.0 для GitHub Code Scanning). | | `--audience ` | — | `human` | `human` выводит ход выполнения; `agent` отключает этот вывод в stdout и печатает только итоговую сводку / JSON. | | `--background ` | `-b` | — | Необязательные требования / бизнес-контекст, добавляемые в промпты планирования и основной задачи. | | `--concurrency ` | — | `8` | Максимальное число файлов, проверяемых параллельно. | @@ -290,7 +290,7 @@ ocr s [flags] (alias) |---|---|---|---| | `--path ` | - | весь репозиторий | Относительные каталоги или файлы репозитория для сканирования (через запятую, например `internal/agent`, `internal/llm/client.go`). | | `--exclude ` | - | - | Шаблоны исключения в стиле gitignore (через запятую, например `**/generated/*,*.pb.go`); объединяются с excludes из `rule.json`. | -| `--preview` | `-p` | `false` | Перечисляет и фильтрует файлы без вызова LLM. Выводит список файлов, количество проверяемых/исключённых, общее число строк и причины исключения для каждого файла. Учитывает `--format json`. | +| `--preview` | `-p` | `false` | Перечисляет и фильтрует файлы без вызова LLM. Выводит список файлов, количество проверяемых/исключённых, общее число строк и причины исключения для каждого файла. Учитывает `--format json`; `--format sarif` не поддерживается. | ```bash ocr scan --preview # посмотреть, что будет просканировано diff --git a/pages/src/content/docs/zh/cli-reference.md b/pages/src/content/docs/zh/cli-reference.md index 0f679fc02..6de143eb3 100644 --- a/pages/src/content/docs/zh/cli-reference.md +++ b/pages/src/content/docs/zh/cli-reference.md @@ -86,9 +86,9 @@ unstaged + untracked 变更。 | `--from ` | — | — | diff 起始 ref(如 `main`)。 | | `--to ` | — | — | diff 结束 ref(如 `feature-branch`)。设置后 OCR 计算 `merge-base(from, to)..to`。 | | `--commit ` | `-c` | — | 评审单个 commit(相对其父)。 | -| `--preview` | `-p` | `false` | 运行过滤流水线但跳过 LLM。打印文件列表与排除原因。支持 `--format json`。 | +| `--preview` | `-p` | `false` | 运行过滤流水线但跳过 LLM。打印文件列表与排除原因。支持 `--format json`;不支持 `--format sarif`(预览没有已完成的发现可供输出)。 | | `--resume ` | — | — | 从之前兼容的区间或单 commit 评审会话恢复。 | -| `--format ` | `-f` | `text` | `text`(人类可读)或 `json`(机器可读的评论数组)。 | +| `--format ` | `-f` | `text` | `text`(人类可读)、`json`(机器可读的评论数组)或 `sarif`(用于 GitHub Code Scanning 的 SARIF 2.1.0 报告)。 | | `--audience ` | — | `human` | `human` 流式输出进度行;`agent` 静默 stdout,只打印最终摘要 / JSON。 | | `--background ` | `-b` | — | 注入 plan + main prompt 的可选需求 / 业务上下文。 | | `--concurrency ` | — | `8` | 并行评审的最大文件数。 | @@ -301,7 +301,7 @@ ocr s [flags] (alias) |---|---|---|---| | `--path ` | - | 整个仓库 | 逗号分隔的仓库相对目录或文件(如 `internal/agent`、`internal/llm/client.go`)。 | | `--exclude ` | - | - | 逗号分隔的 gitignore 风格排除模式(如 `**/generated/*,*.pb.go`);与 `rule.json` 的 excludes 合并。 | -| `--preview` | `-p` | `false` | 枚举并过滤文件但跳过 LLM。打印文件列表、可评审/排除数量、总行数及每个文件的排除原因。支持 `--format json`。 | +| `--preview` | `-p` | `false` | 枚举并过滤文件但跳过 LLM。打印文件列表、可评审/排除数量、总行数及每个文件的排除原因。支持 `--format json`;不支持 `--format sarif`。 | ```bash ocr scan --preview # 查看会扫描哪些文件 From bcd35ec4a50618fe2df3d9c39298138354534951 Mon Sep 17 00:00:00 2001 From: wu21-web Date: Wed, 12 Aug 2026 20:22:49 +0900 Subject: [PATCH 2/3] docs: update ci.md --- pages/src/content/docs/en/integrations/ci.md | 29 ++++++++++++++++++++ pages/src/content/docs/ja/integrations/ci.md | 29 ++++++++++++++++++++ pages/src/content/docs/ru/integrations/ci.md | 29 ++++++++++++++++++++ pages/src/content/docs/zh/integrations/ci.md | 27 ++++++++++++++++++ 4 files changed, 114 insertions(+) diff --git a/pages/src/content/docs/en/integrations/ci.md b/pages/src/content/docs/en/integrations/ci.md index 440d42c19..46cea804d 100644 --- a/pages/src/content/docs/en/integrations/ci.md +++ b/pages/src/content/docs/en/integrations/ci.md @@ -258,6 +258,35 @@ for a GitHub App installation token. Reviews will now appear as posted by your app's name instead of `github-actions[bot]`. +#### Upload findings to GitHub Code Scanning (SARIF) + +`--format sarif` writes a +[SARIF 2.1.0](https://docs.oasis-open.org/sarif/sarif/v2.1.0/sarif-v2.1.0.html) +report to stdout. Pipe it to a file and upload it with the CodeQL +`upload-sarif` action so findings appear under +**Security → Code scanning**: + +```yaml +- name: Run OCR review + env: + BASE_REF: ${{ github.base_ref }} + HEAD_REF: ${{ github.head_ref }} + run: | + ocr review \ + --from "origin/$BASE_REF" \ + --to "origin/$HEAD_REF" \ + --format sarif --audience agent > results.sarif + +- uses: github/codeql-action/upload-sarif@v3 + with: + sarif_file: results.sarif +``` + +SARIF is machine-readable, so OCR suppresses progress lines on stdout +and `results.sarif` contains only the report. `--preview` does not +support `--format sarif` — run a full review (or `ocr scan`) to +produce a report. + ### Troubleshooting | Symptom | Cause / Fix | diff --git a/pages/src/content/docs/ja/integrations/ci.md b/pages/src/content/docs/ja/integrations/ci.md index c9a381227..a5e579b10 100644 --- a/pages/src/content/docs/ja/integrations/ci.md +++ b/pages/src/content/docs/ja/integrations/ci.md @@ -204,6 +204,35 @@ if: | レビューは `github-actions[bot]` ではなく、あなたの app の名前で投稿されるようになります。 +#### GitHub Code Scanning に指摘をアップロードする(SARIF) + +`--format sarif` は +[SARIF 2.1.0](https://docs.oasis-open.org/sarif/sarif/v2.1.0/sarif-v2.1.0.html) +レポートを stdout に書き出します。ファイルにリダイレクトし、CodeQL の +`upload-sarif` アクションでアップロードすると、指摘が +**Security → Code scanning** に表示されます: + +```yaml +- name: Run OCR review + env: + BASE_REF: ${{ github.base_ref }} + HEAD_REF: ${{ github.head_ref }} + run: | + ocr review \ + --from "origin/$BASE_REF" \ + --to "origin/$HEAD_REF" \ + --format sarif --audience agent > results.sarif + +- uses: github/codeql-action/upload-sarif@v3 + with: + sarif_file: results.sarif +``` + +SARIF は機械可読な形式なので、OCR は stdout 上の進捗行を抑制し、 +`results.sarif` にはレポートだけが含まれます。`--preview` は +`--format sarif` に対応していません。レポートを生成するには、完全な +review(または `ocr scan`)を実行してください。 + ### トラブルシューティング | 症状 | 原因 / 修正 | diff --git a/pages/src/content/docs/ru/integrations/ci.md b/pages/src/content/docs/ru/integrations/ci.md index 880787c77..dae43a952 100644 --- a/pages/src/content/docs/ru/integrations/ci.md +++ b/pages/src/content/docs/ru/integrations/ci.md @@ -257,6 +257,35 @@ if: | Теперь ревью будут публиковаться от имени приложения вместо `github-actions[bot]`. +#### Загрузка находок в GitHub Code Scanning (SARIF) + +`--format sarif` записывает отчёт +[SARIF 2.1.0](https://docs.oasis-open.org/sarif/sarif/v2.1.0/sarif-v2.1.0.html) +в stdout. Перенаправьте его в файл и загрузите с помощью action +`upload-sarif` из CodeQL, чтобы находки появились в разделе +**Security → Code scanning**: + +```yaml +- name: Run OCR review + env: + BASE_REF: ${{ github.base_ref }} + HEAD_REF: ${{ github.head_ref }} + run: | + ocr review \ + --from "origin/$BASE_REF" \ + --to "origin/$HEAD_REF" \ + --format sarif --audience agent > results.sarif + +- uses: github/codeql-action/upload-sarif@v3 + with: + sarif_file: results.sarif +``` + +SARIF — машиночитаемый формат, поэтому OCR подавляет строки прогресса в +stdout, и в `results.sarif` попадает только отчёт. `--preview` не +поддерживает `--format sarif` — для получения отчёта запустите полное +review (или `ocr scan`). + ### Устранение неполадок | Симптом | Причина / исправление | diff --git a/pages/src/content/docs/zh/integrations/ci.md b/pages/src/content/docs/zh/integrations/ci.md index 4216a9ab3..7ffb5ab8e 100644 --- a/pages/src/content/docs/zh/integrations/ci.md +++ b/pages/src/content/docs/zh/integrations/ci.md @@ -226,6 +226,33 @@ if: | 评审现在会以你 app 的名字而非 `github-actions[bot]` 发布。 +#### 将发现上传到 GitHub Code Scanning(SARIF) + +`--format sarif` 会把 +[SARIF 2.1.0](https://docs.oasis-open.org/sarif/sarif/v2.1.0/sarif-v2.1.0.html) +报告写入 stdout。把它重定向到文件,并用 CodeQL 的 `upload-sarif` +action 上传,让发现出现在 **Security → Code scanning** 下: + +```yaml +- name: Run OCR review + env: + BASE_REF: ${{ github.base_ref }} + HEAD_REF: ${{ github.head_ref }} + run: | + ocr review \ + --from "origin/$BASE_REF" \ + --to "origin/$HEAD_REF" \ + --format sarif --audience agent > results.sarif + +- uses: github/codeql-action/upload-sarif@v3 + with: + sarif_file: results.sarif +``` + +SARIF 是机器可读格式,因此 OCR 会在 stdout 上抑制进度行,`results.sarif` +只包含报告本身。`--preview` 不支持 `--format sarif`——请运行完整的 +review(或 `ocr scan`)来生成报告。 + ### 故障排查 | 症状 | 原因 / 修复 | From 270cc400d1659136c92ec695860ba1d474699b31 Mon Sep 17 00:00:00 2001 From: wu21-web Date: Wed, 12 Aug 2026 20:23:20 +0900 Subject: [PATCH 3/3] i18n: update corresponding keys --- pages/src/i18n/en.ts | 4 ++-- pages/src/i18n/ja.ts | 4 ++-- pages/src/i18n/ru.ts | 4 ++-- pages/src/i18n/zh.ts | 4 ++-- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/pages/src/i18n/en.ts b/pages/src/i18n/en.ts index 3ab97bad3..5e168ccf3 100644 --- a/pages/src/i18n/en.ts +++ b/pages/src/i18n/en.ts @@ -167,7 +167,7 @@ export const en = { 'docs.reviewFlag1Desc': 'Specify commit hash to review', 'docs.reviewFlag2Desc': 'Start ref (diff origin)', 'docs.reviewFlag3Desc': 'Target ref (diff endpoint)', - 'docs.reviewFlag4Desc': 'Output format: text or json', + 'docs.reviewFlag4Desc': 'Output format: text, json, or sarif', 'docs.reviewFlag5Desc': 'Git repository root', 'docs.reviewFlag5Default': 'Current dir', 'docs.reviewFlag6Desc': 'Path to review rules JSON file', @@ -223,7 +223,7 @@ export const en = { 'docs.scanFlag6Desc': 'Skip the per-batch DEDUP_TASK', 'docs.scanFlag7Desc': 'Skip the post-run PROJECT_SUMMARY_TASK', 'docs.scanFlag8Desc': 'Batching strategy: none | by-language | by-directory', - 'docs.scanFlag9Desc': 'Output format: text or json', + 'docs.scanFlag9Desc': 'Output format: text, json, or sarif', 'docs.scanFlag10Desc': 'Max concurrent file scans', 'docs.scanFlag11Desc': 'Concurrent task timeout in minutes', 'docs.scanFlag12Desc': 'Output audience: human (show progress) or agent (summary only)', diff --git a/pages/src/i18n/ja.ts b/pages/src/i18n/ja.ts index 0daae22c4..2ca9bca50 100644 --- a/pages/src/i18n/ja.ts +++ b/pages/src/i18n/ja.ts @@ -171,7 +171,7 @@ export const ja: TranslationKeys = { 'docs.reviewFlag1Desc': 'レビューするコミットハッシュを指定', 'docs.reviewFlag2Desc': '開始参照(差分の起点)', 'docs.reviewFlag3Desc': 'ターゲット参照(差分の終点)', - 'docs.reviewFlag4Desc': '出力形式:text または json', + 'docs.reviewFlag4Desc': '出力形式:text、json または sarif', 'docs.reviewFlag5Desc': 'Git リポジトリルート', 'docs.reviewFlag5Default': '現在のディレクトリ', 'docs.reviewFlag6Desc': 'レビュールール JSON ファイルパス', @@ -227,7 +227,7 @@ export const ja: TranslationKeys = { 'docs.scanFlag6Desc': 'バッチ単位の DEDUP_TASK をスキップ', 'docs.scanFlag7Desc': '実行後の PROJECT_SUMMARY_TASK をスキップ', 'docs.scanFlag8Desc': 'バッチ処理戦略:none | by-language | by-directory', - 'docs.scanFlag9Desc': '出力形式:text または json', + 'docs.scanFlag9Desc': '出力形式:text、json または sarif', 'docs.scanFlag10Desc': '最大並行ファイルスキャン数', 'docs.scanFlag11Desc': '並行タスクのタイムアウト(分)', 'docs.scanFlag12Desc': '出力対象:human(進捗表示)または agent(サマリーのみ)', diff --git a/pages/src/i18n/ru.ts b/pages/src/i18n/ru.ts index f36ba9bd8..54bb69de7 100644 --- a/pages/src/i18n/ru.ts +++ b/pages/src/i18n/ru.ts @@ -169,7 +169,7 @@ export const ru: TranslationKeys = { 'docs.reviewFlag1Desc': 'Хеш коммита для ревью', 'docs.reviewFlag2Desc': 'Начальный ref (начало diff)', 'docs.reviewFlag3Desc': 'Целевой ref (конец diff)', - 'docs.reviewFlag4Desc': 'Формат вывода: text или json', + 'docs.reviewFlag4Desc': 'Формат вывода: text, json или sarif', 'docs.reviewFlag5Desc': 'Корень Git-репозитория', 'docs.reviewFlag5Default': 'Текущая директория', 'docs.reviewFlag6Desc': 'Путь к JSON-файлу правил ревью', @@ -225,7 +225,7 @@ export const ru: TranslationKeys = { 'docs.scanFlag6Desc': 'Пропустить DEDUP_TASK на пакет', 'docs.scanFlag7Desc': 'Пропустить финальный PROJECT_SUMMARY_TASK', 'docs.scanFlag8Desc': 'Стратегия группировки: none | by-language | by-directory', - 'docs.scanFlag9Desc': 'Формат вывода: text или json', + 'docs.scanFlag9Desc': 'Формат вывода: text, json или sarif', 'docs.scanFlag10Desc': 'Макс. параллельных проверок файлов', 'docs.scanFlag11Desc': 'Таймаут параллельных задач в минутах', 'docs.scanFlag12Desc': 'Аудитория вывода: human (показывать прогресс) или agent (только сводка)', diff --git a/pages/src/i18n/zh.ts b/pages/src/i18n/zh.ts index efa9d1c1c..878d35590 100644 --- a/pages/src/i18n/zh.ts +++ b/pages/src/i18n/zh.ts @@ -171,7 +171,7 @@ export const zh: TranslationKeys = { 'docs.reviewFlag1Desc': '指定要审查的提交哈希', 'docs.reviewFlag2Desc': '起始引用(差异起点)', 'docs.reviewFlag3Desc': '目标引用(差异终点)', - 'docs.reviewFlag4Desc': '输出格式:text 或 json', + 'docs.reviewFlag4Desc': '输出格式:text、json 或 sarif', 'docs.reviewFlag5Desc': 'Git 仓库根目录', 'docs.reviewFlag5Default': '当前目录', 'docs.reviewFlag6Desc': '审查规则 JSON 文件路径', @@ -227,7 +227,7 @@ export const zh: TranslationKeys = { 'docs.scanFlag6Desc': '跳过按批次的 DEDUP_TASK', 'docs.scanFlag7Desc': '跳过运行结束后的 PROJECT_SUMMARY_TASK', 'docs.scanFlag8Desc': '批处理策略:none | by-language | by-directory', - 'docs.scanFlag9Desc': '输出格式:text 或 json', + 'docs.scanFlag9Desc': '输出格式:text、json 或 sarif', 'docs.scanFlag10Desc': '最大并发文件扫描数', 'docs.scanFlag11Desc': '并发任务超时时间(分钟)', 'docs.scanFlag12Desc': '输出受众:human(显示进度)或 agent(仅摘要)',