分享到微信

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

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

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

tavern-labs-ai/character-ai-sdk

AI 工程

一个用于构建持久 AI 角色的 TypeScript SDK,提供人设、持久记忆及可替换的模型、存储与接口适配器。

188
2
TypeScript
MIT
今天创建

character-ai-sdk 是一个 TypeScript 包,适合需要让 AI 角色保持可辨识的性格、并在多轮对话中记住相关上下文的应用程序。它把 8 张现成人设卡、人设与记忆运行时,以及 OpenAI 和 Amazon Bedrock 适配器打包在一起,一次 npm 安装即可覆盖角色层和模型调用。

一次角色回复如何产生

运行时把五层拆开、各自可替换:人设(提示词、性格特征、问候语、记忆种子)、记忆(抽取、来源追踪、合并、召回、生命周期)、模型、持久化和界面。每次调用 runtime.respond() 都会跑完整循环:召回相关记忆、把人设编译成指令、请求模型、把完成的轮次写回记忆、推进关系状态,并返回文本、语音表达元数据,以及包含供应商、模型、耗时和召回记忆 ID 的 trace。这个 trace 有助于排查角色为什么这样回答。

选择供应商与存储

抽取、向量化和生成是三个独立的端口,可以混搭:比如用 Bedrock 生成、OpenAI 做向量化,或换成本地向量化适配器。存储有三种选择:内存(测试和临时会话)、原子 JSON 文件(原型)、SQLite(桌面、单节点、小型服务)。SQLite 是可选的原生依赖,基于 better-sqlite3。对于横向扩展的部署,README 建议按 MemoryStore 契约在按租户分区的数据库(如 PostgreSQL 或 DynamoDB)上自行实现,而不是提供现成适配器。界面层同样开放:聊天、语音、游戏、HTTP 服务或 SillyTavern,并文档化了角色卡与 JSONL 聊天记录导入。

要求与注意事项

  • 需要 Node.js 20 或更新版本。
  • 需要 OpenAI API key,或具备 Bedrock 模型访问权限的 AWS 凭证;Bedrock 路径使用标准 AWS SDK 凭证链,执行身份需要有权调用所配置的模型。
  • 应显式指定模型 ID,以免升级包后模型行为悄悄改变。
  • 人设卡里的性格特征只是建议;卡的 suggestedModel 是推荐值,不代表该模型在你的账号或区域一定已开通。
  • getPersona 遇到未知 ID 会回退到 Atlas;如果不想要这个回退,应先检查 ID 是否存在。
  • 人设卡里的记忆种子会走普通抽取流程,可能被规范化、合并或拒绝,因此它们不是特权记录。
  • 真实供应商测试默认不运行,因为会消耗付费 API 配额。

该包使用 MIT 许可。涉及真实用户、密钥、多租户或数据删除时,应查阅 README 指向的安全与隐私文档。所给材料没有基准测试,因此本文不作性能方面的判断。

项目源码与说明

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