时间:26-04-25
免费影视、动漫、音乐、游戏、小说资源长期稳定更新! 👉 点此立即查看 👈
想让你的HermesAgent和Notion数据库无缝协作,实现任务状态自动更新、笔记内容双向同步吗?关键在于正确配置Notion Integration API Key并启用双向同步机制。下面这份操作指南,将带你一步步完成整个集成过程。
Notion通过Integration机制来授权第三方应用访问特定数据库。HermesAgent需要凭借其提供的Bearer Token进行身份认证。这个密钥至关重要——它必须拥有对应数据库的读写权限,否则同步任务很可能因401或403错误而中断。
具体操作可以分解为五步:
首先,登录Notion网页端,导航至“设置与成员” → “Integrations” → “Develop your own integration”。
接着,填写一个清晰的Integration名称(例如“HermesAgent-Tasks”),选择“Personal bot”类型,然后点击提交。
第三步,在新生成的Integration详情页中,找到并复制那个Internal Integration Token字段值。它通常是一个以“secret_”开头的长字符串。
然后,在Integration的权限设置里,点击“Add a database”,搜索并添加你的目标任务数据库。这里务必勾选Read content与Write content两项权限,缺一不可。
最后,点击保存更改,并确认权限已经生效。
HermesAgent支持通过环境变量来注入Notion密钥。这种方式优先级高于配置文件,而且能有效避免敏感信息被硬编码在代码里。密钥一旦加载成功,Agent内部的notion_sync模块就会自动初始化HTTP客户端,并验证连接的可用性。
配置过程很简单:
进入HermesAgent项目的根目录,检查是否存在.env文件;如果没有,就新建一个。
然后,在.env文件的末尾新增一行:NOTION_INTEGRATION_TOKEN=secret_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx。注意,等号前后不要留空格。
确保这个.env文件位于你执行“python main.py”命令的当前工作目录下。
最后,重启HermesAgent的服务进程,让环境变量重新加载。如果使用systemd管理服务,执行“sudo systemctl restart hermes”即可。
数据库ID是Notion中唯一标识一张表格的字符串。HermesAgent需要根据它来定位目标表格,并建立字段映射关系。而双向同步功能的实现,则依赖于预设的字段名约定:Task Name、Status、Due Date、Notes这四个字段是必需项,缺失任何一个都会导致同步失败。
具体绑定流程如下:
打开你的目标Notion数据库页面,从浏览器地址栏的URL中截取最后一段UUID,那就是Database ID了。它的格式类似“8a4b2c1d-ef56-7890-g1h2-i3j4k5l6m7n8”。
接下来,在HermesAgent的配置文件config.yaml中找到notion节点,填入以下内容:
notion:
database_id: "8a4b2c1d-ef56-7890-g1h2-i3j4k5l6m7n8"
sync_direction: "bidirectional"
field_mapping:
task_name: "Task Name"
status: "Status"
due_date: "Due Date"
notes: "Notes"
这里有个细节需要警惕:确认YAML的缩进使用的是两个空格,千万不要用Tab字符,否则解析时会抛出“yaml.scanner.ScannerError”错误。
保存好config.yaml之后,执行命令“hermes sync --source notion --mode full”,就能触发首次全量同步了。
Notion本身并不支持主动推送数据库变更事件。要实现近乎实时的状态回传,通常需要借助第三方服务(比如Zapier,或者自建一个FastAPI微服务)来监听数据库变更,然后通过HermesAgent暴露的HTTP端点进行回调更新。这套机制绕过了低效的轮询查询,能显著降低同步延迟和API调用频次。
配置Webhook可以按这四个步骤来:
首先,启动HermesAgent时,确保已经启用了“--webhook-enabled”参数,或者在config.yaml中设置了“webhook: enabled: true”。
接着,在config.yaml中指定一个“webhook_secret”,它可以是任意32位的随机字符串,主要用于校验回调请求的签名,确保安全。
然后,部署一个轻量的Webhook接收器(例如使用Cloudflare Workers)。它的任务是将Notion数据库的变更事件,以POST请求的形式发送到HermesAgent的/webhook/notion端点。请求的Header中必须携带“X-Hermes-Secret”头,其值就是前面设置的webhook_secret。
最后,这个接收器需要把Notion事件中的“page_id”和“properties”字段,按照HermesAgent文档定义的schema结构化成JSON格式,再提交过去。
需配置Notion Integration API Key并启用双向同步:一、创建Integration获取Token并授权数据库读写;二、通过.env注入NOTION_INTEGRATION_TOKEN;三、在config.yaml绑定database_id及字段映射;四、部署Webhook实现变更实时回传。