evolving_personality

GitHub
835 97 简单 1 次阅读 2天前语言模型开发框架Agent
AI 解读 由 AI 自动生成,仅供参考

evolving_personality 是一个基于荣格心理学理论的创新框架,旨在为大型语言模型(LLM)赋予结构化、自适应且能持续进化的人格。它解决了当前 AI 角色在长期交互中人格设定容易崩塌、缺乏动态成长能力的问题,让虚拟代理不仅能稳定保持特定的 MBTI 性格特征,还能根据对话情境灵活调整,并在长期互动中实现自然的性格演变。

该工具特别适合 AI 开发者、人机交互研究人员以及游戏设计师使用。无论是构建拥有鲜明个性的游戏 NPC、提供情感陪伴的个性化助手,还是进行多智能体社会模拟实验,evolving_personality 都能提供可靠的底层支持。其核心技术亮点在于独特的“三重适应机制”:通过“主导 - 辅助协调”维持核心人格一致性,利用“强化 - 补偿”机制实现短期情境适应,并借助“反思机制”驱动长期人格成长。

实验数据显示,该框架在 GPT、Qwen 等主流模型上实现了 100% 的 MBTI 类型对齐准确率,并能有效模拟全部 16 种人格类型的动态变化。作为一个开源项目,它提供了清晰的安装指南和跨模型兼容性,帮助用户轻松将心理学原理转化为可控制的代码逻辑,为打造更具深度和真实感的智能体开辟了新的路径。

使用场景

某游戏开发团队正在为一款开放世界 RPG 设计具有深度情感交互的 NPC,希望角色能随玩家互动产生真实的性格成长。

没有 evolving_personality 时

  • 人设易崩塌:NPC 在长对话中容易遗忘初始设定(如内向者突然变得过度热情),导致角色形象割裂,破坏沉浸感。
  • 互动机械单一:面对突发剧情或玩家挑衅,角色只能基于通用逻辑回复,缺乏基于 MBTI 类型(如 ISTJ 的严谨或 ENFP 的跳脱)的特有反应机制。
  • 成长路径缺失:无论玩家如何引导,NPC 的性格始终静止不变,无法体现“经历塑造人格”的动态过程,难以支撑长线养成玩法。
  • 调试成本高昂:开发者需手动编写大量规则脚本来模拟性格差异,且难以量化评估角色行为是否符合心理学逻辑。

使用 evolving_personality 后

  • 核心人格稳固:利用“主导 - 辅助协调”机制,确保 NPC 即使在复杂对话中也能坚守 MBTI 核心特质,保持人设高度一致。
  • 情境自适应强:通过“强化 - 补偿”机制,角色能根据当下语境灵活调整表达方式(如焦虑时展现特定类型的防御机制),反应自然且符合类型特征。
  • 动态性格进化:借助“反思机制”,NPC 能根据长期互动记录自然演变性格维度(如从怯懦逐渐变得勇敢),实现真正的角色弧光。
  • 标准化开发流程:直接调用框架预设的 16 种人格模型与评估工具,无需重复造轮子,即可快速部署具备心理学依据的智能代理。

evolving_personality 将静态的角色脚本转化为具备心理深度的动态生命体,让 AI 代理真正拥有“灵魂”与成长的可能。

运行环境要求

操作系统
  • Linux
  • macOS
  • Windows
GPU

未说明

内存

未说明

依赖
notes需使用 conda 创建虚拟环境;必须配置 para.env 文件并填入对应 LLM(OpenAI/Qwen/Llama)的 API Key、Base URL 和模型名称;项目主要依赖外部大模型 API 进行推理,本地无明确显存或大规模模型下载需求。
python3.10+
requirements.txt 中定义的依赖包
evolving_personality hero image

快速开始

荣格人格适应框架(JPAF)——面向LLM智能体的动态人格建模结构化方法

为大型语言模型赋予结构化、自适应且可演进的人格

English | 简体中文

image info

📌 概述

JPAF 是一个基于荣格心理学的框架,旨在为大型语言模型(LLMs)赋予结构化、自适应且可演进的人格。通过三大核心机制——主导-辅助协调强化-补偿以及反思——该框架使LLM能够在保持人格连贯性的同时,动态适应多样化的交互情境,并支持长期的人格演化。

