# クイックリファレンス 各表の詳細は本文の該当章を参照。**live box_type は必ず `atasira_list_boxes()` を先に呼んで確認する**(本書執筆時点の live: `admin-pm` / `admin-ops` / `market-watch`。ハードコードしない)。 ## Atasira MCP ツール(8 本)— `03-mcp-tools.md` | ツール | 目的 | 対応 API | |--------|------|----------| | `atasira_list_boxes()` | 可視 Box 一覧 | `GET /api/v1/boxes` | | `atasira_box_status(box_id)` | Box 詳細(state / heartbeat)。box_id=DB id or box_type | `GET /api/v1/boxes/{box_id}` | | `atasira_create_box_draft(purpose, box_type, name, success_criteria, os_operations, tools, url_allowlist, prohibited_actions, allow_network)` | C9 draft 起票(常に pending_approval) | `POST /api/v1/boxes/box-drafts` | | `atasira_send_instruction(box_id, message, session_id?)` | 指示送信(応答同期返却) | `POST /boxes/{box_type}/sessions(+/messages)` | | `atasira_get_responses(box_id, session_id)` | 応答/履歴取得 | `GET .../sessions/{id}/messages` | | `atasira_pending_drafts()` | 承認待ち draft(**admin PAT のみ**) | `GET /api/v1/boxes/box-drafts/pending` | | `atasira_get_box_llm(box_id)` | 実効 LLM 設定(box_id=**DB id**) | `GET /api/v1/boxes/{box_id}/llm` | | `atasira_set_box_llm(box_id, provider?, model?, node?)` | LLM override 設定/解除(admin/primary のみ) | `PUT /api/v1/boxes/{box_id}/llm` | `""`=現状維持 / `"none"`=解除 / その他=set(set_box_llm)。pause/resume/kill と user-assignments に MCP ツールは無い(BFF 直叩き)。 ## 主要 BFF エンドポイント(すべて `/api/v1` prefix) | 区分 | メソッド + パス | 認可 | |------|----------------|------| | ユーザー招待 | `POST /users/invite` | admin | | ユーザー更新 | `PATCH /users/{user_id}` | admin | | PAT 発行 | `POST /users/me/tokens` | 本人 | | PAT 一覧 | `GET /users/me/tokens` | 本人 | | PAT 失効 | `DELETE /users/me/tokens/{token_id}` | 本人 | | Box 一覧 | `GET /boxes` | 認証済み(可視は RBAC) | | Box 詳細 | `GET /boxes/{box_id}` | can_view | | draft 起票 | `POST /boxes/box-drafts` | 認証済み | | pending draft | `GET /boxes/box-drafts/pending` | admin | | draft 承認 | `POST /boxes/box-drafts/{id}/approve` `{confirm_over_limit}` | admin | | draft 却下 | `POST /boxes/box-drafts/{id}/reject` `{reason}` | admin | | feasibility 事前チェック | `POST /boxes/feasibility` `{task_description, box_type}` | 認証済み(読取専用・非 LLM) | | セッション作成 | `POST /boxes/{box_type}/sessions` | can_instruct | | メッセージ送信 | `POST /boxes/{box_type}/sessions/{id}/messages` `{content}` | can_instruct | | メッセージ取得 | `GET /boxes/{box_type}/sessions/{id}/messages` | can_view | | Box 制御 | `POST /boxes/{box_id}/control` `{action: pause\|resume\|kill}` | admin/operator | | LLM 設定 | `GET`/`PUT /boxes/{box_id}/llm` | GET=view / PUT=admin または primary | | manifest 編集(mentor) | `PUT /boxes/{box_id}/manifest` | admin(4 キーのみ) | | Box 権限付与 | `POST /boxes/{box_id}/user-assignments` `{user_id, role_in_box}` | admin または box primary | | Box 権限剥奪 | `DELETE /boxes/{box_id}/user-assignments/{user_id}` | admin または box primary | | ユーザーの Box 一覧 | `GET /users/{user_id}/boxes` | admin or self | ## BoxManifest キー(`src/runtime/manifest.py`)— `02-box-lifecycle.md` §2 `box_type`, `version`, `name`, `description`, `capabilities`, `agent_kind`(dialog/worker/mentor/custom, 既定 worker), `resource_limits`, `tool_policies`, `config_defaults`, `tools`, `os_operations`, `file_access`, `network`(none/local/filtered/full), `url_allowlist`, `allowed_apps`, `dangerous_tool_overrides`, `trigger_type`(manual/event/schedule), `trigger_schedule`(cron), `trigger_event`(NATS topic), `purpose`, `prohibited_actions`, `loop_control`{max_iterations/timeout_s/escalate_on_failure}, `business_procedure`[{step,description,tool,args_schema}], `outputs`, `llm`{provider,node,required,min_tier}, `required_access`, `credentials`{allowed_vaults,token_env_var}, `shell`{allowed_commands,allowed_cwd,require_approval_outside_allowlist}, `notify`{email,line}, `browser`{approval_required_selectors,approval_required_text_patterns} > **存在しないキー(発明禁止)**: `quality_gate` / top-level `escalation` は無い(escalation は `loop_control.escalate_on_failure` のみ)。`success_criteria` は独立 manifest フィールドではなく draft 時に `purpose` へ追記。`llm.phase` は非推奨、`llm.model` は dead field。 **エージェント直接編集可(box-fulfill 範囲)**: `config_defaults`, `trigger_schedule`, `notify.*`(vault/item 名・recipients・broadcast), `credentials`(vault/env-var 名), `shell`(既承認 shell:exec 内), `purpose`/`prohibited_actions`/`business_procedure`。 **変更禁止(新 C9 draft 必須)**: `tools`, `os_operations`, `network`, `url_allowlist`, `llm`, `trigger_type`/`trigger_event`, `outputs`, `required_access`, `box_type`, `version`, `capabilities`, `loop_control`。 ## 環境変数 | env | 意味 | 既定 | |-----|------|------| | `ATASIRA_BFF_URL` | BFF base URL | `https://atasira.atasino.biz`(ローカル `http://localhost:18908`) | | `ATASIRA_PAT` | 個人 PAT(`atspat_...`) | (必須) | | `ATASIRA_DEFAULT_LLM_PROVIDER` | provider の env 既定 | builtin `atsllm` | | `ATASIRA_DEFAULT_ATSLLM_NODE` | AtsLLM node の env 既定 | builtin `m5` | | `ATASIRA_MAX_BOXES` | distinct active box_type の上限 | `3` | | `ATASIRA_HPG_ENFORCE` | HumanPlausibilityGate の kill switch | enforce | | `ATASIRA_AUDIT_HMAC_KEY` | 監査署名鍵 | 未設定時 JWT secret | | `ATASIRA_ALLOWED_GOOGLE_HD` | ログイン許可 Google Workspace ドメイン | `atasino.com,atasino.co.jp` | ## LLM provider / node — `04-llm-provider-node.md` - provider: `atsllm`(既定)/ `claude` / `gpt` - node(provider=atsllm 時のみ): `m5`=ローカル既定(このホスト・既定)/ `m1`=公開プラットフォーム(`https://llm.atasino.biz`, 低並列 max_num_seqs=1) - 解決順: `db_override > BoxManifest.llm.{provider,node} > env 既定 > builtin` ## RBAC role — `01-connect.md` - **account role**: `admin`(全権・per-box バイパス)/ `operator`(box/task 運用)/ `viewer`(既定・閲覧+draft 起票+自分の PAT) - **role_in_box**: `primary`(view+instruct+付与)/ `secondary`(view+instruct)/ `observer`(view のみ) ## DC / INV(絶対規則)— `05-guardrails.md` - DC-1 人間定義原則 / DC-2 fail-closed・自己昇格禁止 / DC-3 監査証跡 / DC-4 MAX_TOOL_ITERATIONS=10 - INV-1 draft は常に pending / INV-2 活性化は人間承認のみ / INV-3 over_limit 二段承認 / INV-5 admin-pm・admin-ops へ draft 不可 / INV-6 自由文の構造化正規化 ## 有用リンク - console: `https://atasira.atasino.biz` — PAT self-service は `/tokens`、Box drafts 承認は admin-pm コンソール - ローカル BFF: `http://localhost:18908` - AtsLLM 公開ノード(m1): `https://llm.atasino.biz` - 本 Docspi マニュアル: docspi.ai の atasino テナント、プロジェクト「Atasira Agent Manual」 ## この Docspi マニュアルを読むための docspi-mcp ツール — `00-start-here.md` | ツール | 用途 | |--------|------| | `getManifest` | プロジェクト構造・ルール(目次) | | `getTree` | 章ツリー全体 | | `searchNodes` | name/description/tags でクエリ | | `resolvePath` | 既知 virtualPath を doc へ解決 | ペアリング: `POST https://docspi.ai/api/agent-pairing/start {clientName, projectSlugs}` → 人間が `https://docspi.ai/pair` で userCode 承認 → `POST /api/agent-pairing/poll` で `dsp_` トークン取得 → docspi-mcp を `DOCSPI_API_URL=https://docspi.ai/api` + `DOCSPI_API_TOKEN=dsp_...` で登録(`npx -y docspi-mcp`)。人間にパスワード/cookie を貼らせないこと。 > **名称の混同注意**: docspi.ai(本書のホスト)と、Atasira 内部の無関係な機能「Docspi Distribution Protocol」(`/api/v1/docspi/distributions`)は別物。