コンテンツにスキップ

profile.yaml

.reyn/agents/<name>/profile.yaml に格納される agent ごとのメタデータ。reyn agent new で作成され、すべての reyn chat 起動時に読み込まれます。

スキーマ

name: researcher                       # 必須(== ディレクトリ名)
role: |                                # 省略可能、デフォルト ""
  Deep technical research, prefers
  primary sources (arxiv, RFCs).
created_at: 2026-05-01T12:00:00+00:00  # ISO-8601 UTC、`reyn agent new` が設定
allowed_skills:                        # 省略可能、デフォルト null(無制限)
  - web_search
  - recall_docs

フィールド

name(文字列、必須)

agent 名。^[a-z0-9][a-z0-9_-]{0,31}$ に一致し、親ディレクトリ名と等しくなければなりません。default agent は予約済みで、最初の reyn chat 時に自動作成されます。

role(文字列、デフォルト ""

agent の LLM システムプロンプトに ━━━ AGENT ROLE ━━━ ブロックとして注入される自由形式のテキスト。短く、行動的に具体的に書いてください。Skill を変更せずに agent をピアと差別化するのがこれです。

空のロールでも問題ありません。その場合、agent は追加のペルソナなしのジェネラリストとして振る舞います。

created_at(文字列、デフォルト ""

reyn agent new が実行されたときに設定される ISO-8601 UTC タイムスタンプ。装飾的; ランタイムでは参照されません。

allowed_skillslist[str] | null、デフォルト null

Skill の allowlist。3 つの状態とそれぞれの意味:

意味
なし / null 無制限。 すべてのプロジェクト + stdlib Skill がルーター LLM に提供されます。
[](空リスト) ルーターのみ。 Skill の起動は行われません。ルーターは直接返信またはピアへの委任はできます。
[a, b, c] Allowlist。 リストされた Skill 名のみが提供されます。

stdlib ルーター(skill_router)、コンパクター(chat_compactor)、ナレーター(skill_narrator)は常に有効であり、このリストの対象外です。これらはシステム Skill であり、agent が選択する Skill ではありません。

二重レイヤーの強制:

  1. ルーター側のフィルター_invoke_router は LLM がカタログを見る前に available_skills を allowlist に絞り込みます。
  2. 多層防御_spawn_skill は起動時に再チェックします。ブロックされた起動はアウトボックスの errorreason="allowlist"skill_spawn_refused イベントとして現れます。

編集

reyn agent new --role が新しいプロファイルを書き込みます。その後に allowed_skills(または他のフィールド)を変更するには、ファイルを直接編集してください。まだ reyn agent set-skills CLI はありません(残課題)。フォーマットは順序や末尾のキーについて寛容です。

関連情報