import { prisma } from "@/app/lib/prisma" import Link from "next/link" function buildQueryString(params: Record) { const sp = new URLSearchParams() Object.entries(params).forEach(([key, value]) => { if (value) sp.append(key, value) }) const qs = sp.toString() return qs ? `?${qs}` : "" } export default async function AgentsPage({ searchParams, }: { searchParams: Promise<{ category?: string; q?: string; sort?: string; page?: string }> }) { const params = await searchParams const { category, q, sort, page } = await searchParams const categoryId = category ? parseInt(category) : undefined const searchQuery = q || "" const sortBy = sort || "" const currentPage = page ? parseInt(page) : 1 const pageSize = 9 const where: any = {} if (categoryId) where.categoryId = categoryId if (searchQuery) { where.OR = [ { name: { contains: searchQuery } }, { description: { contains: searchQuery } }, ] } let orderBy: any = { createdAt: "desc" } if (sortBy === "popular") orderBy = { usageCount: "desc" } const totalAgents = await prisma.agent.count({ where }) const totalPages = Math.ceil(totalAgents / pageSize) const agents = await prisma.agent.findMany({ where, include: { category: true }, orderBy, skip: (currentPage - 1) * pageSize, take: pageSize, }) const popularAgents = await prisma.agent.findMany({ include: { category: true }, orderBy: { usageCount: "desc" }, take: 6, }) const categories = await prisma.category.findMany({ include: { _count: { select: { agents: true } } }, }) const totalCategories = await prisma.category.count() const getPageUrl = (page: number) => { const params: Record = {} if (categoryId) params.category = categoryId.toString() if (searchQuery) params.q = searchQuery if (sortBy) params.sort = sortBy if (page > 1) params.page = page.toString() return `/agents${buildQueryString(params)}` } return (
{/* 面包屑 */}
首页 / 智能体广场
{/* 页面标题 */}

智能体广场

浏览并搜索公司发布的 AI 智能体应用,找到最适合您的智能助手

{/* 统计信息 */}
{totalAgents}
智能体总数
{totalCategories}
分类数量
5000+
活跃用户
98%
用户满意度
{/* 搜索与筛选 */}

搜索与筛选

重置
快捷分类: 全部 {categories.map((cat) => ( {cat.name} ))}
{/* 热门推荐 */} {popularAgents.length > 0 && (

热门推荐

{popularAgents.map((agent) => (
{agent.icon || "🤖"}

{agent.name}

{agent.category && ( {agent.category.name} )}

{agent.description}

使用 {agent.usageCount} 次 查看详情 →
))}
)} {/* 智能体列表头部 */}

智能体列表

显示 {totalAgents} 个智能体
{/* 智能体列表 */}
{agents.map((agent) => (
{agent.icon || "🤖"}

{agent.name}

{agent.category && ( {agent.category.name} )}

{agent.description}

使用 {agent.usageCount} 次 {agent.status === "active" ? "运行中" : agent.status}
))}
{/* 空状态 */} {agents.length === 0 && (
🔍

未找到匹配的智能体

试试调整筛选条件或关键词,或者浏览我们的热门推荐

重置筛选
)} {/* 分页 */} {totalPages > 1 && (
第 {currentPage} 页,共 {totalPages} 页
上一页
{Array.from({ length: totalPages }, (_, i) => i + 1).map((pageNum) => ( {pageNum} ))}
= totalPages ? "opacity-40 cursor-not-allowed" : ""}`} > 下一页
)}
{/* 底部 */}
AI
江苏冲浪软件科技有限公司
© 2026 江苏冲浪软件科技有限公司 · AI 智能体广场
) }