【要約】**LLMエージェントに「生活習慣」を持たせた ― personality persistence を構造化パラメータで実現する設計** [Zenn_Python] | Summary by TechDistill
> Source: Zenn_Python
Execute Primary Source
// Problem
Soul-Twinの開発チームは、LLMエージェントのペルソナと実際の行動が乖離する問題に直面した。アインシュタインのAIが、設定とは異なり毎日運動し早寝してしまう事象が発生した。
- ・ペルソナが人格説明に留まり、具体的な行動規則として機能していない。
- ・LLMが「合理的選択」を優先し、健康的な行動に収束してしまう。
- ・選択肢の提示順序がLLMの判断に偏りを与えている。
// Approach
開発者は、構造化された行動パラメータを自然言語に変換してプロンプトへ注入する設計を採用した。これにより、LLMに「必ず従うべき習慣」を明示的に認識させる。
- ・
society_profile(JSONB) に行動傾向を定義。 - ・
_behavior_bias_text()でパラメータを自然言語のバイアス文へ変換。 - ・
_ask_choice()へのバイアス注入と、目標時刻に近い選択肢を先頭にする動的ソート。 - ・バイタル状態の多日蓄積による、出力品質へのフィードバックループの構築。
// Result
この設計により、エージェントは体調が良好であっても、設定された「だらしない習慣」を維持できるようになった。
- ・ペルソナと行動の一貫性を確保し、個性を表現可能にした。
- ・数値の蓄積により、「疲れた天才」のような状態に応じた出力品質の変化を実現。
- ・天気やニュースなどの外部環境と連動した、自律的な意思決定が可能になった。
- ・シミュレーションの結果をCeleryタスクとして実タスクへカスケード起動できる。
Senior Engineer Insight
> プロンプトエンジニアリングに留まらず、状態(State)と行動(Action)を数値管理し、プロンプトへ還元する「閉ループ制御」的な設計が極めて実践的である。Celeryを用いたタスクのカスケード起動は、シミュレーションから実タスクへの移行において高い拡張性を持つ。ただし、パラメータ増大によるトークン消費量と複雑性の増大には注意が必要だ。