SkyAGI 项目介绍
SkyAGI 是一个用 Python 编写的软件包,它展示了大型语言模型(LLM)在模拟逼真人类行为方面的新兴能力。SkyAGI 实现了“生成代理”的概念,并提供了一个角色扮演游戏,带来了非常有趣的用户体验。这种技术与先前的基于人工智能的NPC系统不同,SkyAGI的NPC可以生成非常逼真的人类反应。因此,该项目在游戏开发的许多方面表现出极大的潜力,例如NPC剧本撰写。
项目背景
SkyAGI 的主要见解来自于利用语言模型生成的代理角色,这些角色能够用人类般的方式通过对话进行互动和决策。在演示中,SkyAGI 提供了一些示例角色,如《生活大爆炸》中的角色和《复仇者联盟》中的角色。用户也可以通过创建类似于customized_character.json
的配置文件,来自定义角色角色行为的定义。
快速上手
要开始使用 SkyAGI,用户可以通过以下命令来安装该包:
pip install --upgrade skyagi
或使用以下命令进行安装:
make install
运行 SkyAGI 的方式如下所示:
export OPENAI_API_KEY="..."
skyagi
# 或者
OPENAI_API_KEY="..." skyagi
其中,用户需要提供 OpenAI 的 API Key 才能运行 SkyAGI。例如,假设 OpenAI key 为 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
,那么可以使用以下命令:
export OPENAI_API_KEY=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
skyagi
# 或者
OPENAI_API_KEY=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 skyagi
此外,用户可以通过下载 这里的示例代理配置来尝试示例角色配置,因为通过 pip 安装的软件包不包含这些配置。如“谢尔顿”的配置如下所示:
{
"name": "Sheldon",
"age": 27,
"personality": "聪明、刻板、社交困难、古怪且傲慢。",
"memories": [
"Sheldon 是一名在加州理工学院工作的理论物理学家。",
"Sheldon 拥有极好的记忆力和很高的智商,但在社交技能和理解讽刺方面有困难。",
...
"敲门、敲门、敲门,Penny - 是谢尔顿每次拜访 Penny 时常用的特有的三次敲门声。",
"Bazinga! - 是谢尔顿用来表示他在开玩笑或捉弄人的常用语。"
],
"current_status": "Sheldon 现在在芝士蛋糕工厂"
}
实验观察
在《生活大爆炸》的示例中,可以观察到几个有趣的点:
- Leonard 记得 Penny 之前让他说服 Sheldon 一起去远足,这显示出了某种程度的记忆能力。
- 在 Sheldon 耳语之后,Leonard 改变了主意,甚至试图说服 Penny 加入科学活动,这表明即使没有人为干预,代理在故事中也有意义的发展。
- 所有反应都相当人性化。作为用户,很难判断这些是否确实是由 AI 驱动的响应。
参考文献
- https://arxiv.org/abs/2304.03442
- https://python.langchain.com/en/latest/use_cases/agent_simulations/characters.html#create-a-generative-character
通过 SkyAGI,用户能够探索和体验更加自然和真实的人机互动,这为未来的游戏和交互式媒体开发开辟了新的可能性。