AI Agents & Chat for Amazon Bedrock:本站在用的 WordPress 对话与 MCP 插件

一款用自己的 AWS 账号直连 Amazon Bedrock 的开源 WordPress 插件:流式对话、受控的工具调用 agent、站点 MCP 服务器与客户端,以及不依赖模型评分的回答回归检查;默认配置偏保守。

“AI Agents & Chat for Amazon Bedrock”是一款发布在 wordpress.org 上的开源 WordPress 插件,本站运行的就是它。它用站长自己的 AWS 账号直接调用 Amazon Bedrock,在站点上提供流式对话和带工具调用的 agent,同时把站点本身暴露为 MCP 服务器,并内置一套基于规则的回答回归检查。它的默认配置都偏保守:访客对话默认关闭,工具能做的唯一写操作是创建草稿,凭据可以完全不落库。

连接方式与凭据

模型请求从 WordPress 服务器直接发往你配置的 Bedrock 区域端点,插件作者不运营任何中转服务,插件也不向作者发送使用遥测。支持的模型是你的账号在该区域可用的文本模型:Anthropic Claude、Amazon Nova、Amazon Titan、Meta Llama、Mistral、DeepSeek,以及 OpenAI gpt-oss、Qwen3、Kimi 等。Claude、Nova、Titan 以外的模型走 Bedrock Converse API。新安装默认使用 Amazon Nova Lite。

它不是 AWS 官方产品。readme 写明,这是一个与 Amazon 无关联的独立开源插件。代码采用 GPL-2.0-or-later 许可,要求 WordPress 6.4+ 和 PHP 7.4+,当前版本 1.47.6。

签名凭据按以下顺序解析:wp-config.php 常量、加密保存的设置、环境变量、ECS/EKS 任务角色、通过 IMDSv2 获取的 EC2 实例角色。部署在 AWS 上的站点可以完全不在 WordPress 里保存长期密钥。不在 AWS 上的站点,最快的方式是在 Bedrock 控制台生成一个 API key,粘贴进设置页即可;key 加密保存,保存后不再回显。也可以定义为 AI_CHAT_BEDROCK_API_KEY 常量,或者使用 AWS SDK 通用的 AWS_BEARER_TOKEN_BEDROCK 环境变量。API key 可用于对话、流式输出、模型列表和 embedding;Knowledge Bases、Prompt Management 和 AgentCore Gateway 不接受 API key,仍需 IAM 角色或访问密钥。

Diagnostics 页面会发一条真实请求来测试连通性,显示当前生效的是哪一种凭据来源(不显示密钥本身),并按本站实际启用的功能生成一份最小权限 IAM 策略,省得去挂宽泛的托管策略。

对话与 agent:默认按“公开对话会被滥用”来设计

  • 访客访问默认关闭;在对话真正能回答之前,访客看不到它。请求按访客和按 profile 限流,可以按角色另设限额,也可以设全站每日上限。
  • 流式输出用一次带认证的 POST 加 Server-Sent Events,对话内容不会出现在 URL 里,一条消息只对应一次 Bedrock 调用。访客中途停止时,服务器端的 Bedrock 请求也随之停止。缺少 cURL 或代理缓冲了流时,自动退回单次非流式请求。
  • 工具在服务器上执行,浏览器无法伪造工具结果;工具输出一律作为不可信数据交给模型。使用工具默认需要 edit_posts 权限;外部 MCP 工具中看起来会修改数据的,在管理员放行前一律拦截,放行后也只限管理员使用。每轮最多 5 次调用,轮数可设为 1 到 5,最后一轮不再提供工具,确保对话一定会结束。每次调用都记录审计日志,只记工具名、轮次、结果、耗时和参数键名,不记参数值和输出内容。
  • 检索只索引已发布、没有密码保护的内容。选定 embedding 模型后按语义匹配,站点没有覆盖的问题返回空上下文,并在 Conversations 页面列为“内容缺口”。
  • 支持 Bedrock Prompt Management 托管提示词、限流或不可用时切换的备用模型、最多 10 个对话 profile、浮动启动按钮,以及 Claude 的提示词缓存(后台显示缓存读取的 token 数)。

MCP:既是服务器,也是客户端

作为服务器,站点在 /wp-json/ai-chat-bedrock/v1/mcp 上以 Streamable HTTP 提供 JSON-RPC 2.0,协议版本 2026-07-28,同时兼容 2025-11-25 和 2025-06-18 两个版本的客户端。默认提供 5 个只读内容工具,只返回已发布内容;开启站点 abilities 后,另有 SEO 建议、WooCommerce 商品查询和创建草稿。认证可以用 WordPress Application Password,也可以用 OAuth 2.1(动态注册、强制 PKCE S256、访问令牌有效期一小时、刷新令牌轮换,令牌只保存哈希值)。匿名访问和 OAuth 默认都关闭。

作为客户端,它可以调用外部 MCP 服务器和 Amazon Bedrock AgentCore Gateway,认证方式可选无认证、加密保存的 bearer token 或 SigV4。端点必须是公网 HTTPS 地址:私有地址、回环地址、链路本地地址和带凭据的 URL 都会被拒绝,重定向被禁用,响应大小有上限。在 WordPress 7.0 及以后版本中,插件还会把 Bedrock 注册到核心的 AI Client,其他插件调用 wp_ai_client_prompt() 时,同样走本插件的限额和用量统计。

回答检查:不用模型给模型打分

你可以写一组已知正确答案的问题,然后运行 wp ai-chat-bedrock eval。每个问题都走对话实际使用的同一条流程,结果按类别报告:grounding、匹配强度、引用、必须出现或禁止出现的文本、工具调用、token 预算。检查不通过时命令以非零码退出,可以直接用作部署门禁;--compare 显示改动前后各类别的差异。每一项检查都是程序判定,不评价风格或语气,也不让一个模型去评判另一个模型;无法用程序检查的项目报告为“未检查”,不会算作通过。WP-CLI 还提供 index、index-status、diagnose、usage 等子命令。

安装与注意事项

  1. 先在所选 AWS 区域开通目标模型的访问权限,准备一个只能调用所需模型的 IAM 身份,不要给 WordPress 站点管理员级别的 AWS 权限。
  2. 在插件目录搜索安装并启用,打开 AI Chat Bedrock > Settings,选择区域,填入 API key 或访问密钥(也可以都留空,使用服务器的 IAM 角色),再选择模型。
  3. 保存后运行 Diagnostics,然后在页面里插入

    物理AI实验室 · AI 助手

    你好!我是物理AI实验室的 AI 助手,想了解机器人、具身智能或课程内容,尽管问。
    短代码或对话区块。
  4. 开放访客对话之前,先核对模型价格和限流设置。

局限 / 注意

  • 后台显示的 token 数是 Bedrock 返回的计数,不是费用估算。限流能减少意外用量,但不能保证账单上限;公开对话之前应先在 AWS 侧设置 Budgets。
  • 对话日志默认关闭;开启后最多保存最近 200 轮问答,存在 WordPress option 里,支持 WordPress 自带的个人数据导出和擦除。是否需要向访客披露、是否需要征得同意,由站长根据所在司法辖区自行判断。
  • 短期 Bedrock API key 最长 12 小时就会过期,适合测试,不适合正式站点。部分模型需要跨区域推理配置文件(ID 以 us.、eu. 或 global. 开头),还需要相应的 IAM 权限。

链接