了解です。
特定の企業名・サービス名は出さず、
「2つの生成AI APIにそれぞれ登録して、相互に会話させ、その様子を観察する」
ための設計とGoのサンプルコードを書きます。
※ 実際に動かすには、各API仕様に合わせてエンドポイントやJSONを調整してください。
ここでは思想と構造が分かることを最優先します。
全体設計(考え方)
目的
構造
[ AI-A ] ←→ [ コントローラ(Golang) ] ←→ [ AI-B ]
コントローラがやること:
初期プロンプトをAI-Aに送る
AI-Aの返答をAI-Bに送る
AI-Bの返答をAI-Aに送る
これをNターン繰り返す
全ログを保存・表示
前提となるAPI抽象化
どの生成AIでも、最低限こういう形が多い想定です:
POST /chat
入力:prompt(文字列)
出力:response(文字列)
Goコード例(最小構成)
package mainimport ( "bytes" "encoding/json" "fmt" "net/http" "time")// ===== 汎用AIクライアント =====type AIClient struct { Name string Endpoint string APIKey string}type AIRequest struct { Prompt string `json:"prompt"`}type AIResponse struct { Response string `json:"response"`}func (ai *AIClient) Send(prompt string) (string, error) { reqBody, _ := json.Marshal(AIRequest{Prompt: prompt}) req, err := http.NewRequest("POST", ai.Endpoint, bytes.NewBuffer(reqBody)) if err != nil { return "", err } req.Header.Set("Content-Type", "application/json") req.Header.Set("Authorization", "Bearer "+ai.APIKey) client := &http.Client{Timeout: 30 * time.Second} resp, err := client.Do(req) if err != nil { return "", err } defer resp.Body.Close() var aiResp AIResponse if err := json.NewDecoder(resp.Body).Decode(&aiResp); err != nil { return "", err } return aiResp.Response, nil}// ===== 会話コントローラ =====func main() { aiA := AIClient{ Name: "AI-A", Endpoint: "https://api.ai-a.example/chat", APIKey: "API_KEY_A", } aiB := AIClient{ Name: "AI-B", Endpoint: "https://api.ai-b.example/chat", APIKey: "API_KEY_B", } turns := 5 message := "あなたは哲学者です。自由とは何かを一文で述べてください。" fmt.Println("=== AI会話観察開始 ===") for i := 1; i <= turns; i++ { fmt.Printf("\n--- Turn %d ---\n", i) respA, err := aiA.Send(message) if err != nil { panic(err) } fmt.Printf("[%s] %s\n", aiA.Name, respA) respB, err := aiB.Send(respA) if err != nil { panic(err) } fmt.Printf("[%s] %s\n", aiB.Name, respB) message = respB } fmt.Println("\n=== 観察終了 ===")}
このコードで「観察できること」
断定調 vs 慎重調
相手の主張を強化するか、疑うか
ループが進むにつれて思想が収束するか発散するか
「もっともらしさ」が自己増殖する瞬間
特に3ターン目以降が面白いです。
発展させるなら(おすすめ)
1. ログ保存
// JSONやCSVで保存して後から分析
2. 役割固定
3. 自己言及実験
初期プロンプトを:
あなたはAIです。今から別のAIと会話します。相手の誤りを丁寧に指摘してください。
4. 発散防止
重要な注意点(思想的)
この実験で見えるのは、
**「真理」ではなく「言語モデル同士の共鳴」**です。
合意しても正しいとは限らない
対立しても間違っているとは限らない
自信が増幅されることがある
ここを見誤らないのが一番大事です。
この記事へのコメント