maestro/docs/tools/updateuseragents.md
oss-sync 1602d52510
Some checks failed
CI / build-and-test (push) Has been cancelled
sync: update from private repo (2ef0fa6)
2026-06-17 05:23:28 +00:00

55 lines
3.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# ReadUserAgents / UpdateUserAgents
ユーザーごとの常時指示書 `AGENTS.md` を読み書きするツール。`AGENTS.md` は各タスクのシステムプロンプトに自動注入される「このユーザーが常に守ってほしいこと」を書いた個人ファイル。memory`UpdateUserMemory`)が事実の断片を貯めるのに対し、`AGENTS.md` は振る舞いの方針そのもの。
両ツールは META_TOOL常時利用可能。piece の `allowed_tools` に書かなくても使える。per-user 機能なので、認証済みユーザーのコンテキスト(`ctx.userId`)が必要。
## ReadUserAgents
引数なし。現在の `AGENTS.md` 全文を切り詰めずに返す。**編集前に必ず呼ぶこと** — `replace` は原文と完全一致する文字列が必要で、システムプロンプトへの注入版は 64KB で切り詰められている場合があるため。
ファイルが無い/空のときは、その旨と「`append` で新規作成できる」案内を返す(エラーではない)。
## UpdateUserAgents
`AGENTS.md` を 2 モードで編集する。書き込み前に旧版を `trash/agents-history/AGENTS.md.{timestamp}.bak` に自動退避(直近 10 件を保持)。事故時はそこから復元できる。
### パラメータ
| 名前 | 必須 | 説明 |
|---|---|---|
| `mode` | ○ | `"replace"` または `"append"` |
| `old_text` | replace時○ | 置換対象の既存文字列。**ちょうど 1 回だけ**一致する必要がある |
| `new_text` | ○ | replace の置換後テキストappend で末尾に足すテキスト |
### mode="replace"
`old_text``new_text` に置き換える。コアの `Edit` ツールと同じ「一意一致」セマンティクス。
- 0 回一致 → エラー(`ReadUserAgents` で原文を確認するよう促す)
- 2 回以上一致 → エラー(前後の文脈を含めて一意にするよう促す)
- ファイルが空 → エラー(`append` を案内)
`new_text` 内の `$&``$1` は特殊扱いされない(リテラルとして入る)。
### mode="append"
`new_text` を末尾に追記する。既存末尾の空行を整理し、空行 1 行を挟んで足す。ファイルが空なら `new_text` がそのまま新規ファイルになる。
### 制限・エラー
- 結果が 64KB を超えると `writeUserAgentsMd` が拒否(`AGENTS.md exceeds 65536 bytes`
- `ctx.userId` が無い(認証なし)→ エラー
- 監査ログ `user_agents_updated`mode / バイト数 / スナップショット有無)を記録
## 典型フロー
1. `ReadUserAgents` で現在の内容を取得
2. ユーザー依頼に応じて `UpdateUserAgents({ mode: "replace", old_text: "...", new_text: "..." })` または `mode: "append"`
3. 戻り値でバイト数とスナップショット退避を確認
## 関連
- `UpdateUserMemory` / `ReadUserMemory` — 事実の断片を貯める個人 memory`docs/tools` の該当 doc 参照)
- UI からの編集は Settings 経由HTTP `GET/PUT/DELETE /agents-md`