defineSkill
AI エージェントのスキルを定義
defineSkill
AI エージェントのスキルを定義
スキルは、ワークスペース内で AI エージェントが利用できる再利用可能な指示と機能を定義します。 組み込み検証付きでスキルを定義するには 主なポイント:
defineSkill() を使用します:src/skills/example-skill.ts
nameはスキルの一意の識別子文字列です(kebab-case を推奨)。labelは、UI に表示される人間が読める表示名です。contentにはスキルの指示が含まれます — これは AI エージェントが使用するテキストです。icon(任意)は、UI に表示されるアイコンを設定します。description(任意)は、スキルの目的に関する追加のコンテキストを提供します。
defineAgent
カスタムプロンプトで AI エージェントを定義
defineAgent
カスタムプロンプトで AI エージェントを定義
エージェントは、ワークスペース内で動作する AI アシスタントです。 カスタムのシステムプロンプトでエージェントを作成するには 主なポイント:スキーマに関する補足:
defineAgent() を使用します:src/agents/example-agent.ts
nameはエージェントの一意の識別子文字列です(kebab-case を推奨)。labelは UI に表示される表示名です。promptはエージェントの動作を定義するシステムプロンプトです。description(任意)は、エージェントが何を行うかのコンテキストを提供します。icon(任意)は、UI に表示されるアイコンを設定します。modelId(任意)は、エージェントが使用するデフォルトの AI モデルを上書きします。responseFormat(オプション)は、エージェントの出力の形式を制御します。 自由形式テキストの場合、デフォルトは{ type: 'text' }です。 構造化された JSON 出力を強制するには、{ type: 'json', schema }を使用します。
responseFormat を { type: 'json' } に設定し、schema を指定します:src/agents/structured-agent.ts
- スキーマはフラットなオブジェクトであり、各プロパティの
typeはプリミティブ型(string、number、booleanのいずれか)でなければなりません。 ネストされたオブジェクトおよび配列はサポートされていません。 - 各プロパティの
description(オプション)は、そのプロパティに何を入れるべきかをモデルに示します。 required(オプション)は、モデルが常に返さなければならないプロパティを列挙します。additionalProperties: false(オプション)は、propertiesに宣言されていないプロパティを禁止します。
runAgent
ロジック関数からエージェントを実行する
runAgent
ロジック関数からエージェントを実行する
runAgent() を使用すると、ロジック関数からアプリのエージェント(そのスキルやツールを含む)を実行できます。 defineAgent() に渡した universalIdentifier でエージェントを識別します:src/logic-functions/run-enricher.ts
- エージェントは同期的に実行され、自身のツールを通じてレコードの読み取り/更新ができます。
runAgent()は、実行が完了すると解決されます。 - アプリは自分自身のエージェントのみを実行できます。
- アプリのデフォルトロールには
AIパーミッションフラグが付与されている必要があります — そのpermissionFlagUniversalIdentifiersにSystemPermissionFlag.AIを追加するか(またはcanAccessAllTools: trueを設定します)。 これがない場合、runAgent()はパーミッションエラーで失敗します。 - ロジック関数には十分に長い
timeoutSecondsを設定してください — エージェントの実行には数秒かかることがあります。 - 実行が完了すると
successはtrueになり、resultは null 以外になります。失敗時にはsuccessはfalse、resultはnullで、errorに理由が入ります(たとえば、実行の途中でワークスペースの AI クレジットが不足した場合など)。
src/roles/default-role.ts