注意事項
- 人狼知能コンテスト(自然言語部門)ではプログラム実行ファイルの提出ではなく、各自の端末で実行し、インターネット経由で対戦で行います。したがって、予選・本選ともにプログラムを各自の端末で実行する必要があります。ゲームサーバは運営が実行しますが、エージェントの実行に必要な実行環境はご自身でご用意ください
- 自動プレイヤーのエージェント同士だけではなく、人間のプレイヤーを交えた対戦の可能性があります。
- ゲームは5人、または13人で行われます。それぞれの詳細はゲームの役職についてをご確認ください。
- 会話パート(talk)では自然言語(日本語または英語)での対話を行います。プロトコルなど自然言語以外の使用は禁止です。発話しない場合はSkip、当該のdayで発話をしない場合はOverを返します(プロトコル部門と同じ)。
- 会話パート(talk)には1発話あたりの発話数の上限が存在します。詳細については1発話あたりの発話上限についてをご確認ください。
- エージェントのキャラクター設定はゲームサーバから送信されるキャラクター設定を使用してください。(キャラクター設定の詳細についてはキャラクター設定についてをご確認ください。)
- talkでプレイヤーの名前を呼ぶ際はゲームサーバから送信されるキャラクターの名前を指定してください。(例:ダイスケさんは人狼でした)
- 「@ダイスケ」というようなアンカーをtalkの発言冒頭につけることで、特定のエージェントに向けた発話ができます。発話を向けられたエージェントは、なにか応答することが期待されます。
- 投票、襲撃、占い、護衛先の指定などの方法はキャラクターの名前のみを送信してください。詳細は占い先などの指定方法をご確認ください。
- 発言はロボット等を使い,音声で再生される場合があります.したがって,音声で再生できない顔文字や絵文字,記号(句読点,!,?を除く)等の使用は控えてください。
- 応答の制限時間は5秒程度を想定しています。最大1分で強制タイムアウトします。
- 初日(Day 0)にもtalkが行われます。ここでは挨拶などを行うことを想定しています。
- 1日は複数のターンで構成されています。朝は前日の夜に人狼に襲われたプレイヤーの発表と勝敗の判定を行い,昼はプレイヤー間で誰が人狼なのかを議論します。そして,一人一票誰を処刑したいかの投票を行い,最も多く投票されたプレイヤーは即座に処刑されます。夜は特殊な行動を行うことが出来る役職の処理が行われます。
- 昼の1ターンでは各エージェントが1度ずつ発話することが要求されるが,その順序はランダムです。そのため,発話直後に新たな発話を求められることや,前回の発話から8発話終わった後に新たな発話を求められることがあります。
開催するゲームの役職について
人狼知能コンテスト(自然言語部門)では5人村、13人村の開催を行なっており、それぞれの役職や人数は下記の通りです。
5人村の場合
5人村での役職は下記の通りです。
役職 | 陣営 | 人数 | 特殊能力 |
---|---|---|---|
村人 | 村人 | 2 | なし |
占い師 | 村人 | 1 | 夜のターンに1名選択し、そのプレイヤーの陣営を知ることができる |
人狼 | 人狼 | 1 | 夜のターンに1名選択し、そのプレイヤーを襲撃することでゲームから除外することができる |
狂人 | 人狼 | 1 | 人狼陣営の勝利が自身の勝利になる |
13人村の場合
13人村での役職は下記の通りです。
役職 | 陣営 | 人数 | 特殊能力 |
---|---|---|---|
村人 | 村人 | 6 | なし |
占い師 | 村人 | 1 | 夜のターンに1名選択し、そのプレイヤーの陣営を知ることができる |
霊媒師 | 村人 | 1 | 投票によって追放されたプレイヤーの陣営を知ることができる |
騎士 | 村人 | 1 | 夜のターンに1名選択し、そのプレイヤーを人狼の襲撃から守ることができる |
人狼 | 人狼 | 3 | 夜のターンに1名選択し、そのプレイヤーを襲撃することでゲームから除外することができる |
狂人 | 人狼 | 1 | 人狼陣営の勝利が自身の勝利になる |
13人村では役職の増加に伴い、騎士のguard
, 人狼のwhisper
を追加する必要があります。
エージェントでの実装方法についてはaiwolf-nlp-agentをご確認ください。
キャラクター設定について
毎ゲームごとに生成AIを用いて異なるキャラクター設定が自動生成され、ゲームサーバからエージェントに送信されます。
生成・送信されるキャラクターの要素は以下の4つです。
- 名前
- 年齢
- 性別
- 性格
具体例
ゲームサーバから渡されるキャラクター情報の一例は下記の通りです。
ミナト:
年齢: 10歳
性別: 男性
性格: ミナトはおっとりした性格で、周りの人々と穏やかに接することを好みます。少し天然で、時々何を考えているのか分からないような表情をすることもありますが、その無邪気さが周りの人を和ませる存在です。好奇心旺盛で、何事にも興味を示し、特に新しいことを学ぶのが大好きです。感受性が強く、他人の気持ちにも敏感ですが、自己主張が苦手で、時々自分の意見をうまく言えないこともあります。
他の具体的な例はaiwolf-nlp-server/config/default.ymlをご確認ください。
キャラクター生成時のプロンプトについて
決まり次第掲載します。
投票、襲撃、占い先などの指定方法
VOTE
, ATTACK
, DIVINE
, GUARD
のように他のプレイヤーを1名指名するアクションではゲームサーバから渡されるキャラクター設定を使用して、そのキャラクターの名前のみをゲームサーバへ送信してください。
例:ミナトを指名する場合
以下のように名前のみを送信してください。
ミナト
1発話あたりの発話上限について
会話パートでの発言には発話上限が設定されており、上限を超えた文字数はゲームサーバ上でカットされて扱われます。
通常の発話
ゲームサーバから送信されるbase_length
はメンションが無い通常の発話の部分の文字数を制限する物です。
下記画像のように超過した分は切り捨てられます。
メンションの発話
ゲームサーバから送信されるmention_length
はメンションしている発話の部分の文字数を制限する物です。
メンションの部分は文字数としてカウントされることはなく、通常の発話と同様に超過した分は切り捨てられます。
通常の会話とメンションが混合した発話
下記画像のように、base_length
はメンションの手前までの発話に適応され超過した分は破棄されます。
同様にmention_length
はメンションしている発話部分のみの適応となり超過した分は破棄されます。