Token导航 LogoToken导航TokenDH.com
Chat Agent Demo logo
AI代理stdio官方级别未说明来源级核验

Chat Agent Demo

MCP Server

基于Claude Agent SDK的全栈对话应用Demo,提供流式响应、工具调用和多模态输入等功能,适用于AI应用开发。

工具数

0

提示词数

0

GitHub Stars

14

资源数

0
TypeScriptClaudeAI代理Claude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

Ridter

提供方

Ridter

最后核验

2026/5/17 20:23

运行时

Python

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

uv run uvicorn main:app --reload --host 0.0.0.0 --port 3001

详细介绍

ChatAgent

一个基于 Claude Agent SDK 构建的全栈对话应用 Demo,展示如何使用 Anthropic 官方 Agent SDK 构建具有流式响应、工具调用和多模态能力的 AI 应用。

注意:本项目是 Claude Agent SDK 的演示项目,旨在帮助开发者快速了解和上手 SDK 的核心功能。

Demo

alt text

✨ 功能特性

  • 🚀 流式响应 - 实时逐字显示 AI 回复,提供流畅的用户体验
  • 🔧 工具调用 - 支持 Agent 调用外部工具完成复杂任务
  • 🖼️ 多模态输入 - 支持文本和图片混合输入
  • 💬 多轮对话 - 完整的上下文管理,支持连续对话
  • 📁 会话管理 - 支持创建、切换、删除多个独立会话
  • ⏹️ 中断生成 - 支持随时停止 AI 响应生成
  • 📝 Markdown 渲染 - 支持代码高亮、数学公式 (KaTeX)、Mermaid 图表
  • 💾 数据持久化 - SQLite 存储聊天记录,支持历史查看

技术架构

┌─────────────────┐     WebSocket      ┌─────────────────┐
│                 │ ◄────────────────► │                 │
│  React 前端     │                    │  FastAPI 后端   │
│  (TypeScript)   │     REST API       │  (Python)       │
│                 │ ◄────────────────► │                 │
└─────────────────┘                    └────────┬────────┘
                                                │
                                                ▼
                                       ┌─────────────────┐
                                       │ Claude Agent SDK│
                                       │   (Anthropic)   │
                                       └─────────────────┘

后端技术栈

  • Python 3.11+ + FastAPI - 异步 Web 框架
  • Claude Agent SDK - Anthropic 官方 Agent SDK
  • SQLite + aiosqlite - 异步数据持久化
  • uv - 现代 Python 包管理器

前端技术栈

  • React 19 + TypeScript - 类型安全的前端框架
  • Vite 7 - 快速构建工具
  • Tailwind CSS 4 + shadcn/ui - 现代化 UI
  • react-markdown - Markdown 渲染(支持 GFM、数学公式、代码高亮)
  • Mermaid - 图表渲染

快速开始

环境要求

  • Python 3.11+
  • Node.js 18+
  • pnpm
  • uv
  • Anthropic API Key

启动后端

cd backend
cp .env.example .env
# 编辑 .env 填入 ANTHROPIC_API_KEY

uv sync
uv run uvicorn main:app --reload --host 0.0.0.0 --port 3001

启动前端

cd frontend
pnpm install
pnpm dev

访问 http://localhost:5173 开始体验。

📁 项目结构

ChatAgent/
├── backend/                    # Python FastAPI 后端
│   ├── main.py                # 应用入口
│   ├── pyproject.toml         # Python 依赖配置
│   └── app/
│       ├── config.py          # 全局配置(系统提示词、工具列表等)
│       ├── core/
│       │   ├── agent_session.py    # Claude Agent SDK 会话管理
│       │   └── session_manager.py  # WebSocket 会话和消息广播
│       ├── api/
│       │   ├── routes.py      # REST API 路由
│       │   └── websocket.py   # WebSocket 端点
│       └── services/
│           └── chat_store.py  # SQLite 数据库 CRUD
│
└── frontend/                   # React TypeScript 前端
    ├── package.json           # Node.js 依赖配置
    └── src/
        ├── components/
        │   ├── chat/          # ChatContainer, ChatMessage, ChatInput
        │   └── sidebar/       # ChatSidebar
        ├── hooks/
        │   ├── useChat.ts     # WebSocket 管理和消息处理
        │   └── useChatList.ts # 聊天列表管理
        └── services/
            └── api.ts         # REST API 调用

🔌 WebSocket 消息协议

客户端 → 服务器

类型说明示例
subscribe订阅聊天{ type: "subscribe", chat_id }
chat发送消息{ type: "chat", chat_id, content, images? }
stop停止生成{ type: "stop", chat_id }

服务器 → 客户端

类型说明
text_delta流式文本增量
tool_use / tool_result工具调用和结果
stream_start / stream_end流式响应边界
history / tool_history历史消息和工具调用

⚙️ 配置说明

Agent 配置

后端配置位于 backend/app/config.py

SYSTEM_PROMPT = "..."      # Claude 系统提示词
ALLOWED_TOOLS = [...]      # 允许的工具列表
MAX_TURNS = 100            # 最大对话轮数

MCP 服务器配置

MCP (Model Context Protocol) 服务器配置位于 backend/data/mcp_servers.json(参考 backend/data/mcp_servers.example.json)。支持 stdio 和 HTTP 两种类型:

{
  "mcpServers": {
    "server_name": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-xxx"],
      "env": {},
      "allowedTools": ["tool1", "tool2"]
    },
    "http_server": {
      "type": "http",
      "url": "https://example.com/mcp",
      "headers": {
        "API_KEY": "your-api-key"
      },
      "allowedTools": ["tool1", "tool2"]
    }
  }
}

配置字段说明

字段类型说明
typestring服务器类型:stdiohttp
commandstringstdio 类型的启动命令
argsarraystdio 类型的命令参数
envobject环境变量(可选)
urlstringhttp 类型的服务器 URL
headersobjecthttp 类型的请求头(可选)
allowedToolsarray允许调用的工具列表

常用 MCP 服务器示例

{
  "mcpServers": {
    "filesystem": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-filesystem", "/path/to/allowed/dir"],
      "allowedTools": ["read_file", "write_file", "list_directory"]
    },
    "context7": {
      "type": "http",
      "url": "https://mcp.context7.com/mcp",
      "headers": {
        "CONTEXT7_API_KEY": "your-api-key"
      },
      "allowedTools": ["resolve-library-id", "get-library-docs"]
    }
  }
}

相关资源

License

MIT

目录标签

目录标签

TypeScriptClaudeAI代理AI对话本地部署全栈开发多模态输入工具调用流式响应

支持客户端

Claude

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

api-key

运行时(runtime,运行环境)

Python

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdioapi-key部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP