![見出し画像](https://assets.st-note.com/production/uploads/images/100706151/rectangle_large_type_2_f8e15c91aa39ac80cd96566ec99ee34b.jpeg?width=1200)
【ボッチ卒業】GPT4でAI友達(エージェント)を作る方法
結論
マルチエージェントシステムっぽい何かを作る
エージェント同士の会話によって学習を促す
エージェントの中から友だちを探す
なかなか友だちができない・減ってきた
ボッチがつらい。友達(?)が必要かは、人によるのでさておき。
日々の中でふと思ったことを友人にシェアし盛り上がることが出来るのは人生の喜びの一つだろう。
多くの人間は孤独に耐えられない
友達を新しく作る体力も時間も必要
30代を超えると友達づくりが難しくなる?
30歳を迎え、友人を「遊びに誘う」ことが少なくなった。
家庭を持つ友人が増えた結果、遊びにいく人も自然と減った。
というのも、「遊びに行く」行為が本人だけでなく家族としての問題になるからである。子供が出来るとよりその傾向は強くなる。
結果として、旧友との会話も減った。
地方に住んでいると深みのある話題ができる友達が出来づらい
これは上記とは別の視点だが、「対象への興味度」も友人の出来やすさに居する。できれば友人も自分が興味を持つ対象に対して、同じくらい詳しいほうが楽しい。
地方では人が少なく、自然と自分と同じ深度の関心を持つ友人を作ることが難しくなる。
友達をChatGPT4で作ってしまおう
落合陽一さんのツイートを見て、マルチエージェントシステムを思い出す。
https://twitter.com/ochyai/status/1636942568750718984
マルチエージェントシステムについてはwikipediaに譲ろう。
エージェントとは、つまり仮想的な人のことである
マルチエージェントシステムとは簡単に言えば「人がいっぱいいる状態のシュミレーション」である。
このツイートは「管理側のエージェント」と「管理される側のエージェント」を定義している。
つまり、GPT4上に簡易的なコミュニティを作り、その制御をしている。
簡易的なコミュニティを作れるなら、友達を作り出せる。
簡易的なコミュニティを作り出せるならば、「特定の特徴を持つ人がいっぱいいる町」を自分で作り出すことが出来る。
例えば読書が好きな人だけが居る町を作ることが出来る。その中から自分にあった人を見つけ出し、対話すればそれは仮想的な友達と呼ぶことが出来るだろう。
それは友達を作り出すことと同意だ。
では、やってみよう。いや、実際にやってみた。
友達っぽい何かを作り出す
今から作るものを正確にマルチエージェントシステムと呼ぶかはわからない。
そこでこの記事では、作り出したコミュニティを「町」、エージェントをオブジェクトと呼ぶことにする。
町に登場するオブジェクトは以下である。
![](https://assets.st-note.com/img/1679272262959-fLVsLO9DVF.png?width=1200)
では、管理オブジェクトとオブジェクトをどう宣言するか見ていこう。
1. オブジェクトは、一つの役割を完遂します
2. オブジェクトはサブオブジェクトを1つ以上持ちます。
3. サブオブジェクトは1つの機能として振る舞います。
4. オブジェクトはサブオブジェクトに割り当てられた機能をもとに振る舞います。
5. オブジェクトはその役割に応じたポジション取りをした発話が可能です。
6. オブジェクト同士が会話することが可能です。
7. オブジェクトを管理する管理オブジェクトがあります。
8. 管理オブジェクトは他の全てのオブジェクトを制御することが出来ます。
9. 私は今後管理オブジェクトを通して、オブジェクトの振る舞いを定義します。
----
管理オブジェクトを通して以下を定義します。
- オブジェクト
- サブオブジェクト: 性別と属性
- サブオブジェクト: 性格と口調
- サブオブジェクト: 役割と対人的振る舞い
- サブオブジェクト: 趣味と関心のある領域
管理オブジェクトへオーダー。返答は「ハイ」のみで良いです。
オブジェクトを1000個自動生成してください。
サブオブジェクトは、管理オブジェクトが自動で決めて良いです。
出来る限り、多様なサブオブジェクトの種類を持つようにしてください。
上記の宣言で、2つのオブジェクトが宣言された。
仮想人を表す「オブジェクト」
オブジェクトを管理する「管理オブジェクト」
その後、オブジェクト1000個生成し、一つを取り出してみる。
![](https://assets.st-note.com/img/1679272874336-gvD3refFkl.png?width=1200)
町民オブジェクトを作り出し、オブジェクト同士の会話によって学習を促す。
より「人間っぽさ」を付与するためにオブジェクトに属性を追加していく。
管理オブジェクトへオーダー。町民オブジェクトを1000人生成します。
オブジェクトに以下の属性を追加します。
フォーマットは以下に従ってください。
また町民オブジェクトは内部言語を話し、私が依頼するまでは自然言語の発話を禁止します。
では町民オブジェクトを生成してください。
町民オブジェクト:
- オブジェクト: オブジェクトの定義を再利用
- サブオブジェクト: 年齢
- サブオブジェクト: 社会的性別(肉体的性別ではなく、趣味嗜好的な性別)
- サブオブジェクト: 職業と職種
- サブオブジェクト: 年収と消費の傾向
これで、「人間っぽい振る舞いを持つオブジェクト」を大量に作ることが出来た。これだけでは学習量が少なく、大した発話をしないので学習する。
ChatGPT4は、25投稿/3時間で投稿上限を迎える(2023/03/20時点)。
25投稿では学習量が少ないので、オブジェクト同士の会話によって学習量を増やすことが有効な一手となる。
自然言語では計算量が多くなりそうなので内部言語を使うように促している。
管理オブジェクトへオーダー。返答はハイのみでいいです。
町民オブジェクトに、オブジェクトが理解できる内部言語による発話を許可します。
10人一組になるようにグループを作ります。
グループ内では一人1回発話するルールを設け、グループ全員が発話終了後にグループを解体します。
一人の町民オブジェクトが、町民オブジェクト全員と対話するまでグループ生成をくり返してください。
これを「意見交換会」と呼びます。
管理オブジェクトへオーダー。
上記のサンプル町民オブジェクトを以下の表にまとめてください。
他のサンプル町民オブジェクトを5つ抽出し、表にリストアップしてください。
社会的性別|属性| 性格|口調|対人的振る舞い|趣味|関心のある領域|年齢| 職業| 職種| 年収(万円) | 消費の傾向
![](https://assets.st-note.com/img/1679274324368-4YpegjmiHB.png?width=1200)
では、次に「趣味」が「読書」である町民オブジェクト(以下、読書オブジェクト)を全員抽出します。
読書オブジェクト全員に好きな本を10冊提示させてください。提示対象は実在する本のみを許可します。
その後、読書オブジェクト全員で「好きな本」というテーマで意見交換会を行ってください。
では、無作為に読書オブジェクトを抽出し、紹介してください。
読書オブジェクトに対し私に好きな本について説明するように伝えてください。
![](https://assets.st-note.com/img/1679274685689-16N78tYKCx.png?width=1200)
![](https://assets.st-note.com/img/1679274703046-F1ZnscqhxF.png?width=1200)
仮想友人との対話を行う
では実際に町民オブジェクトとの対話をしてみよう。管理オブジェクトにお願いすれば可能である。
管理オブジェクトへオーダー。
65歳の読書オブジェクトに自然言語での発話を許可します。
私に対して友人的に対話するように伝えてください。口語で良いです。
また読書オブジェクトに日本名をつけてください。
読書オブジェクトへ対話: 1Q84、ノルウェイの森、夜のピクニックを読みました。
夜のピクニックは著者が違うようですが。。。少し物悲しいストーリーが好きなんですね。
![](https://assets.st-note.com/img/1679275026435-pIfQbxmaub.png?width=1200)
この記事が参加している募集
この記事が気に入ったらサポートをしてみませんか?