rvaghela20/Agentforce-Edge-Proxy

GitHub: rvaghela20/Agentforce-Edge-Proxy

该项目是一个构建于 Cloudflare Workers 的 Salesforce Agentforce 边缘代理层,解决 API 调用延迟、成本控制以及 Prompt/SOQL 注入防护问题。

Stars: 0 | Forks: 0

# Agentforce 智能边缘代理 这是一个处于 **Salesforce Agentforce**、**Cloudflare Workers**、**Upstash Redis** 和 **Slack** 之间先进的 serverless 集成层,旨在控制 API 成本、缓解 prompt injection 攻击、实现亚毫秒级缓存、动态使过期数据失效,并使用后台 CRON 任务预热关键表。 ## 🏗️ 架构 ![Agentforce 边缘代理架构](https://static.pigsec.cn/wp-content/uploads/repos/cas/c2/c2770b3a40fb24128eb5fcb9dca850ebe602be75da0fe3a5e0998f009f3f782e.png) ## ⚡ 核心功能 1. **智能边缘缓存**: - 拦截来自 Agentforce 的搜索查询,并在 Cloudflare 边缘将其与 **Upstash Redis** 缓存进行匹配。 - 在缓存命中时以**毫秒级**速度提供响应,避免缓慢的 Salesforce API 调用。 2. **AI Prompt 与 SOQL Injection 防火墙**: - 在边缘通过实时正则表达式 WAF 扫描仪过滤输入。 - 在它们触及 Salesforce 之前,检测并阻止 prompt 覆盖脚本(例如 `Ignore previous instructions`)和恶意的 SOQL payload 片段,将攻击者的 IP 写入黑名单,并自动对来自黑名单 IP 的任何后续请求强制执行 `403 Forbidden` 响应拦截。 3. **遥测与成本分析仪表板**: - 将执行时间、缓存命中/未命中状态、预估的 token 数量/成本以及用户反馈(来自 Slack 的 👍/👎)记录到 Redis。 - 将这些统计数据汇总成实时管理员报告。 4. **智能缓存失效**: - 集成 Apex/Flow 触发器 webhook,每当 Salesforce 内部的记录被修改时,清除 Upstash Redis 中的缓存条目。 5. **AI 驱动的缓存预热**: - Cloudflare Cron Triggers 运行后台作业以分析搜索流行度(Sorted Sets),并主动预取热门的 Salesforce 记录,确保用户在开始新的一天时能获得即时的缓存命中。 6. **Slack ChatOps 命令室**: - 将防火墙拦截卡片、缓存失效警报和诊断指标直接流式传输到 Slack。 - 具有交互式 Slack 按钮,可清除缓存键、运行系统诊断或模拟自定义 prompt injection 攻击。 ## 🛠️ 高级性能与安全优化 采用边缘计算的最佳实践设计,以确保高性能和低运营成本: - **本地隔离内存缓存**:在 Cloudflare Worker 全局内存中缓存数据库版本 namespace,TTL 为 15 秒。这避免了在缓存未命中时按顺序调用 Redis `get`,从而将请求延迟降低 10-30ms。 - **Redis 写入流水线**:将指标写入(用于流行度跟踪的 sorted sets、成本日志、总请求指标)分组到单个 Redis pipelining 数据包中,在后台(`ctx.waitUntil`)通过一次网络往返执行它们。 - **非阻塞式遥测执行**:将成本报告和分析跟踪延迟到客户端响应刷新之后,避免给最终用户带来延迟开销。 ## 📁 仓库结构 ``` ├── cloudflare-worker/ # Wrangler project folder │ ├── index.js # ES Module edge application containing routing & logic │ ├── wrangler.toml # Cloudflare Worker configuration & Cron triggers │ └── package.json # Worker dependencies │ ├── force-app/main/default/ # Salesforce DX Project Source │ ├── classes/ # Invocable Apex (Callouts, Telemetry Logging, and Invalidation Services) │ ├── externalCredentials/ # External Credentials metadata │ ├── namedCredentials/ # Named Credentials metadata │ ├── permissionsets/ # Salesforce permission sets │ ├── permissionsetgroups/ # Salesforce permission set groups │ └── aiAuthoringBundles/ # Agentforce Agent Script definition │ └── README.md # Project documentation ``` ## 🚀 设置项目 ### 前置条件 1. **Salesforce Developer Edition Org**:在 [developer.salesforce.com/signup](https://developer.salesforce.com/signup) 注册一个免费的组织。 2. **Cloudflare 账户**:在 [cloudflare.com](https://www.cloudflare.com/) 注册一个免费账户。 3. **Upstash 账户**:在 [upstash.com](https://upstash.com/) 注册免费的 Redis serverless 数据库。 4. **Slack App 集成**:在 [api.slack.com/apps](https://api.slack.com/apps) 的 Slack 工作区中创建一个自定义应用。 ### 部署 Cloudflare Worker 1. 导航到 `/cloudflare-worker` 并安装依赖项: npm install 2. 配置 Wrangler secrets。将以下密钥绑定到您的 Cloudflare Worker 环境: wrangler secret put UPSTASH_REDIS_REST_URL wrangler secret put UPSTASH_REDIS_REST_TOKEN wrangler secret put SLACK_WEBHOOK_URL 3. 配置本地环境变量以进行测试: 在 `cloudflare-worker/` 目录中创建一个 `.dev.vars` 文件(参见 [cloudflare-worker/.dev.vars](file:///home/rohit/Documents/Practice_projects/Agent/Exp/cloudflare-worker/.dev.vars) 模板),以在本地提供您的 API 凭证和配置,而无需将它们提交到 Git。 4. 在本地测试您的 Worker: npm run dev 5. 将 Worker 部署到 Cloudflare 的边缘: npm run deploy ### 部署到 Salesforce 1. 使用 Salesforce CLI 授权您的目标 Salesforce Org: sf org login web -a MyDevOrg -s 2. 使用 SFDX 部署元数据(Apex 类、Named Credentials 和 Agent 定义): sf project deploy start 3. 将权限集组 `AFDX_User_Perms` 分配给您的集成用户。 4. 在 Salesforce UI 中的 **Setup > Named Credentials > External Credentials** 下填充自定义凭证密钥,使其与您的 worker 环境中 `PROXY_SHARED_SECRET` 的值相匹配。
标签:AppImage, ChatOps, Salesforce集成, Web应用防火墙, 大语言模型安全, 数据可视化, 机密管理, 程序员工具, 缓存中间件, 自定义脚本, 边缘计算