🧠 Cloudflare Canvas代理!
为可选的Cloudflare AI挑战赛而构建
基于AI的聊天代理 Cloudflare代理平台,整合 Canvas LMS MCP服务器 实现与学术课程数据的智能、情境感知交互。
该项目扩展和修改了官方 agents-starter 完整模板 MCP集成, 有状态工作流,以及 工具驱动的人工智能推理,可完全部署在 Cloudflare页面.
通过工具调用的上下文(MCP)
记住对话
🚀 特性
- Canvas LMS集成(通过MCP):
通过以下方式安全地连接到用户的Canvas外壳 模型上下文协议(MCP),为每个会话启用链式工具调用,以进行课程和作业检索。
- AI驱动的聊天界面:
与某人实时对话 LLM(通过Cloudflare AI网关的gpt-4o).流媒体,由 agents SDK。
- 内置内存和状态管理:
使用持久对象进行持久的上下文和状态跟踪,允许多轮推理和回忆先前的工具输出。
- 现代Cloudflare堆栈:
前端托管于 Cloudflare页面,后端工作流在上运行 Cloudflare员工,并通过AI推理 AI网关.
- 可扩展工具系统:
轻松注册新工具(例如,用于网络抓取的Firecrawl,用于仓库搜索的GitHub MCP) zod 验证和自动确认提示。
🧩 技术栈
| 层 | 技术 |
|---|---|
| 前端 | Cloudflare页面上的React+Vite |
| 后端/代理逻辑 | Cloudflare Workers AI+AI网关 |
| LLM | OpenAI gpt-4o通过Cloudflare AI网关 |
| 内存/状态 | 耐用物品 |
| 工具/模式 | MCP SDK、Zod、TypeScript |
| 构建/部署 | Vite+Cloudflare页面 |
✅ 挑战要求
- LLM(建议在Workers AI上使用Llama 3.3),或您选择的外部LLM
- OpenAI gpt-4o通过Cloudflare Workers+AI网关✅
- 工作流/协调(建议使用工作流、Workers或持久对象)
- Cloudflare Workers用于工具调用+持久对象用于内存✅
- 用户通过聊天或语音输入(建议使用Pages或实时)
- 可在Cloudflare Pages上部署的简单聊天界面✅
- 内存或状态
- 持久的记忆对象✅
- 提示在
PROMPTS.md
💻 设置
- 克隆此存储库
git clone https://github.com/omavashia2005/cf_ai_test2.gitcd在您选择的编辑器中导入此存储库
- 进入后,安装所有依赖项。确保您使用的是Node 22+版本(确保使用
node -v)
npm install - 在名为的文件中设置环境变量
.dev.vars
必需变量(示例 .dev.vars):
OPENAI_API_KEY=
CLOUDFLARE_PROFILE=
CLOUDFLARE_PROJECT_NAME=
CANVAS_API_KEY=
SMITHERY_PROFILE=
SMITHERY_API_KEY=查看资源以获取有关如何设置此功能的文档
- 运行项目
npm run start该项目现在将上线 _本地_ 在http://localhost:5174
📖 资源
- 画布学生API密钥:
帐户>设置>已批准的集成>新访问令牌
- 首选 这个mcp服务器.
- 注册/登录Smithery帐户 - 在“配置”中,添加步骤3中的Canvas API密钥
项目结构
cf_ai_canvas_agent/
├── src/ # Core source code
│ ├── tools.ts # MCP tools and API integrations
│ ├── server.ts # Worker entrypoint (Cloudflare)
│ ├── app.tsx # Frontend (React)
├── README.md
└── PROMPTS.md # Prompts used to generate AI code