# Agent **Repository Path**: tianxiang6/agent ## Basic Information - **Project Name**: Agent - **Description**: 本项目基于DeepAgent框架构建了一个垂直纺织业务场景的智能体,集成了MCP(Model Context Protocol)工具的调用能力,并采用Skill模块对工具调用流程进行结构化编排与管理。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 0 - **Created**: 2026-05-09 - **Last Updated**: 2026-05-31 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # TIS Agent 纺织生产智能助理,基于 FastAPI + React 的智能对话 Agent 系统。 ## 技术栈 - **后端**: FastAPI + Python - **前端**: React + TypeScript + Vite + Ant Design - **数据库**: SQLite3 - **认证**: JWT(payload 解析,不验签) ## 快速开始 ```bash # 后端 cd backend pip install -r requirements.txt uvicorn app.main:app --host 0.0.0.0 --port 8001 # 前端 cd frontend npm install npm run dev ``` 前端访问 `http://localhost:5173`,粘贴 JWT Token 登录后即可使用。 ## 认证方式 所有需要鉴权的接口需在请求 header 中携带: ``` Authorization: Bearer ``` 后端 base64 解码 JWT payload 的 `sub` 字段作为 `user_id`,实现用户会话隔离。不验证签名(由嵌入系统的网关负责鉴权)。 ## API 接口 ### 鉴权接口 | 接口 | 方法 | 说明 | |---|---|---| | `/api/v1/query` | POST | 发送查询(SSE 流式响应) | | `/api/v1/session` | POST | 创建新会话 | | `/api/v1/session/list` | GET | 获取当前用户的会话列表 | | `/api/v1/session/history?session_id=` | GET | 获取指定会话的历史消息 | | `/api/v1/session/{session_id}` | DELETE | 删除指定会话 | ### 公开接口 | 接口 | 方法 | 说明 | |---|---|---| | `/api/v1/health` | GET | 健康检查 | | `/` | GET | 根路径 | ## 用户隔离 不同用户通过 JWT 的 `sub` 字段区分,会话数据按 `user_id` 隔离: - 创建会话时自动写入 `user_id` - 查询会话列表只返回自己的数据 - 查询历史消息校验归属 - 删除会话校验归属(不是自己的返回 404) ## 项目结构 ``` ├── backend/ │ ├── app/ │ │ ├── api/v1/ │ │ │ ├── query.py # 查询接口 │ │ │ └── session.py # 会话接口 │ │ ├── core/ │ │ │ ├── database.py # SQLite 操作 │ │ │ ├── deep_agent.py # Agent 核心逻辑 │ │ │ ├── jwt.py # JWT 解析依赖 │ │ │ └── skills/ # Agent skills │ │ ├── schemas/ │ │ │ └── models.py # Pydantic 模型 │ │ ├── config.py # 配置 │ │ └── main.py # 应用入口 │ ├── data/ # SQLite 数据库文件 │ ├── .env # 环境变量 │ └── requirements.txt ├── frontend/ │ ├── src/ │ │ ├── api/query.ts # API 请求封装 │ │ ├── components/ │ │ │ ├── ChatInput.tsx │ │ │ ├── ChatMessage.tsx │ │ │ ├── Login.tsx # 登录页 │ │ │ └── Sidebar.tsx │ │ ├── hooks/useChat.ts # 聊天状态管理 │ │ └── App.tsx # 主应用 │ ├── vite.config.ts │ └── package.json └── SESSION_ISOLATION.md # 会话隔离改造说明 ``` ## 配置说明 `.env` 配置项: | 变量 | 必填 | 说明 | |---|---|---| | `DASHSCOPE_API_KEY` | 是 | 阿里云 DashScope API Key | | `LLM_MODEL` | 否 | 模型名称,默认 `deepseek-v4-flash` | | `LANGFUSE_SECRET_KEY` | 否 | Langfuse 密钥 | | `LANGFUSE_PUBLIC_KEY` | 否 | Langfuse 公钥 | | `LANGFUSE_HOST` | 否 | Langfuse 地址 | | `MCP_SERVER_URL` | 否 | MCP Server 地址 |