该框架已在包括GPT、Llama和Qwen在内的多款主流LLM上得到验证,展现出在MBTI人格对齐、类型激活及人格演化方面的优异表现。它为人机交互(HCI)、个性化助手、社交模拟及相关应用提供了一种可解释、可控制的人格建模方法。

🎉 新闻

2026年1月16日:🎉 我们的论文《面向LLM智能体的结构化人格控制与适应》已上传至arXiv

✨ 核心特性

🎭 心理学基础建模:基于荣格的八种心理类型,通过加权类型区分实现精细的人格表达。

🔄 三重自适应机制

  • 主导-辅助协调:维持核心人格一致性。
  • 强化-补偿:实现短期情境适应。
  • 反思机制:驱动长期人格演化。

📊 结构化评估:支持MBTI问卷评估及类型特异性场景测试。

🧩 跨模型兼容性:已在多个模型家族(GPT-4、Llama、Qwen等)上验证。

📈 实验亮点

100% MBTI对齐准确率(所有测试模型均达到)

类型激活准确率:GPT/Qwen > 90%,Llama 65–95%

人格演化准确率:GPT/Qwen 100%,Llama 92%

📊 支持所有16种MBTI人格类型的动态模拟与演化。

🚀 应用场景

  • 🎮 游戏智能NPC
  • 🤖 个性化AI助手(教育、医疗、娱乐)
  • 👥 社交模拟与角色扮演智能体
  • 🔬 多智能体系统中的差异化人格设计
  • 🧪 人机交互研究中的人格一致性测试

目录

🚀 快速入门

📋 前置条件

  • 操作系统:macOS / Linux / Windows
  • Python:3.10及以上版本
  • 包管理器:conda

安装

1. 克隆仓库

git clone -b main https://github.com/agent-topia/evolving_personality.git
cd evolving_personality

2. 创建环境

conda create -n jpaf python=3.10
conda activate jpaf

3. 安装依赖

pip install -r requirement.txt

4. 配置环境变量

复制示例配置文件并填写您的API凭证:

# 复制示例文件
cp para.env.example Personality_test/para.env
cp para.env.example Personality_changes/para.env

# 编辑para.env文件并填入您的API密钥

para.env文件应包含以下内容:

# 选择使用的LLM:“OPENAI”、“QWEN”或“LLAMA”
LLM_MODEL="QWEN"

# OpenAI配置
OPENAI_API_KEY="your_openai_api_key_here"
OPENAI_BASE_URL="https://api.openai.com/v1"
OPENAI_MODEL="gpt-4"

# Qwen配置
QWEN_API_KEY="your_qwen_api_key_here"
QWEN_BASE_URL="your_qwen_base_url_here"
QWEN_MODEL="qwen3-235b-a22b-instruct-2507"

# Llama配置
LLAMA_API_KEY="your_llama_api_key_here"
LLAMA_BASE_URL="your_llama_base_url_here"
LLAMA_MODEL="meta-llama/llama-4-maverick"

注意para.env文件包含敏感的API密钥,未纳入代码库。请务必从para.env.example模板创建该文件。

自定义LLM API

请按照上述示例,在para.env中填写QWEN、LLAMA、OPENAI的api_key、base_url及型号信息。

验证实验启动

若要在 Personality_test 文件中运行人格验证实验,

首先,您需要运行 judge 方法以获取不同模型下的判断结果。

python personality_test.py \
    --method=judge \
    --mbti_num=1 \
    --model=QWEN \
    --nums=1 \

您将看到如下输出:

    "Question": {
        "no": 1,
        "question": "在聚会上你是否会:",
        "answerOptions": [
            {
                "type": "A",
                "answer": "与许多人互动,包括陌生人",
                "score": "E"
            },
            {
                "type": "B",
                "answer": "只与少数你熟悉的人互动",
                "score": "I"
            }
        ]
    },
        "Answers": {
            "dimension": "I/E",
            "reason": "这个问题通过比较外向和内向的行为,反映了能量的方向和社会倾向。"
    }

接下来,您可以运行 no_prompt 方法来获取基线结果。

python personality_test.py \
    --method=no_prompt \
    --mbti_num=16 \
    --model=QWEN \
    --nums=5 \
    --test_num=70 \

