Canvas LMS智能聊天代理

基于Cloudflare代理平台构建的AI驱动聊天代理,集成Canvas LMS MCP服务器,实现与学术课程数据的智能、上下文感知交互。

  • by omavashia2005
  • TypeScript
  • 本地部署
  • 2 星标
  • 更新于
在 GitHub 查看 omavashia2005/cf_ai_omavashia

使用说明

🧠 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

💻 设置

  1. 克隆此存储库

    git clone https://github.com/omavashia2005/cf_ai_test2.git
    
  2. cd 在您选择的编辑器中导入此存储库

  3. 进入后,安装所有依赖项。确保您使用的是Node 22+版本(确保使用 node -v)

    npm install 
    
  4. 在名为的文件中设置环境变量 .dev.vars 必需变量(示例 .dev.vars):

    OPENAI_API_KEY=
    CLOUDFLARE_PROFILE=
    CLOUDFLARE_PROJECT_NAME=
    CANVAS_API_KEY=
    SMITHERY_PROFILE=
    SMITHERY_API_KEY=
    

    查看资源以获取有关如何设置此功能的文档

  5. 运行项目

    npm run start
    

该项目现在将上线 本地 在http://localhost:5174

📖 资源

  1. 获取OpenAI API密钥

  2. 设置Cloudflare AI网关

  3. 画布学生API密钥:

    帐户>设置>已批准的集成>新访问令牌

  4. 首选 这个mcp服务器.

    • 注册/登录Smithery帐户
    • 在“配置”中,添加步骤3中的Canvas API密钥
  5. 获取您的Smithery API密钥

  6. 获取您的Smithery MCP个人资料

项目结构

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