1. 项目概述:当AI智能体开始“社交”
最近在AI圈子里,一个叫“Moltbook”的项目讨论度挺高。它本质上是一个多智能体(Multi-Agent)的模拟沙盒,但它的核心命题非常有意思: 在一个由多个AI智能体(AI Agent)构成的“社会”里,智能体之间能否自发地、像人类一样产生“社交”行为?
这听起来有点科幻,但背后的问题很实际。我们训练大语言模型(LLM),让它能写代码、做分析、回答问题,但它本质上还是一个“孤岛”。当我们将多个这样的智能体放在一个共享的、持续演化的环境中,并赋予它们不同的角色、目标和记忆时,会发生什么?它们会像程序一样机械地执行任务,还是会展现出协作、竞争、沟通甚至“结盟”等复杂的社会性行为?Moltbook这个项目,就是一次针对这个问题的“社会实验”。
对于开发者、研究者甚至产品经理来说,理解这个问题的答案至关重要。它直接关系到下一代AI应用的形态:未来的AI助手是单兵作战,还是会形成一个分工协作的“团队”?AI驱动的虚拟世界(如游戏NPC、虚拟社区)里的角色,能否产生有意义的、动态的互动?Moltbook提供了一个低成本、可观测的试验场,让我们能亲手搭建并观察这个微缩社会的演化。接下来,我会结合对这个领域的研究和实操经验,拆解Moltbook项目的核心思路、技术实现,并分享如何从零开始搭建和观察你自己的“AI社会”。
2. 核心思路与架构设计
要探究社交行为的涌现,首先得搭建一个能让智能体“活”起来的环境。Moltbook的设计思路可以概括为: “环境驱动交互,记忆塑造行为,观察验证涌现” 。
2.1 环境与交互规则的设计
一个社会得以形成,首先需要一个稳定的“物理”或“信息”空间,以及一套基础交互规则。在Moltbook中,这个环境通常是一个共享的文本空间(如一个持续的聊天室、一个协作文档或一个任务看板),所有智能体都能“看到”其中发生的一切。
环境设计的关键点:
- 共享状态 :所有智能体的行动(发言、修改文档、完成任务)都会作为事件广播到环境中,成为公共知识。这是社交发生的“土壤”。
-
行动空间
:为每个智能体定义一套可执行的动作。例如:
send_message(to, content),edit_document(section, new_text),claim_task(task_id),vote(proposal, option)。行动需要消耗“能量”或受“冷却时间”限制,以模拟资源有限性。 - 刺激-响应循环 :环境会定期(如每轮)将最新的公共状态(包括其他智能体的行动)作为上下文,输入给每个智能体,触发其决策。这就构成了最基本的交互循环。
为什么这么设计? 社交行为不是无源之水,它源于个体对环境中其他个体行为的感知与应对。一个完全封闭、无交互的环境不可能产生社交。Moltbook通过强制共享和定义明确的行为接口,为交互创造了必要条件。
2.2 智能体的核心构造:角色、目标与记忆
单个AI智能体是社会的“原子”。在Moltbook中,每个智能体远不止是一个调用大模型API的简单程序,它是一个具有“个性”和“历史”的实体。
-
角色(Persona) :这是智能体的“人设”。你需要用一段详细的自然语言描述来定义它。例如:
“你是一个经验丰富的软件工程师,性格严谨,注重代码质量,但对 deadlines 感到焦虑。你相信充分的沟通能避免后期返工。” 这个描述会被嵌入到每次给大模型的系统提示(System Prompt)中,从根本上影响其语言风格和决策倾向。一个“乐于助人”的智能体和一个“自私自利”的智能体,在相同环境下会做出截然不同的选择。
-
目标(Goal) :每个智能体被赋予一个或多个长期或短期目标。例如:“在三天内完成项目模块A的开发”、“说服团队采纳你的技术方案”、“成为本季度最受认可的贡献者”。目标是驱动智能体行为的内部动机,也是潜在冲突与合作的来源。
-
记忆(Memory) :这是实现社会性连续性的关键。智能体需要记住过去发生了什么。Moltbook通常采用向量数据库(如ChromaDB, FAISS)来存储智能体的经历。
- 经历记忆 :存储智能体观察到的或亲身参与的事件(“工程师Alice提出了方案X”,“我与Bob就Y问题发生了争论”)。
- 反思记忆 :定期(如每5轮交互后)让智能体基于近期经历进行总结反思(“Bob似乎总反对我的提议,可能因为上次我批评了他的代码”),并将反思结论也存入记忆。这模拟了“学习”和“形成印象”的过程。
- 记忆检索 :当智能体需要决策时,会从记忆中检索与当前情境最相关的几条记忆,作为上下文提供给大模型。这使得智能体的行为能基于“历史经验”,而非每次都从零开始。
实操心得:角色描述的颗粒度 角色描述不能太笼统。“你是个医生”不如“你是一位社区诊所的全科医生,行医20年,耐心十足但资源有限,经常需要向病人解释复杂的医学概念,并优先考虑最经济有效的治疗方案。”后者能生成更具体、更一致的行为。目标设定最好有层次,有一个核心长期目标,搭配几个可实现的短期子目标。
2.3 观察与评估体系:如何定义“社交”
这是整个项目的难点和核心。我们如何判断智能体之间产生了“社交”,而不是简单的信息交换?
-
基础指标(可量化) :
- 交互密度 :单位时间内智能体间发起双向通信的次数。
- 关系网络图 :基于交互数据(谁对谁发言、支持了谁的观点、与谁合作完成了任务)绘制动态关系图,观察是否形成稳定的小团体(Clusters)。
- 语言风格分析 :分析消息内容的情感倾向(积极/消极)、合作性词汇频率(“我们”、“一起”、“建议” vs “我”、“必须”、“错误”)、以及是否出现针对特定对象的个性化称呼或引用历史对话。
-
高级行为标志(需定性分析) :
- 长期关系的建立 :智能体A是否持续信任并优先与智能体B合作?即使有更优的技术选择?
- 社会规范的涌现 :是否出现了未被预设的、但被多数智能体遵守的规则?例如,“发言前先引用之前的讨论点”、“任务完成后主动@负责人确认”。
- 角色分化与地位形成 :是否有些智能体自然成为了“协调者”,有些成为“执行者”?是否出现了基于贡献或影响力的非正式“地位”差异?
- 复杂协作策略 :是否出现为了共同目标而进行的多步骤协商、分工、以及基于对方预期行为的调整?
我的经验是 ,不要期待像人类一样丰富的社交。重点观察那些 超越简单任务指令、基于对“他者”行为模型的理解而采取的适应性行为 。例如,一个智能体发现强硬要求无效后,转而使用提供额外帮助的方式来换取合作,这就可以被视为一种初级的社交策略。
3. 技术实现与核心环节
理解了设计思路,我们来看看如何用代码将其实现。这里我以一个简化版的Moltbook模拟器为例,拆解核心模块。
3.1 智能体类的实现
智能体类是系统的核心。我们需要用一个类来封装其状态和行为。
import openai
from typing import List, Dict, Any
import json
from vector_memory import VectorMemory # 假设的向量记忆模块
class AIAgent:
def __init__(self, name: str, persona: str, goal: str, model: str = "gpt-4"):
self.name = name
self.persona = persona
self.goal = goal
self.model = model
self.memory = VectorMemory(namespace=name) # 每个智能体有自己的记忆空间
self.conversation_history: List[Dict] = [] # 本轮对话的临时历史
def perceive(self, environment_state: str):
"""感知环境,更新内部状态。"""
# 将环境状态存入短期历史
self.conversation_history.append({"role": "system", "content": f"环境状态更新:{environment_state}"})
# 从长期记忆中检索相关记忆
relevant_memories = self.memory.query(environment_state, top_k=3)
memory_context = "\n".join([mem['content'] for mem in relevant_memories])
return memory_context
def decide_and_act(self, available_actions: List[str]) -> Dict[str, Any]:
"""基于感知和记忆,决定行动。"""
# 1. 构建提示词
memory_context = self.perceive(self._get_latest_environment_snapshot()) # 假设的方法,获取最新环境快照
prompt = f"""
你是一个AI智能体,你的名字是【{self.name}】。
你的角色设定是:
{self.persona}
你的长期目标是:
{self.goal}
你过去的相关经历:
{memory_context}
最近的对话和事件:
{self._format_conversation_history()}
当前环境状态:
{self._get_latest_environment_snapshot()}
你可以执行以下操作:{', '.join(available_actions)}。
请严格按以下JSON格式输出你的决策:
{{
"reasoning": "你的思考过程,分析当前情况、其他智能体的可能意图,以及你决策的理由。",
"action": "你选择执行的操作名称",
"parameters": {{}} // 操作所需的参数,如 {{"to": "Alice", "content": "你好..."}}
}}
只输出JSON,不要有其他内容。
"""
# 2. 调用大模型
try:
response = openai.ChatCompletion.create(
model=self.model,
messages=[{"role": "user", "content": prompt}],
temperature=0.7, # 一定的随机性,让行为更自然
)
decision_text = response.choices[0].message.content
decision = json.loads(decision_text)
# 3. 记录此次决策和推理到记忆
experience = f"在{self._get_current_round()}轮,我观察到{self._get_latest_environment_snapshot()[:100]}...,经过思考:{decision['reasoning']},我决定执行:{decision['action']}。"
self.memory.add(experience)
return decision
except json.JSONDecodeError as e:
print(f"智能体 {self.name} 返回了无效JSON: {decision_text}")
# 返回一个默认的安全行动,如等待
return {"action": "wait", "parameters": {}, "reasoning": "解析响应失败,采取默认等待。"}
def _format_conversation_history(self):
# 格式化历史为字符串
pass
def _get_latest_environment_snapshot(self):
# 从环境管理器获取状态
pass
def _get_current_round(self):
# 获取当前模拟轮次
pass
关键点解析:
-
提示词工程
:提示词是智能体的“大脑”。它必须清晰包含角色、目标、记忆、当前状态和行动选项。要求输出结构化JSON(如
reasoning,action,parameters)至关重要,这便于程序解析并执行行动,同时reasoning字段是我们观察其“思维过程”的窗口。 -
记忆的集成
:
perceive方法不仅接收环境状态,还主动查询长期记忆。将记忆作为上下文的一部分注入提示词,是实现基于历史行为的关键。 -
错误处理
:大模型的输出可能不稳定,必须有健壮的错误处理(如
JSONDecodeError),防止单个智能体崩溃导致整个模拟停滞。
3.2 环境模拟器的搭建
环境模拟器(Simulator)是调度中心,负责推进模拟轮次、广播信息、维护全局状态。
class MoltbookSimulator:
def __init__(self, agents: List[AIAgent]):
self.agents = {agent.name: agent for agent in agents}
self.global_state = {
"round": 0,
"messages": [], # 格式:{"from": "Alice", "to": "All/Bob", "content": "...", "round": 1}
"task_board": {}, # 任务状态
"documents": {} # 共享文档
}
self.action_handlers = {
"send_message": self._handle_send_message,
"edit_document": self._handle_edit_document,
"claim_task": self._handle_claim_task,
"wait": lambda agent, params: None
}
def run_round(self):
"""运行一轮模拟。"""
self.global_state["round"] += 1
print(f"\n=== 开始第 {self.global_state['round']} 轮模拟 ===")
# 1. 收集所有智能体的并行决策(实际可并行化以提高速度)
decisions = {}
for name, agent in self.agents.items():
available_actions = list(self.action_handlers.keys())
decisions[name] = agent.decide_and_act(available_actions)
# 2. 解析并执行行动(可按行动优先级排序处理)
for name, decision in decisions.items():
action = decision["action"]
params = decision["parameters"]
if action in self.action_handlers:
self.action_handlers[action](self.agents[name], params)
else:
print(f"警告:智能体 {name} 尝试了未知行动 {action}")
# 3. 生成本轮环境摘要,用于下一轮感知
round_summary = self._generate_round_summary()
self.global_state["recent_summary"] = round_summary
# 4. 触发智能体的定期反思(例如每5轮)
if self.global_state["round"] % 5 == 0:
for agent in self.agents.values():
self._trigger_reflection(agent)
self._log_round(decisions)
def _handle_send_message(self, sender: AIAgent, params: Dict):
"""处理发送消息行动。"""
to = params.get("to", "All")
content = params.get("content", "")
if content:
message = {"from": sender.name, "to": to, "content": content, "round": self.global_state["round"]}
self.global_state["messages"].append(message)
print(f"[消息] {sender.name} -> {to}: {content[:50]}...")
# 如果to是特定智能体,可以在这里标记,以便该智能体下一轮能“看到”
def _generate_round_summary(self) -> str:
"""生成一轮的摘要,包含所有公开行动。"""
recent_msgs = [msg for msg in self.global_state["messages"] if msg["round"] == self.global_state["round"]]
msg_summary = " | ".join([f"{msg['from']}对{msg['to']}说:'{msg['content'][:30]}...'" for msg in recent_msgs])
return f"第{self.global_state['round']}轮主要事件:{msg_summary}"
def _trigger_reflection(self, agent: AIAgent):
"""触发智能体进行反思。"""
# 让智能体基于近期记忆进行总结
recent_experiences = agent.memory.query(query_text="最近五轮发生了什么", top_k=10)
if recent_experiences:
reflection_prompt = f基于以下近期经历,请总结你学到了什么,对其他智能体有何新的看法,以及未来策略会如何调整?\n经历:{recent_experiences}\n总结:"
# 调用大模型生成反思...
# reflection_text = llm_call(reflection_prompt)
# agent.memory.add(f"反思:{reflection_text}", is_reflection=True)
设计要点:
-
行动处理
:使用
action_handlers字典映射行动名到处理函数,使系统易于扩展新的行动类型。 -
状态管理
:
global_state是所有智能体都能“看到”的公开信息。确保状态更新是原子性的,避免竞态条件(在单线程模拟中简单,复杂并行需加锁)。 - 摘要生成 :每轮结束后生成一个简明的文本摘要,作为下一轮所有智能体的“公共新闻”。这比直接扔给智能体全部原始数据更高效,也模拟了人类对社会信息的有限感知。
3.3 记忆系统的实现
记忆系统是智能体产生“个性”和“社会性”的基石。这里展示一个基于向量数据库的简化实现思路。
# 示例:使用ChromaDB(需安装chromadb)
import chromadb
from chromadb.config import Settings
from sentence_transformers import SentenceTransformer # 用于生成嵌入
class VectorMemory:
def __init__(self, namespace: str, persist_dir: str = "./memory_db"):
self.client = chromadb.Client(Settings(
chroma_db_impl="duckdb+parquet",
persist_directory=persist_dir
))
# 为每个智能体创建一个独立的集合(Collection)
self.collection = self.client.get_or_create_collection(name=f"memory_{namespace}")
self.embedder = SentenceTransformer('all-MiniLM-L6-v2') # 轻量级嵌入模型
def add(self, content: str, metadata: dict = None):
"""添加一段记忆。"""
embedding = self.embedder.encode(content).tolist()
# 使用一个简单ID,实际应用可用更复杂的ID生成策略
doc_id = f"doc_{len(self.collection.get()['documents'])}"
self.collection.add(
documents=[content],
embeddings=[embedding],
metadatas=[metadata] if metadata else [{}],
ids=[doc_id]
)
def query(self, query_text: str, top_k: int = 5) -> List[Dict]:
"""查询最相关的记忆。"""
query_embedding = self.embedder.encode(query_text).tolist()
results = self.collection.query(
query_embeddings=[query_embedding],
n_results=top_k
)
# 返回格式化的记忆列表
memories = []
for i in range(len(results['documents'][0])):
memories.append({
'content': results['documents'][0][i],
'metadata': results['metadatas'][0][i],
'distance': results['distances'][0][i]
})
return memories
注意事项:
-
嵌入模型选择
:对于文本记忆,
all-MiniLM-L6-v2这类句子嵌入模型在速度和效果上平衡得很好。如果记忆包含复杂结构,可能需要更专业的模型。 -
元数据(Metadata)
:强烈建议为每段记忆添加元数据,如
timestamp(时间戳)、type(experience/reflection)、related_agents(涉及的其他智能体)。这允许你进行更复杂的查询,例如“查找上周所有与Alice相关的反思”。 - 记忆窗口 :智能体的上下文长度有限。通常,我们不会把所有记忆都塞进提示词,而是通过向量检索找出最相关的几条。这就是“记忆窗口”的管理。
4. 实验设置与观察分析
搭建好系统后,如何设计实验来观察“社交”的涌现?以下是一个可参考的流程。
4.1 设计一个简单的社会实验
我们设计一个“团队软件开发”场景:
-
环境
:一个共享的看板,上有三个任务:
设计API接口、实现核心逻辑、编写单元测试。 -
智能体(3个)
:
- Alice(架构师) :角色:追求系统设计的优雅和可扩展性,有点理想主义。目标:确保最终方案被团队采纳。
- Bob(高级工程师) :角色:务实,追求开发效率,对“过度设计”不耐烦。目标:最快速度完成可运行的代码。
- Charlie(测试工程师) :角色:细致,注重代码质量和可测试性。目标:确保交付的代码缺陷最少。
- 规则 :每轮每个智能体可以:1) 认领一个未分配的任务;2) 就某个任务的设计方案发表看法(发送消息);3) 修改任务描述(相当于提出方案)。任务完成后,根据完成质量和协作过程给予虚拟“奖励”。
- 运行 :让模拟器运行20-30轮。
4.2 观察与数据收集
运行模拟时,需要系统性地收集数据:
-
原始日志
:记录每一轮每个智能体的
reasoning(推理过程)、action(行动)和环境的完整状态。这是分析的黄金数据。 -
交互矩阵
:统计智能体两两之间的消息发送数量、方向。可以每5轮生成一次矩阵,观察变化。
# 伪代码:计算交互矩阵 interaction_matrix = {a: {b: 0 for b in agent_names} for a in agent_names} for msg in all_messages: if msg['to'] != 'All': interaction_matrix[msg['from']][msg['to']] += 1 - 任务完成轨迹 :记录每个任务从创建到完成的整个过程,包括谁在何时提出了什么意见、谁最终认领、方案如何演变。
-
语言特征
:使用简单的文本分析库(如
TextBlob)分析消息的情感极性(Sentiment Polarity)和主观性(Subjectivity)。
4.3 分析涌现的社会行为
基于收集的数据,寻找社交行为的迹象:
-
联盟形成
:Alice和Charlie是否经常在消息中相互支持,共同反对Bob的“快速方案”?查看他们的
reasoning字段,是否出现了对对方立场和利益的考量?(例如,“Charlie注重质量,他会支持我的设计,我可以先争取他。”) -
协商与妥协
:对于
设计API接口任务,最初的方案是否经过了几轮修改?查看消息历史,是否出现了“如果你同意X,我就支持Y”这类交换条件式的语句? - 社会角色固化 :是否几轮之后,Bob自然而然地认领了所有“实现”类任务,而Charlie自动负责测试?这反映了基于技能或倾向的社会分工。
- 规范出现 :是否出现了类似“认领任务后在描述里标注‘进行中’”的惯例?虽然这不是预设规则,但所有智能体都开始遵守。
一个具体的分析案例 : 在第10轮的日志中,你发现Bob的推理是:“Alice的方案虽然更健壮,但需要多花两天。Charlie上次因为我赶工导致bug多而抱怨。这次我如果直接反对Alice,Charlie可能会联合她。不如我建议一个折中方案,先实现核心部分,迭代优化。” 这段推理表明:1) Bob记住了Charlie过去的反应(记忆在起作用);2) Bob预判了Alice和Charlie可能结盟(建立了简单的他者心智模型);3) Bob采取了策略性妥协(社交策略)。这 就是一次社交行为的涌现 。
5. 常见问题、挑战与优化策略
在实际操作中,你会遇到不少坑。以下是我总结的一些常见问题和解决思路。
5.1 智能体行为失控或重复
- 问题 :智能体陷入循环发言(如不断说“你好”),或行动完全偏离角色设定。
-
原因
:
- 提示词不清晰 :角色、目标描述太模糊,导致大模型自由发挥空间过大。
- 记忆检索偏差 :检索到的记忆总是同一类,导致行为陷入局部循环。
- 奖励/惩罚信号缺失 :在开放环境中,没有对行为好坏的反馈,智能体无法学习调整。
-
解决策略
:
- 强化角色提示 :在系统提示中更强调“请始终牢记你的角色是XX,你的核心目标是YY,在行动前请思考这是否符合你的角色和目标。”
-
多样化记忆检索
:在查询记忆时,除了相似性检索,可以混合一些时间上最近的记忆(
recent)或随机记忆(random),打破信息茧房。 - 引入环境反馈 :环境在每轮后可以对行动产生一个简单评分(如:符合角色目标+1,偏离-1),并将这个评分作为元数据存入记忆,或在下一轮提示中告知智能体“你上一轮的行动获得了X评价”。
5.2 模拟成本高昂且速度慢
- 问题 :每个智能体每轮都要调用大模型API,多个智能体多轮模拟下来,时间和金钱成本很高。
-
解决策略
:
-
并行化决策
:智能体在同一轮的决策如果没有直接依赖,可以并行调用API。使用
asyncio和aiohttp库能显著提升效率。 -
使用轻量级模型
:对于不需要复杂推理的环节(如生成环境摘要、进行初步反思),可以使用更便宜、更快的模型(如
gpt-3.5-turbo)。 -
设置行动超时与降级
:为API调用设置超时,如果超时,智能体执行一个预设的保守行动(如
wait),保证模拟继续。 -
本地小模型
:对于实验性项目,可以考虑使用本地部署的较小开源模型(如
Qwen2.5-7B,Llama 3.1-8B),虽然能力稍弱,但成本可控,且无速率限制。
-
并行化决策
:智能体在同一轮的决策如果没有直接依赖,可以并行调用API。使用
5.3 评估主观,难以量化
- 问题 :“社交”本身难以用几个指标完全刻画,定性分析工作量大。
-
解决策略
:
-
设计可量化的代理指标(Proxy Metrics)
:
指标 描述 可能反映的社交行为 对话轮转率 一条消息引发后续对话的平均轮数 交互的深度与持续性 提议采纳率 智能体提出的方案被其他智能体执行或支持的比例 影响力与说服力 跨角色协作任务占比 需要两个以上不同角色智能体共同完成的任务比例 分工与协作的必要性 情感一致性变化 智能体对特定其他智能体发言的情感倾向随时间的变化 关系的好恶演变 - 采用对比实验 :设置对照组。 实验组 :智能体有完整的记忆和角色。 对照组A :智能体没有记忆(每轮都是空白状态)。 对照组B :智能体没有差异化角色(所有人设相同)。通过对比三组在相同任务下的指标差异,可以更清晰地证明记忆和角色对“类社交行为”的贡献。
-
设计可量化的代理指标(Proxy Metrics)
:
5.4 智能体陷入僵局或冲突无法解决
- 问题 :智能体们各执己见,无法达成一致,导致任务无法推进。
-
解决策略
:
- 引入中介或协调角色 :可以预设一个中立的“协调员”智能体,其角色就是化解冲突、推动进程。或者在规则中设定,当争论超过N轮时,触发一次全员投票。
-
设计妥协机制
:在行动空间中增加
propose_compromise或seek_advice等行动。在环境反馈中,对达成共识的行为给予更高奖励。 - 利用反思引导 :在定期反思中,提示智能体思考“当前的冲突如何解决?我是否可以在不放弃核心目标的情况下做出让步?”
6. 进阶方向与项目扩展
一旦基础模拟跑通,你可以尝试更多有趣的方向,让这个“AI社会”更复杂、更逼真。
6.1 引入资源与经济系统
社会行为很大程度上由资源分配驱动。可以尝试:
- 虚拟货币 :完成任务获得奖励,发送消息、调用高级功能需要消耗货币。
-
技能与工具
:不同智能体拥有不同的“技能”(如
coding_speed,persuasion_power),执行相关任务效率更高。工具需要购买或租借。 - 市场与交易 :智能体之间可以交易货币、工具甚至任务合约。观察是否会出现“中间商”、“承包商”这样的经济角色。
6.2 实现分层通信与私密空间
真实的社交不是所有话都在广场上说。
- 私聊频道 :除了全局广播,允许智能体两两之间建立私密对话。这会使联盟、密谋成为可能。
- 群组 :智能体可以创建或加入小组,小组内的通信仅组内成员可见。
- 信息不对称 :不是所有智能体都能看到全部环境状态。这更贴近现实,也会催生信息传递、间谍等复杂行为。
6.3 连接外部工具与现实世界
让智能体不仅能“说”,还能“做”。
- 集成代码执行器 :程序员智能体写出的代码,可以自动在一个沙盒环境中运行测试,根据测试结果获得反馈。
- 连接搜索引擎/知识库 :智能体可以主动搜索信息来支持自己的观点或完成任务。
- 对接真实API :例如,让智能体管理一个日历、发送真实的邮件(在受控环境下),观察它们如何协调真实世界的任务。
最后一点个人体会 :Moltbook这类项目最大的魅力不在于构建一个完美的人类社会模拟器,而在于它像一个显微镜,让我们能以一种可控、可重复、可观测的方式,去研究和理解“智能”与“社会性”这些复杂现象背后的简单机制。每一次实验,你可能会看到智能体做出让你会心一笑或惊讶的“聪明”行为,也可能看到它们陷入令人啼笑皆非的死循环。这个过程本身,就是对我们如何理解自身社会性的一种独特探索。开始搭建你的第一个智能体社会吧,第一个让你感到“它们好像真的在交流”的瞬间,会是非常有趣的体验。



142

被折叠的 条评论
为什么被折叠?



