01 / OVERVIEW
goalコマンドとは —
指示ではなく、使命を渡す。
goalコマンドは、AIエージェントに「やることの手順」ではなく「達成すべき目的」を渡すためのCLIです。従来のエージェント運用は手順を教え込む作業でしたが、goal は成功条件だけを渡します。プランニング、失敗からの自己修復、品質の検収まで、エージェント自身が担います。MITライセンスで全機能無料。プロンプトエンジニアリングの往復から解放される、次世代のタスク自動化ツールです。
| 観点 | 手動プロンプト | タスク自動化 | goal コマンド |
|---|---|---|---|
| 指示の単位 | 単発の指示文 | 手順の列挙 | 目的と成功条件 |
| 失敗時の挙動 | 停止・人手待ち | 手順どおりに停止 | 自律的に再計画 |
| 状態の保持 | なし | タスク内のみ | セッション横断で永続 |
| 必要な往復 | 数十回の修正 | 重い事前設計 | 原則1行・承認のみ |
| 品質保証 | 技量まかせ | 手順の網羅性 | reviewer の独立検収 |
STEP 1
インストール
$ npm i -g @goal-ai/cli
# or: brew install goal-cliSTEP 2
環境チェック
$ goal doctor
✓ model reachable / tools 5/5STEP 3
最初の宣言
$ goal "READMEどおりに
セットアップを検証して"02 / INSTALLATION
インストールと環境構築。
導入は1分。macOS / Linux はネイティブ、Windows は WSL2 で動作します。導入後に goal doctor を一度走らせれば、認証・ツール・モデル到達性の不備は全部あぶり出せます。
npm 推奨
Node.js 18以降が必要。
$ npm install -g @goal-ai/cli
$ goal --version
goal 2.4.2 (build 8f3ac1)
Homebrew macOS
Apple Silicon / Intel 両対応。
$ brew install goal-cli
$ goal --version
goal 2.4.2 (build 8f3ac1)
install.sh Linux
バイナリを /usr/local/bin へ。
$ curl -fsSL \
https://goal-cli.dev/install.sh | bash
動作要件
- OS — macOS 12+ / Ubuntu 20.04+ / Windows 11 (WSL2)
- Node — 18.x 以降(npm 導入時のみ)
- LLM — いずれか1プロバイダの APIキー、または Ollama
- 任意 — git(コード系 goal の差分管理に使用)
導入後チェック(goal doctor)
$ goal doctor
✓ binary: 2.4.2 (latest)
✓ auth: ANTHROPIC_API_KEY detected
✓ model: claude reachable (312ms)
✓ tools: search fs code_sandbox browser
✓ sandbox: strict / writable
# ✗ があれば提案される修復コマンドに従う
03 / SYNTAX
構文 — 覚えるのはこの一行。
goal [subcommand] "<目標文>" [flags]
# 最小形(runは省略可)
goal "テストカバレッジを80%まで引き上げて"
# 完全形 — 成功条件・予算・期限
goal "解約率を2pt改善する施策案を3つ" \
--success "施策ごとに工数見積付き" \
--budget 1.00 --deadline "friday 18:00"
書き方の対比
✗ goal "いい感じに直しといて"
✓ goal "決済APIのタイムアウトを解消。成功条件: p99 < 800ms、テスト全成功"
04 / SUBCOMMANDS
サブコマンド — 宣言から観測・復元まで。
goal run "<目標>"
宣言と実行
プラン提示→承認→実行。run は省略可。
goal list --open
一覧
状態別の一覧。--tag 絞り込み、--format json 対応。
goal status <id>
進捗と予算
フェーズ、完了数、予算消費率、残り時間を表示。
goal logs <id> --follow
実行トレース
思考とツール呼び出しをストリーム表示。
goal resume <id>
再開
チェックポイントから。完了分は再実行しない。
goal rollback <id> --to <phase>
巻き戻し
任意地点へ復元。--to 0 でなかったことに。
goal cancel <id> --reason
取消
理由は監査ログ+チームの教訓として残る。
goal amend <id>
目標の修正
条件を差し替え、差分だけ再計画。
goal config get|set <key>
設定の読み書き
goal.yaml をドット区切りで操作。
goal doctor
認証・モデル到達性・ツール依存・サンドボックス整合性・設定構文まで一括診断し、修復コマンドを提案します。初回実行前に必ず一度(02章)。
05 / FLAGS
フラグ — 自律の統率を細部に。
優先順位: CLIフラグ > 環境変数 > プロジェクト .goal.yaml > ユーザー設定 > 既定
| フラグ | 説明 | 既定 |
|---|---|---|
| 実行制御 | ||
| --success <text> -S | 成功条件(複数可)。検収基準になる。 | 推論 |
| --budget <usd> -B | 予算上限。80%警告、100%停止。 | 設定 |
| --deadline <time> -D | 期限。"friday 18:00" / "3h"。 | なし |
| --auto | 承認をスキップし自動開始(CI向け)。 | off |
| --approve <level> | ゲート: none / write / all。 | write |
| --timeout <sec> | 最大実行時間(秒)。 | 3600 |
| --retries <n> | 修復ループ上限。 | 3 |
| モデルと環境 | ||
| --model <name> -m | claude / gpt / gemini / ollama:* 等。 | 設定 |
| --tools <list> -t | ツールホワイトリスト(カンマ区切り)。 | * |
| --mcp <uri> | 追加MCPサーバー(複数可)。 | なし |
| --no-network | 外部通信を全面禁止。 | off |
| --sandbox <mode> | 隔離強度: strict / relaxed。 | strict |
| メモリとスコープ | ||
| --memory <scope> | session / project / team。 | project |
| --tag <name> | 分類タグ。 | なし |
| --team <id> | チームコンテキストで実行。 | なし |
| 出力とデバッグ | ||
| --output <path> -o | 成果物の出力先。 | ./output |
| --format <fmt> | term / json / md。 | term |
| --dry-run | プランと見積もりのみ表示。 | off |
| --quiet -q | 進捗表示を抑制。 | off |
06 / LIFECYCLE
ライフサイクルと終了コード。
宣言→分解→実行→検証→納品。結果は 0〜7 の終了コードで機械可読に返るため、CIとの接合は一行で済みます。
PHASE 1
宣言
目的・条件・予算を抽出。曖昧なら質問して明確化。
PHASE 2
分解
サブタスクDAG+見積もり+リスクを提示し承認を待つ。
PHASE 3
実行
サンドボックスでツール駆使+自己修復。logs で観測可。
PHASE 4
検証と納品
reviewer が独立検収し、成果物と差分レポートを納品。
| コード | 定数名 | 意味 / 次の一手 |
|---|---|---|
| 0 | GOAL_DONE | 成功。成果物を確認。 |
| 1 | GOAL_FAILED | 完走したが条件未達。amend で見直し。 |
| 2 | BUDGET_EXCEEDED | 予算超過で停止。縮小 or resume。 |
| 3 | DEADLINE_EXCEEDED | 期限超過。--deadline 再設定。 |
| 4 | USER_CANCEL | ユーザー取消。rollback 可能。 |
| 5 | GUARDRAIL_BLOCK | ガードレール遮断。監査ログ確認。 |
| 6 | CONFIG_ERROR | 設定エラー。goal doctor を実行。 |
| 7 | LOOP_STALL | 収束監視が停滞を検知(07章)。 |
07 / LOOP ENGINEERING
ループエンジニアリング —
自律の心拍を設計する。
プロンプトエンジニアリングが「一度の指示の質」を磨く技術なら、ループエンジニアリングは「反復の質」を設計する技術です。goal は外側の goal ループ(計画→実行→観測→調整)と、内側の修復ループ(検出→診断→修復→再実行)を内蔵。「必ず収束し、必ず脱出できる」ループを作るのが、エージェント時代の新しいエンジニアリング規律です。
- 1.収束を第一級に — すべての反復は成功条件までの距離を縮めなければならない。3連続で改善がなければ critic が介入。
- 2.冪等な実行 — 再実行がコストも副作用も二重に生まない。チェックポイントが保証。
- 3.脱出を設計する — 予算、期限、再試行、ガードレール。出口のないループは自律ではなくリスク。
| 脱出条件 | 監視対象 | 超過時の挙動 | コード |
|---|---|---|---|
| --budget | 累積コスト | 80%警告 / 100%停止 | 2 |
| --deadline | 実時間 | 即時停止、部分納品 | 3 |
| --retries | 修復回数 | plannerへ再計画 | 1 |
| guardrail | ポリシー / PII | 即時停止+監査記録 | 5 |
| convergence | 3反復の改善量 | critic が強制停止 | 7 |
ANTIPATTERN — 磨き込みループ
終わらない微調整
処方箋: 数値の検収基準を置き、--retries 2 で上限を固定。
ANTIPATTERN — リトライストーム
同じ失敗呼び出しの連打
goal は自動バックオフを挿入し、しきい値で代替手段へ切替。
ANTIPATTERN — 基準の振動
reviewer との解釈往復
処方箋: goal amend で基準を固定し、優先順位を一文で宣言。
08 / CONFIGURATION
goal.yaml —
チームの流儀を書く。
ユーザー設定 ~/.config/goal/goal.yaml とプロジェクトの .goal.yaml の2階層。プロジェクト側が優先されます。
- ◆defaults — モデル・予算・承認レベルの既定。
- ◆memory — 記憶の範囲とゼロリテンション宣言。
- ◆tools — 本番シェルは deny へ。
- ◆guardrails — PIIマスキングと監査ログ出力。
- ◆mcp — 社内APIのサーバー登録(11章)。
# .goal.yaml
version: 2
defaults:
model: claude-sonnet-4
budget_usd: 1.00
timeout_sec: 3600
approval: write # none|write|all
memory:
scope: project
retention_days: 90
zero_retention: true
tools:
allow: [search, code_sandbox, fs, browser]
deny: [shell.prod]
guardrails:
pii_masking: true
audit_export: ./audit/
mcp:
servers:
- name: internal-docs
uri: stdio://./mcp/docs-server
09 / SECURITY
セキュリティと統制。
goal はテレメトリを持たないローカル完結のOSS。送信先はあなたの選んだモデルだけです。六重の守りを標準搭載します。
◈ ゼロリテンション
入出力を学習に使わないモードを強制。
◈ PII自動マスキング
モデルへ渡る前に個人情報を秘匿。件数は監査ログに計上。
◈ 承認ゲート
既定は --approve write。書き込み・送信・破壊的操作の前に確認。
◈ 監査ログ
JSONL+ハッシュチェーンで改ざん検知。
◈ サンドボックス
既定 strict。ネットワーク・永続FSは明示許可制。
◈ allow / deny
shell.prod を deny で本番操作を原理的に不可に。
10 / MODEL ROUTING
モデル選定とコスト最適化。
基本戦略は——計画と検収には賢いモデル、反復実行には軽いモデル。Claude / GPT / Gemini / Ollama のいずれでも同じ構文が動きます。
| モデル種別 | 強み | 向いている役割 | コスト帯 |
|---|---|---|---|
| フラッグシップ系(claude / gpt 上位) | 深い推論、長文脈、計画の質 | planner / reviewer | $$$ |
| ミッドレンジ系(sonnet 等) | 速度と品質の均衡 | executor の既定 | $$ |
| ローカル系(ollama:*) | 完全閉域、コストゼロ | 機密データの executor | $ |
役割別ルーティング(goal.yaml)
models:
planner: claude-sonnet-4 # 計画は賢く
executor: claude-haiku-3.5 # 反復は軽く
reviewer: claude-sonnet-4 # 検収は賢く
同等の品質を維持しつつ、実行コストを 40〜60% 圧縮できます(社内計測)。
コストを抑える五つの習慣
- 1.推敲は
--dry-run。 - 2.小さく始め、実績を見てから予算を緩める。
- 3.大きな目標は分割。
- 4.メモリを育てる。教訓が溜まるほど探索が減る。
- 5.role ルーティングで重い役を絞る。
11 / MCP & EXTENSIBILITY
MCP連携 — 社内APIを、道具にする。
MCP(Model Context Protocol)サーバーとして登録すれば、社内検索、チケット管理、データウェアハウスまで、あらゆるAPIがエージェントの道具になります。登録はURIを一行書くだけ。
登録(goal.yaml)
mcp:
servers:
- name: internal-docs
uri: stdio://./mcp/docs-server
- name: ticket
uri: sse://mcp.internal/ticket
env:
TICKET_TOKEN: ${TICKET_TOKEN}
チームメモリと教訓
$ goal "..." --memory team --team acme
$ goal cancel g_131 --reason "前提データが古かった"
◈ lesson saved → memory/team/acme
道具のホワイトリスト
tools.allow で読み取り専用APIだけ許可、が可能。
認証の分離
トークンは環境変数展開のみ。yaml に秘密情報は書かない。
標準Toolbelt
search / code_sandbox / fs / browser は同梱。
12 / CI / CD
CI/CD連携 — 毎晩走るエージェント。
--auto と終了コードで無人実行。nightly の依存関係チェック、PR要約、週次レポートが定番パターンです。
# .github/workflows/nightly-goal.yml
name: nightly-goal
on: { schedule: [{ cron: '0 20 * * *' }] }
jobs:
goal-run:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
- run: npm i -g @goal-ai/cli
- run: |
goal "依存の更新可否を判定し、安全ならPRを作成。
成功条件: テスト全成功" \
--auto --budget 1.50 --deadline 30m \
--format json --output ./output
# APIキーは GitHub Secrets から環境変数で渡す
終了コード → CI の挙動
- 0 GOAL_DONE — artifact 回収、次へ
- 1 GOAL_FAILED — レポート投稿し継続
- 2 / 3 予算・期限 — 警告通知のみ可
- 5 / 6 / 7 — 失敗にして人を呼ぶ
無人実行の鉄則
CI では必ず --auto と予算・期限を同時に指定。書き込みは「PRとして行う」運用にし、本番への直接書き込みは CI でも deny のままが原則です。
13 / EXAMPLES
実行例 —
静かな自律を観る。
シナリオを選ぶとログが再生されます。計画し、失敗から立ち直り、検収して、納品する。
executor が完走し、reviewer が独立検収します。
README検証
goal "READMEどおりに初期構築を検証。躓き点をissue形式で報告"
依存関係更新
goal "主要依存をメジャー更新。破壊的変更は移行メモ付き"
i18n展開
goal "UI文言を英訳。用語集 glossary.yaml に準拠"
週次レポート
goal "KPI週報を作成。異常値には原因仮説を添えて"
14 / BEST PRACTICES
良い goal 文の六原則。
01
成功条件は数値で
「早く」ではなく p99 < 800ms。検収が鋭くなる。
02
制約と禁止を明記
書かれない制約は、守られません。
03
予算と期限を添える
枠があるほど、賢く取舍します。
04
1 goal = 1成果
大きい目標は連鎖する小さな goal へ。
05
手順は書かない
手段はエージェントの仕事。
06
まず --dry-run
実行ゼロでプランの質を確認できる最安の推敲。
ANTIPATTERN — やりがちな失敗
- ✗ 形容詞に頼る:「きれいに」「適切に」「しっかり」
- ✗ 目標の重ね掛け:一文に3つの成果
- ✗ 手順の押し付け:手段を細かく指定
- ✗ 無制限:予算・期限なしで --auto
PATTERN — 推敲のあと
- ✓ 測定可能な条件:p99、件数、%、差分ゼロ
- ✓ 単一の成果:1 goal につき 1 つの納品物
- ✓ 目的の明示:手段はエージェントに委任
- ✓ 枠の宣言:--budget 0.50 --deadline 2h --dry-run
15 / COMPARISON
goal は他の手段と何が違うのか。
「チャットで頼めばいいのでは?」「フレームワークで自作すべき?」「cronで十分では?」——自動化手段の比較で、goal の位置づけを明確にします。
| 観点 | チャットLLM | エージェントフレームワーク (LangGraph 等) |
cron / スクリプト | goal コマンド |
|---|---|---|---|---|
| 導入コスト | ゼロ | 数日〜(実装が必要) | 低い | 1分(npm i のみ) |
| 自己修復 | なし | 自作が必要 | なし | 標準搭載 |
| 品質の検収 | 人力 | 自作が必要 | なし | reviewer が独立検収 |
| 予算・期限の統制 | なし | 自作が必要 | なし | --budget / --deadline |
| 監査ログ | なし | 自作が必要 | 標準出力のみ | ハッシュチェーン付き |
| 向いている人 | 誰でも | 開発チーム | 手順が固定の人 | 成果を渡したい全員 |
補足: goal はフレームワークを置き換えるのではなく補完します。MCP経由で既存ツールを接続でき、cron から nightly goal を起動する(12章)ような共存構成が定番です。
16 / USE CASES
職種別 — あなたの goal はこれだ。
AIエージェントの業務活用は、まず「繰り返し作業の委任」から。職種ごとの最初の一行をまとめました。
開発チーム
リファクタリングとテスト補完
goal "auth をJWTへ移行。
既存セッションは維持"リサーチ・戦略
競合調査と意思決定メモ
goal "生成AI監査ツールの市場を
調査し、投資メモを作成"マーケティング
LP文案とA/B仮説
goal "新機能のLP文案を3トーンで。
ブランドガイド準拠"オペレーション
障害の一次切り分け
goal "夜間バッチ失敗の原因を特定し、
再発防止策を提案して"データ分析
コホート分析と示唆出し
goal "解約コホートの要因トップ3を
特定。ノートブック付きで"経営・管理
週次KPIサマリー
goal "KPI週報を作成。異常値には
原因仮説を添えて"17 / MIGRATION PLAYBOOK
プロンプト運用からの移行ガイド。
P1
観察する(1週間)
繰り返し送っているプロンプトを書き出す。「毎週やっている」ものが最初の候補。
P2
試す(2週間)
goal 文に書き換え、まず --dry-run。納得できたら少額予算で実行。
P3
定着させる(継続)
既定を goal.yaml に。安定した goal は CI へ。教訓をチームメモリに。
| 従来のプロンプト | goal 表現への変換 |
|---|---|
| 「このコードをレビューして、問題があれば直して」 | goal "静的解析の問題を解消。成功条件: lint 0件、テスト全成功" |
| 「競合について調べてまとめて」 | goal "競合5社の価格を調査。出典明示、比較表と意思決定メモを納品" |
| 「いい感じの週報を書いて」 | goal "KPI週報を作成。異常値には仮説付き。weekly.md に準拠" |
| 「依存ライブラリを更新しておいて」 | goal "依存を更新。破壊的変更は移行メモ付き。成功条件: ビルド通過" |
18 / CHEATSHEET
チートシート — 12の定型。
日常 — 観察
goal list --open
日常 — 追尾
goal logs g_128 --follow
推敲
goal "..." --dry-run
予算管理
goal status g_128 --format json | jq .budget
条件修正
goal amend g_128 -S "p99 < 800ms"
巻き戻し
goal rollback g_128 --to 0
再開
goal resume g_128
閉域実行
goal "..." --no-network --sandbox strict
モデル切替
goal "..." --model ollama:qwen2.5
チーム実行
goal "..." --memory team --team acme
診断
goal doctor
教訓を残す
goal cancel g_128 --reason "前提が古い"
19 / TROUBLESHOOTING
トラブルシューティング。
迷ったら goal logs <id> --verbose が真実を語ります。
PLAN_TIMEOUT
プランが確定しない
目標が曖昧か高負荷。--dry-run で明確化。
BUDGET_EXCEEDED 連発
すぐ予算超過
成果を分割し --retries を下げる。
LOOP_STALL
同じ修復の繰り返し
条件を量化(07章)。
AUTH_ERROR
認証が通らない
キーは環境変数で。goal doctor で確認。
SANDBOX_DENIED
strict が通信を遮断
必要最小限だけ relaxed、または許可を明記。
OUTPUT_MISSING
成果物が見つからない
--output を明示。reviewer 注記を確認。
REVIEW_LOOP
差し戻しが止まらない
条件を一つ削って優先順位を固定。
MEMORY_MISS
メモリが引き継がれない
--memory スコープを確認。チームなら team。
20 / GLOSSARY
用語集。
- Goal
- 目的・成功条件・制約からなる使命の単位。
- プランDAG
- サブタスクを依存関係付きグラフで表現した実行計画書。
- planner / executor / reviewer / critic
- 計画・実行・検収・批判を担う4つの役割エージェント。
- goal ループ
- 計画→実行→観測→調整の外周ループ。自律の心拍。
- 修復ループ
- 検出→診断→修復→再実行の内周ループ。
- ループエンジニアリング
- エージェントの反復を「収束し脱出できる」よう設計する規律。
- 収束監視
- 反復ごとの改善量を計測し停滞を検知する機構。
- 冪等性
- 再実行が副作用を二重に生まない性質。
- 承認ゲート
- 操作の前に人の確認を挟む統制(--approve)。
- チェックポイント
- フェーズごとに自動取得されるスナップショット。
- MCP
- Model Context Protocol。外部ツール/社内APIを標準接続。
- モデルルーティング
- 役割ごとにモデルを使い分ける構成。
- ゼロリテンション
- 入出力を学習に一切使わないモード。
- nightly goal
- CIのスケジュールで毎晩走る無人goalの総称。
- 教訓(lesson)
- cancel理由や差し戻しから抽出される再利用可能な知見。
- 終了コード契約
- 0〜7で結果を機械可読に返す約束事。
21 / CHANGELOG
更新履歴。
-
v2.4.2 —
収束監視を導入し LOOP_STALL(終了コード7)を追加。ループエンジニアリングの確立。
-
v2.4.1 —
resume 時のチェックポイントリークを解消。差し戻しメッセージを人間可読化。
-
v2.4.0 —
マルチエージェント協調がGA。goal amend、--mcp 複数指定、チームメモリを実装。
-
v2.3.0 —
--dry-run と予算見積もりを追加。
-
v2.2.0 —
Windows(WSL2)対応。goal doctor 新設。監査ログエクスポート標準搭載。
-
v2.1.0 —
MCP対応。--no-network とゼロリテンションモードを追加。
-
v2.0.0 —
メジャーリリース。goal ループアーキテクチャを導入。MITライセンスで公開。
23 / FAQ