# LoomAgent **Repository Path**: mtour/loom-agent ## Basic Information - **Project Name**: LoomAgent - **Description**: 面向企业的一站式智能体开发、运行与治理平台 以工作空间为边界隔离资源与数据,打通模型接入、Agent 编排、对话运行、市场分发到审计计量的完整闭环。 - **Primary Language**: Java - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 18 - **Forks**: 10 - **Created**: 2026-10-17 - **Last Updated**: 2026-10-23 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # LoomAgent · 企业级智能体平台 LoomAgent 是面向企业的一站式智能体开发、运行与治理平台。以**工作空间**为资源与数据隔离边界,打通「模型接入 → Agent 编排 → 对话运行 → 市场分发 → 审计计量」的完整闭环,基座采用 RuoYi-Vue-Plus 企业级开发框架,开箱即用。 ## 平台预览 **运营看板**:全平台/空间级运营指标、近 14 天 Token 趋势、Agent 用量排行与反馈满意度。 ![运营看板](docs/assets/preview-dashboard.png) **供应商配置**:平台级模型供应商管理,预置 OpenAI / Anthropic / 阿里云百炼 / Ollama / DeepSeek / 自定义。 ![供应商配置](docs/assets/preview-provider.png) **Agent 编排**:拖拽式工作流画布,内置推理、知识检索、代码执行、HTTP、条件分支、循环迭代等节点,支持版本快照与运行记录回放。 ![Agent 编排](docs/assets/preview-workflow.png) **团队接力**:多个 Agent 按顺序接力处理同一任务,逐棒流式输出——轨迹时间线随进度逐棒点亮,每棒的产出实时逐字呈现,主 Agent 最后综合全部成员结果定稿,无需空等整条接力链跑完。 ![团队接力](docs/assets/preview-team-relay.gif) ## 功能模块 ### Agent 平台(自研核心) | 模块 | 说明 | | --- | --- | | 工作空间 | 空间级资源隔离,空间 CRUD、成员管理(角色授权、最后管理员保护)、级联删除 | | 模型管理 | 空间内 LLM 模型接入配置(参数、温度、Token 上限、图片输入能力开关等) | | 供应商配置 | 平台级模型供应商管理,预置 OpenAI / Anthropic / 阿里云百炼 / Ollama / 自定义 | | 工具管理 | Agent 可调用的工具注册与维护,含内置代码执行沙箱(Docker 隔离)、**智能问数 SQL 工具**(NL2SQL) | | MCP 服务器 | 平台级 MCP Server 管理(连接测试、审批模式),Agent 可绑定多个 MCP 工具 | | 工具审批中心 | MCP 工具调用审批流(ask 模式),按角色权限引擎匹配,支持通过/拒绝/中断 | | 知识库 | 文档上传/解析/分块/向量化,Milvus 向量检索;**混合检索**(向量 + 全文关键词 RRF 融合)与 **Rerank 重排序**精排;相似度阈值、分块管理(编辑/启停/命中数)、结构感知分块、文件 MD5 去重、邻块扩展、检索缓存、跨库分数归一、上下文 Token 预算裁剪、零命中落表、多轮查询改写,内置检索测试面板(各通道分数明细) | | 智能问数 | 业务数据源管理(连接测试/表结构快照/每日定时刷新)、SQL 工具自动生成只读 SELECT;安全护栏(仅 SELECT/自动 LIMIT/语句超时/表级白名单/EXPLAIN 扫描行数预检/密码 AES 加密);schema-as-tool 按需取表字段 + few-shot 示例库提升生成准确率;**语义层**(指标/维度/枚举值字典、语义路由、歧义澄清、动态注入、相对时间换算)、多轮查询改写、空结果自检;结果以 Markdown 表格展示并支持图表自动推荐与 CSV 导出 | | Agent 管理 | 智能体定义与编排:模型、工具、知识库、提示词;支持结构化输出、长期记忆、Agent Team(顺序接力,逐棒流式)、推荐问题、克隆 | | Agent 编排 | 拖拽式工作流画布(DAG 校验/试运行),循环迭代、代码执行(Docker 沙箱)、HTTP 请求扩展节点,版本快照与回滚、运行历史与执行回放 | | 对话运行 | 会话管理与消息收发,AgentScope ReAct 内核执行;SSE 流式输出、Token 预算拦截;**团队接力逐棒流式**(进度时间线逐棒点亮、各棒产事实时渲染);多模态图片输入(上传/预览/模型能力开关);消息重新生成、回答引用溯源、点赞点踩反馈、会话标题自动生成、会话搜索/置顶/导出 Markdown | | 触发器 | 动态 Cron 定时调度与免登录 Webhook 触发,支持 Agent 对话/工作流两类目标,执行日志可查 | | 运营看板 | 单接口 + 角色裁剪(超级管理员全平台 / 空间管理员本空间),会话/消息/Token/预算/反馈满意度指标,KPI 图标卡、排行进度条、满意度与状态分布环形图,Redis 60s 缓存 | | 长期记忆 | 跨会话用户偏好/事实沉淀,对话自动注入记忆并异步提取新记忆 | | 智能体市场 | 市场浏览、安装、评分;个人发布管理(提交/下架);管理员审核(通过/驳回/强制下架) | | API 密钥 | 空间级 API Key 签发(SHA-256 哈希存储、明文仅创建时可见)、查询与吊销 | | 审计日志 | 平台操作全链路审计记录与查询,含来源渠道、客户端 IP、结果、级别、变更快照 | | 用量统计 | Token 用量统计(按日汇总)、查询与导出 | ### 运行内核(AgentScope) | 能力 | 说明 | | --- | --- | | ReAct 执行 | AgentScope 2.0 内核驱动 Agent 推理-行动循环 | | SSE 流式 | 推理过程与最终回复实时推送到前端 | | Token 预算 | 发送前预检 + 轮级内核钩子双重拦截,超限自动终止 | | Docker 沙箱 | 代码执行工具,内存/CPU/网络/超时硬约束,一次性容器隔离 | | Agent Team | 顺序编排多 Agent,成员独立 Memory;逐棒流式推送(开始/增量/完成三类事件),主 Agent 综合全部成员产出定稿,trace 聚合展示 | | 结构化输出 | 输出 Schema 约束,LLM 返回严格 JSON | | 多模态 | 图片输入(点选/粘贴/拖拽),按模型能力组装请求,缩略图存储避免库膨胀 | | 工具调用 | Function Calling 支持,内置代码沙箱、HTTP、智能问数 SQL 工具及 MCP 外挂 | | 工作流审批节点 | 试运行遇审批节点暂停生成审批单,审批后续跑 | ### 平台基座(RuoYi-Vue-Plus) 用户管理、部门/岗位、角色与菜单权限、字典与参数配置、通知公告、操作/登录日志、文件管理(OSS)、在线用户、定时任务(SnailJob)、服务与缓存监控、工作流(WarmFlow)、代码生成等企业级能力开箱即用。 ## 技术栈 | 层 | 技术 | | --- | --- | | 前端 | Vue 3 + TypeScript + Element Plus + Vite + Pinia + pnpm | | 后端 | Spring Boot 4.1 + JDK 21 + Sa-Token + MyBatis-Plus + MapStruct Plus | | 运行内核 | AgentScope 2.0(io.agentscope:agentscope) | | 存储 | MySQL 8(utf8mb4)+ Redis 6(Redisson,AOF 持久化)+ Milvus 2.4(向量库) | ## 目录结构 ``` loom-agent ├── backend # 后端(RuoYi-Vue-Plus 单体多模块) │ ├── ruoyi-admin # 启动模块(8080) │ ├── ruoyi-modules │ │ └── ruoyi-agent # Agent 平台自研核心模块 │ │ └── ruoyi-system # 系统管理模块 │ │ └── ... # workflow / job / gen 等 │ ├── script/sql # 框架初始化 SQL(ry_vue / ry_workflow / ry_job / ry_ai) │ └── sql # Agent 平台初始化 SQL(agent_*.sql,含表结构与菜单) └── frontend # 前端(plus-ui),Agent 页面位于 src/views/agent/ ``` ## 快速启动 ### 方式一:Docker Compose 一键部署(推荐) 只需 Docker 环境,一条命令拉起全栈(MySQL 自动初始化 + Redis + Milvus + 后端 + 前端): ```bash cd deploy/docker cp .env.example .env # 编辑 .env 修改密码等配置(可选) docker compose up -d # 访问 http://localhost:80 ``` 默认管理员账号:`admin` / `admin123` **演示模式**:将 `.env` 中 `DEMO_ENABLED` 设为 `true` 后重新 `docker compose up -d --build`,登录页将出现「演示账号一键登录」按钮(demo / Demo@123456),同时开启后端写保护(仅放行登录/对话等白名单接口)并注入示例 Agent、问数数据源等演示数据。演示数据可通过 `deploy/docker/demo/reset-demo.sh` 定时重置。 ### 方式二:本地开发 #### 1. 环境准备 - JDK 21、Maven 3.9+、Node 18+ 与 pnpm - MySQL 8、Redis 6(建议设置密码) - Milvus 2.4(知识库向量检索与混合检索依赖,可选):`cd deploy/milvus && docker compose up -d` #### 2. 初始化数据库 创建 `ry-vue`(主库)与 `ry-job`(任务库),均使用 utf8mb4: ```sql CREATE DATABASE `ry-vue` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; CREATE DATABASE `ry-job` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; ``` 依次导入: ```bash # 框架基础(导入 ry-vue) mysql --default-character-set=utf8mb4 -u用户名 -p ry-vue < backend/script/sql/ry_vue.sql mysql --default-character-set=utf8mb4 -u用户名 -p ry-vue < backend/script/sql/ry_workflow.sql mysql --default-character-set=utf8mb4 -u用户名 -p ry-vue < backend/script/sql/ry_ai.sql # 任务库(导入 ry-job) mysql --default-character-set=utf8mb4 -u用户名 -p ry-job < backend/script/sql/ry_job.sql # Agent 平台(表结构 + 菜单 + 预置数据,导入 ry-vue) for f in backend/sql/agent_*.sql; do mysql --default-character-set=utf8mb4 -u用户名 -p ry-vue < "$f"; done ``` > 注意:务必带上 `--default-character-set=utf8mb4`,否则中文会被双重编码存库。脚本内已内置 `SET NAMES utf8mb4` 兜底。 #### 3. 修改配置 编辑 `backend/ruoyi-admin/src/main/resources/application-dev.yml`,配置 MySQL 与 Redis 连接信息。 #### 4. 启动后端 ```bash cd backend mvn -Pdev clean package -DskipTests -T 1C java -jar ruoyi-admin/target/ruoyi-admin.jar # 服务地址 http://localhost:8080 ``` #### 5. 启动前端 ```bash cd frontend pnpm install --registry=https://registry.npmmirror.com pnpm dev # 访问 http://localhost:8100(开发代理 /dev-api → localhost:8080) ``` #### 6. 登录 默认管理员账号:`admin` / `admin123`,登录后在「Agent平台」菜单使用各功能模块。 ## 相关文档 - 前端框架说明:[frontend/README.md](frontend/README.md) - 后端框架说明:[backend/README.md](backend/README.md) ## 联系我们 关注微信公众号获取更多资讯: ![微信公众号](docs/assets/wx_qrcode.jpg) ## 捐赠 开源不易,如果这个项目对你有帮助,欢迎请作者喝杯咖啡 ☕ 你的每一份支持,都是项目持续维护与迭代的动力。 微信收款码