FastAPI 个性化 Webhook,为 Twilio 上的 ElevenLabs 对话 AI 代理提供持久呼叫者记忆和动态上下文注入,无需音频处理。
十一拉布-twilio-memory-bridge. 十一拉布+Twilio语音代理的Personalization webhook服务, 具有持续的呼叫器记忆是一项面向实际任务的技能,主要用于What it does. 当一个呼叫到达您的Twilio号码时, Eleve。它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。
若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;
涉及批量任务时,还应保存进度,避免中断后重复操作。该技能适合用于一次性任务,也可以接入自动化工作流,与其他技能或上层代理配合完成更完整的业务链路;在组合使用时,应明确每一步的输入输出关系,并避免不同步骤之间出现参数冲突。
面向 ElevenLabs + Twilio 语音代理的个性化 Webhook 服务,支持持久化主叫方记忆。
当来电接入您的 Twilio 号码时,ElevenLabs 原生集成将触发该 Webhook。本桥接服务会查询主叫方历史记录,加载长期记忆事实与每日上下文笔记,并将其与可定制的“灵魂/人格”模板融合,最终以系统提示词(system prompt)覆盖形式返回全部内容,使您的代理能在每次应答时携带完整上下文信息。
./data/ 目录,无任何外部依赖| 端点 | 方法 | 用途 |
|---|---|---|
/webhook/personalize |
POST | ElevenLabs 在呼入时调用此接口 |
/webhook/post-call |
POST | 可选:通话结束后的清理操作 |
/api/memory/{phone_hash} |
POST | 为指定主叫方添加一条长期记忆事实 |
/api/notes |
POST | 添加全局或主叫方专属的上下文笔记 |
/health |
GET | 健康检查接口 |
pip install -r requirements.txt.env.example 复制为 .env,并填入密钥信息https://your-domain/webhook/personalizeuvicorn app:app --host 0.0.0.0 --port 8000ELEVENLABS_API_KEY — 已限定作用域的 ElevenLabs API 密钥ELEVENLABS_AGENT_ID — 您的代理 IDOPENCLAW_API_BASE_URL — 您的 OpenClaw 实例地址PUBLIC_BASE_URL — 本服务对外可访问的公共 URLADMIN_API_KEY — 管理接口认证所用密钥PHONE_HASH_SALT — 电话号码哈希加盐值。建议使用 openssl rand -base64 32 生成。修改该值将导致所有现有主叫方数据失效。WEBHOOK_SECRET — 用于 HMAC Webhook 验证的共享密钥。生产环境中必须设置。| 变量名 | 默认值 | 用途 |
|---|---|---|
DATA_ENCRYPTION_KEY |
(未设置) | Fernet 加密密钥,用于静态加密记忆与笔记。可通过以下命令生成:python -c "from cryptography.fernet import Fernet; print(Fernet.generate_key().decode())"。若未设置,则数据以明文 JSON 形式存储。 |
SOUL_TEMPLATE_PATH |
./soul_template.md |
人格模板文件路径 |
DATA_DIR |
./data |
JSON 持久化数据存放目录 |
ALLOWED_ORIGINS |
(未设置) | 逗号分隔的 CORS 允许来源列表 |
HOST |
0.0.0.0 |
uvicorn 绑定地址 |
PORT |
8000 |
监听端口 |
LOG_LEVEL |
INFO |
Python 日志级别 |
PHONE_HASH_SALT 作为密钥进行 HMAC-SHA256 哈希。更改 salt 将导致现有主叫方数据不可访问。DATA_ENCRYPTION_KEY 时,记忆与笔记将通过 Fernet 加密;未配置时则以明文 JSON 形式存储。WEBHOOK_SECRET。若未配置该密钥,则拒绝所有 Webhook 请求(fail-closed 策略)。/api/memory、/api/notes)限速为每分钟 30 次;Webhook 接口限速为每分钟 60 次。fcntl),防止并发访问下的竞态条件。DATA_DIR)创建时权限设为 0o700;JSON 文件写入时权限设为 0o600。v1.2.0 引入了破坏性安全变更:
PHONE_HASH_SALT 现为必需项 — 此前电话号码使用无盐 SHA-256 哈希;现强制要求使用带盐的 HMAC-SHA256。由于哈希密钥变更,升级后原有主叫方数据将无法访问。您需接受数据丢失并重新开始(v1.2.0 使用不同哈希算法)。
WEBHOOK_SECRET 现为必需项 — 此前开发环境可选;现要求所有环境均必须配置。未携带有效密钥的 Webhook 请求将被拒绝。
DATA_ENCRYPTION_KEY 为可选项,但强烈推荐启用 — 若已配置,所有新增的记忆与笔记将在静态状态下加密;已有未加密数据仍可正常读取。
openssl rand -base64 32openssl rand -hex 32python -c "from cryptography.fernet import Fernet; print(Fernet.generate_key().decode())".env 文件ALLOWED_ORIGINS 默认现已禁用WEBHOOK_SECRET相关专题
热门下载
相关下载
精品课程
共6课时 | 54.7万人学习
共89课时 | 134.1万人学习
共49课时 | 82.6万人学习
最新文章