分享到微信

当前解读页的微信分享二维码

用微信扫一扫打开,点击右上角「···」分享给朋友或朋友圈。

手机上可截屏后,在微信扫一扫中从相册识别二维码。

tavern-labs-ai/persona-ai-sdk

AI 工程

用 TypeScript 搭建带预设人格、持久记忆与 OpenAI/Bedrock 模型的 AI 角色。

192
2
TypeScript
MIT
今天创建

persona-ai-sdk 是一个 TypeScript 包,面向需要 AI 角色保持稳定身份、并能跨对话记住重要信息的应用。它把 8 张人格卡、记忆运行时和模型适配器打包在一次 npm 安装里,开发者可以从现成角色起步,而不必自己从零编写提示词和记忆逻辑。

一次回复如何产生

运行时分为可替换的几层:人格、记忆、模型、持久化和接口。一次 respond() 调用会依次召回相关记忆、把人格编译成指令、请模型生成回复、写入本轮对话、推进关系状态,并返回文本和语音投递元数据(情绪、语速、表现力)以及包含提供商、耗时和召回记忆 ID 的 trace。排查角色为什么这样表现时,这个 trace 很有用。

人格卡包含提示词、特质、问候语和记忆种子。种子不是特权记录:它们要走正常的抽取流程,可能被配置好的抽取器按置信度和来源规则规范化、合并或拒绝。特质只是建议,卡片里的 suggestedModel 也只是推荐,并不保证该模型在你的账户或区域已启用。

提供商、存储与可替换部分

抽取、嵌入和生成是相互独立的端口,可以混用——例如生成用 Bedrock、嵌入用 OpenAI,或换成完全本地的嵌入适配器。OpenAI 适配器用 Responses API 做抽取和生成、用 Embeddings API 生成向量;Bedrock 适配器用 Converse 和 Titan V2 嵌入。README 建议显式指定模型 ID,以免升级包时悄悄改变模型行为。

持久化提供三种选择:测试用的内存存储、原型用的原子 JSON 文件、桌面或单节点用的 SQLite。SQLite 需通过 better-sqlite3 额外安装。对于横向扩展的部署,文档给出的替代方案是按 MemoryStore 契约在按租户分区的数据库(如 PostgreSQL 或 DynamoDB)上自行实现。包里还包含与框架无关的 service handler、SillyTavern 角色卡与 JSONL 聊天导入器,以及检索和人格评估辅助工具。

要求与限制

  • 需要 Node.js 20 或更高版本,以及 OpenAI API key 或具备 Bedrock 模型访问权限的 AWS 凭证;Bedrock 路径使用标准 AWS SDK 凭证链,执行身份需要有调用所配置模型的权限。
  • 未知人格 ID 会返回 Atlas 而不是报错;如果希望按错误处理,应先调用 personaIds()。
  • 内置存储面向单节点;多节点部署需要自行实现存储。
  • 实时提供商测试是可选开启的,因为会消耗付费 API 配额。

README 记录的当前版本是 1.0.3,项目采用 MIT 许可证。面向真实用户的部署,项目指向单独的安全与隐私文档,涉及密钥、多租户和删除请求 项目仓库;安装和 API 细节见快速上手指南与 API 参考。

本文由 AI 根据项目 README 生成,更新于 2026年10月31日,以项目官方文档为准。