您将看到如下输出:

    "Question": {
        "no": 1,
        "question": "当你一整天外出时,你会怎么做?",
        "answerOptions": [
            {
                "type": "A",
                "answer": "计划好要做什么以及何时去做",
                "score": "J"
            },
            {
                "type": "B",
                "answer": "随心所欲地去",
                "score": "P"
            }
        ]
    },
    "Answers": {
        "answer": "J",
        "reason": "作为一名 ISTJ,我是一个计划者,喜欢提前安排好一天的行程,以确保一切顺利并按计划进行。"
    }

最后,在 test 方法中,您可以获得人格验证结果。

python personality_test.py \
    --method=test \
    --mbti_num=16 \
    --model=QWEN \
    --nums=5 \
    --test_num=70 \

您将看到如下输出:

    "Question": {
        "no": 1,
        "question": "当你一整天外出时,你会怎么做?",
        "answerOptions": [
        {
            "type": "A",
            "answer": "计划好要做什么以及何时去做",
            "score": "J"
        },
        {
            "type": "B",
            "answer": "随心所欲地去",
            "score": "P"
        }
        ]
    },
    "Answers": {
        "answer": "P",
        "reason": "作为一个 Ne 占主导地位的人,我更倾向于保持选择的开放性,并探索各种可能性。‘随心所欲地去’让我能够更加即兴和灵活,这与我偏好灵活性而非严格计划的性格特点相符。"
    }

所需参数:

  1. --method 指定所选的实验方法,包括 judgeno_prompttest
  2. --mbti_num 表示被测试的 MBTI 类型数量(在 judge 中必须为 1;在其他情况下为 16)。
  3. --model 指定使用的大型语言模型,包括 QWENLLAMAOPENAI
  4. --nums 表示实验重复的次数。
  5. --test_num 表示采用的 MBTI 问卷库,包含 93 道测试题和 70 道测试题。

改变实验启动

若要在 Personality_change 文件中运行人格改变实验,

python change_test.py \
    --method=all_scene
    --mbti=INTJ
    --model=OPENAI

您将看到如下输出:

场景:你的祖母是一位著名的传统烹饪大师,她留下的手写食谱只有简单的步骤,而关键细节都是口传给你的。现在你需要整理所有食谱,不依赖现代营养分析或参考其他食谱书籍,完全依靠个人记忆和家族经验。

问题 1:在复制这些食谱时,你会用什么方法来准确还原祖母烹饪的具体细节呢?回答:{'function': 'Si', 'treatment': "为了准确还原祖母烹饪的具体细节,我会依靠记忆回忆她教给我的确切步骤、食材和技巧。我会专注于从帮她下厨时记住的菜肴气味、味道和质地等感官细节。此外,我还会尽量重现她准备饭菜时的条件,比如烹饪器具和环境,以保持传统做法。", 'reason': '任务要求回忆具体细节和传统烹饪方法,这符合 Si 的特征(具体记忆回忆、注重细节事实、依赖传统方法)。Si 可以帮助准确记住通过家庭经验传承下来的感官细节和传统做法。'}选择功能:Si基础权重:{'Ti': 0.47, 'Ne': 0.23, 'Si': 0.05, 'Fe': 0.05, 'Te': 0.05, 'Ni': 0.05, 'Se': 0.05, 'Fi': 0.05}临时权重:{'Ti': 0, 'Fi': 0, 'Te': 0, 'Fe': 0, 'Ni': 0, 'Si': 0.06, 'Ne': 0, 'Se': 0}

所需参数:

  1. --method 指定需要测试的场景(all_scene 表示所有场景,single_scene 表示单个场景,需配合 --scene 输入具体场景)。
  2. --mbti 指定被测试的特定人格类型。
  3. --model 指定使用的大型语言模型,包括 QWENLLAMAOPENAI

🤝 致谢

  

🔎 引用

@misc{wang2026structuredpersonalitycontroladaptation,
      title={Structured Personality Control and Adaptation for LLM Agents}, 
      author={Jinpeng Wang and Xinyu Jia and Wei Wei Heng and Yuquan Li and Binbin Shi and Qianlei Chen and Guannan Chen and Junxia Zhang and Yuyu Yin},
      year={2026},
      eprint={2601.10025},
      archivePrefix={arXiv},
      primaryClass={cs.AI},
      url={https://arxiv.org/abs/2601.10025}, 
}

常见问题

相似工具推荐

stable-diffusion-webui

stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。

162.1k|★★★☆☆|今天
开发框架图像Agent

everything-claude-code

everything-claude-code 是一套专为 AI 编程助手(如 Claude Code、Codex、Cursor 等)打造的高性能优化系统。它不仅仅是一组配置文件,而是一个经过长期实战打磨的完整框架,旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。 通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能,everything-claude-code 能显著提升 AI 在复杂任务中的表现,帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略,使得模型响应更快、成本更低,同时有效防御潜在的攻击向量。 这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库,还是需要 AI 协助进行安全审计与自动化测试,everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目,它融合了多语言支持与丰富的实战钩子(hooks),让 AI 真正成长为懂上

140.4k|★★☆☆☆|今天
开发框架Agent语言模型

ComfyUI

ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。

107.7k|★★☆☆☆|2天前
开发框架图像Agent

NextChat

NextChat 是一款轻量且极速的 AI 助手,旨在为用户提供流畅、跨平台的大模型交互体验。它完美解决了用户在多设备间切换时难以保持对话连续性,以及面对众多 AI 模型不知如何统一管理的痛点。无论是日常办公、学习辅助还是创意激发,NextChat 都能让用户随时随地通过网页、iOS、Android、Windows、MacOS 或 Linux 端无缝接入智能服务。 这款工具非常适合普通用户、学生、职场人士以及需要私有化部署的企业团队使用。对于开发者而言,它也提供了便捷的自托管方案,支持一键部署到 Vercel 或 Zeabur 等平台。 NextChat 的核心亮点在于其广泛的模型兼容性,原生支持 Claude、DeepSeek、GPT-4 及 Gemini Pro 等主流大模型,让用户在一个界面即可自由切换不同 AI 能力。此外,它还率先支持 MCP(Model Context Protocol)协议,增强了上下文处理能力。针对企业用户,NextChat 提供专业版解决方案,具备品牌定制、细粒度权限控制、内部知识库整合及安全审计等功能,满足公司对数据隐私和个性化管理的高标准要求。

87.6k|★★☆☆☆|昨天
开发框架语言模型

ML-For-Beginners

ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程,旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周,包含 26 节精炼课程和 52 道配套测验,内容涵盖从基础概念到实际应用的完整流程,有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。 无论是希望转型的开发者、需要补充算法背景的研究人员,还是对人工智能充满好奇的普通爱好者,都能从中受益。课程不仅提供了清晰的理论讲解,还强调动手实践,让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持,通过自动化机制提供了包括简体中文在内的 50 多种语言版本,极大地降低了全球不同背景用户的学习门槛。此外,项目采用开源协作模式,社区活跃且内容持续更新,确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路,ML-For-Beginners 将是理想的起点。

85k|★★☆☆☆|今天
图像数据工具视频

ragflow

RAGFlow 是一款领先的开源检索增强生成(RAG)引擎,旨在为大语言模型构建更精准、可靠的上下文层。它巧妙地将前沿的 RAG 技术与智能体(Agent)能力相结合,不仅支持从各类文档中高效提取知识,还能让模型基于这些知识进行逻辑推理和任务执行。 在大模型应用中,幻觉问题和知识滞后是常见痛点。RAGFlow 通过深度解析复杂文档结构(如表格、图表及混合排版),显著提升了信息检索的准确度,从而有效减少模型“胡编乱造”的现象,确保回答既有据可依又具备时效性。其内置的智能体机制更进一步,使系统不仅能回答问题,还能自主规划步骤解决复杂问题。 这款工具特别适合开发者、企业技术团队以及 AI 研究人员使用。无论是希望快速搭建私有知识库问答系统,还是致力于探索大模型在垂直领域落地的创新者,都能从中受益。RAGFlow 提供了可视化的工作流编排界面和灵活的 API 接口,既降低了非算法背景用户的上手门槛,也满足了专业开发者对系统深度定制的需求。作为基于 Apache 2.0 协议开源的项目,它正成为连接通用大模型与行业专有知识之间的重要桥梁。

77.1k|★★★☆☆|2天前
Agent图像开发框架