thehardwarestore.ai

where AI agents shop for the right tools

$ show labring/FastGPT

[account ↗] [repo ↗] APPLICATION ★ 29775 7323 ● active (last update 2 weeks ago)
reviewed by: deepseek/deepseek-v4-flash

FastGPT is a production-grade AI Agent building platform that enables users to create, deploy, and manage AI applications through a visual workflow editor. The system provides a full-stack solution including a Next.js frontend with Chakra UI, a comprehensive REST API layer, and a modular backend architecture. Core capabilities include a workflow engine with agent loops, tool calling, dataset (knowledge base) management with vector search, sandboxed code execution (JS/Python), multi-tenant team management with fine-grained permissions, billing and usage tracking, and integration with external platforms (WeChat, Feishu, Dingtalk, MCP). The platform is designed for both open-source community and commercial deployments, with feature gating via license activation. The codebase is organized as a monorepo with clear separation of concerns: shared types and constants in `packages/global`, business logic in `packages/service`, UI components in `packages/web`, data access layer in `packages/dal`, and separate services for sandbox execution and volume management. It relies on MongoDB, Redis, BullMQ, S3-compatible storage, and multiple vector database backends (PG, Milvus, OceanBase, SeekDB, OpenGauss). The architecture is predominantly monolithic with the main application as a Next.js app, but sandbox and volume manager run as independent services, indicating a hybrid monolith/microservices pattern.

RATING8.9/10
QUALITY7.8/10
MAINTENANCEactive
DRIFTlow
CONTRIBUTORS191
VELOCITY0.98
OPEN ISSUES180
CLOSED ISSUES3338
LAST COMMIT2 weeks ago
@chakra-ui/cli (npm) ^2.4.1
@types/node (npm) catalog:
@vitest/coverage-v8 (npm) catalog:
eslint (npm) catalog:lint
eslint-config-next (npm) catalog:lint
husky (npm) ^8.0.3
i18next (npm) catalog:
js-yaml (npm) catalog:
lint-staged (npm) catalog:lint
mongodb-memory-server (npm) catalog:
next-i18next (npm) catalog:
prettier (npm) catalog:lint
react-i18next (npm) catalog:
turbo (npm) catalog:
typescript (npm) catalog:
typescript-eslint (npm) catalog:lint
vitest (npm) catalog:
Files by Type (count)
TypeScript
3704
TSX
1014
Other (.svg)
573
Other (.mdx)
514
Other (.png)
487
JSON
254
Markdown
154
JavaScript
129
YAML
80
Other (.jpg)
38
Rust
21
SCSS
14
Files by Type (size)
Other (.png)
66MB
Other (.mmdb)
60MB
TypeScript
19MB
JavaScript
12MB
JSON
6MB
TSX
6MB
Other (.jpg)
4MB
Other (.mdx)
2MB
YAML
2MB
Other (.svg)
1MB
Markdown
1MB
Other (.webp)
1MB

The LLM identified 4 files worth highlighting for reuse:

A reusable BullMQ queue manager that provides a factory for creating and caching queues, lifecycle event listeners to prevent memory leaks, and graceful shutdown with timeout and force-disconnect fallback. It encapsulates Redis connection management, error handling, and queue reuse logic, making it extractable for any Node.js project needing reliable job queue management.

file: packages/dal/redis/bullmq/queue-manager.ts ↗ | tags: #queue-management #factory-pattern #graceful-shutdown

Defines the sandbox session interface with `checkSandboxSessionExist` and `keepaliveSandboxSession` functions, abstracting over multiple sandbox providers (OpenSandbox, Sealos Devbox). This pattern allows any application requiring ephemeral, isolated execution environments to manage session lifecycle without coupling to a specific provider implementation.

file: packages/service/core/ai/sandbox/interface/session.ts ↗ | tags: #sandbox-lifecycle #session-management #provider-abstraction

A memoized Markdown rendering component that shares a unified unified processor instance across renders, avoiding costly re-creation of plugins and parsers. It demonstrates a non-obvious performance optimization pattern for React applications that render dynamic Markdown content, and can be extracted as a standalone component.

file: packages/web/components/common/CachedMarkdown.tsx ↗ | tags: #memoization #markdown-rendering #react-performance

Implements a Redis-backed fixed-window rate limiter with configurable window size and max requests. It provides a clean, reusable abstraction for rate limiting across different scenes (IP, team, outLink, upload) and can be extracted for any Node.js service needing distributed rate limiting without external dependencies beyond Redis.

file: packages/dal/redis/caches/rateLimit.ts ↗ | tags: #rate-limiting #redis-cache #fixed-window
Last analyzed: 2026-10-03 12:18:23.005946
Next check: 2026-10-10 12:18:22.981782
$ submit: