s05
智能体生成
仿真层图谱实体到 OASIS 人格画像的转化
从知识节点生成具有完整人格特征的仿真智能体区分个体实体和群体实体两种生成策略,通过 Zep 搜索丰富上下文后用 LLM 生成 MBTI、职业等拟人化属性
图谱实体到 OASIS 人格画像的转化
从知识节点生成具有完整人格特征的仿真智能体区分个体实体和群体实体两种生成策略,通过 Zep 搜索丰富上下文后用 LLM 生成 MBTI、职业等拟人化属性
知识图谱中的实体是结构化数据节点,但 OASIS 仿真引擎需要的是具有完整人格特征的 Agent——包括年龄、性别、MBTI、职业、兴趣话题等。Profile 生成模块需要在保持实体核心信息的同时,赋予每个节点可信的拟人化属性。
个体 vs 群体:两种不同的 Profile 生成策略
@dataclass
class OasisAgentProfile:
user_id: int
user_name: str
name: str
bio: str
persona: str # 核心人设描述
# Reddit 风格
karma: int = 1000
# Twitter 风格
follower_count: int = 150
# 拟人化属性
age: Optional[int] = None
gender: Optional[str] = None
mbti: Optional[str] = None
profession: Optional[str] = None
interested_topics: List[str] = field(default_factory=list)
# 溯源
source_entity_uuid: Optional[str] = None
source_entity_type: Optional[str] = None
def to_reddit_format(self) -> Dict[str, Any]: ...
def to_twitter_format(self) -> Dict[str, Any]: ...通过 Zep 搜索丰富实体上下文后用 LLM 生成详细人设
def generate_profile_from_entity(self, entity, use_llm=True):
# 1. 用 Zep 搜索 API 丰富实体上下文
zep_context = self._search_zep_for_entity(entity)
# 2. 区分个体实体和群体实体
is_individual = self._is_individual_entity(entity)
# 3. 构建 LLM prompt
if is_individual:
prompt = self._build_individual_prompt(entity, zep_context)
else:
prompt = self._build_group_prompt(entity, zep_context)
# 4. 调用 LLM 生成详细人设
result = self.llm_client.chat_json(messages=[...], temperature=0.7)
# 5. 转为 OasisAgentProfile
return OasisAgentProfile(
user_id=entity.user_id,
name=result["name"],
persona=result["persona"],
mbti=result.get("mbti"),
...)