ITADN
decocms/studio
decocms/studio · 文件 下载 ZIP
文件最后提交记录最后更新时间
README.md
以下内容由 AI 翻译,如有问题请点此提交 issue 反馈

deco Studio

开源 · TypeScript 优先 · 随处部署

面向组织的开源私有 AI 工作区。

文档 · Discord · decocms.com/studio

Checks & unit tests npm version MIT license GitHub stars Contributors Discord
Model Context Protocol TypeScript Bun React 19 Hono PostgreSQL OpenTelemetry

TL;DR: 您的团队需要一个安全的内部 vibecoding 平台。您刚刚找到了它。使用团队上下文配置 agents。一次性连接私有 MCPs —— 共享能力,而非凭证。保持模型层可互换。通过 SSO、RBAC、审计日志和成本控制,在整个组织中推广 —— 全部通过一个 MCP 端点。本地优先。自托管或使用云。


什么是 deco Studio?

Studio 将内部 AI 部署背后的基础设施打包在一起:模型路由、MCP 认证、agent 配置、SSO、RBAC、审计日志以及用量核算。您的团队获得聊天功能。您保留控制权。

在底层,它是您 AI agents 的一个控制平面——为您的所有 agents、工具和模型提供一个 MCP 端点。Agents 将上下文、工具和策略打包成您可以发布到组织中的内容。连接为它们提供对您系统的受治理访问——GitHub、Slack、Postgres、Sentry,任何支持 MCP 的系统——令牌存储在加密保险库中。模型保持可互换:OpenRouter 或直接提供商,按 agent 和按工具选择。

从一个团队开始。标准化已批准的模型、工具和上下文。在整个组织中扩展,而无需复制密钥或重建平台。本地安装并保持私有;同步到云端以实现远程访问、团队角色和共享计费。

┌─────────────────────────────────────────────────────────────────┐
│                             Clients                             │
│            Cursor · Claude · VS Code · Custom Agents            │
└───────────────────────────┬─────────────────────────────────────┘
                            │
                            ▼
┌─────────────────────────────────────────────────────────────────┐
│                           DECO STUDIO                           │
│      Agents · Connections · Models · Vault · Observability      │
└───────────────────────────┬─────────────────────────────────────┘
                            │
                            ▼
┌─────────────────────────────────────────────────────────────────┐
│                       Tools & MCP Servers                       │
│       GitHub · Slack · Postgres · OpenRouter · Your APIs        │
└─────────────────────────────────────────────────────────────────┘

快速入门

bunx decostudio

或从源代码克隆并运行:

git clone https://github.com/decocms/studio.git
bun install
bun run dev

运行在 http://localhost:4000 (客户端),API 路由代理到 Bun 服务器


你将获得

智能体

将上下文、工具和策略打包成一个智能体。定义指令,添加技能和文件,授予已批准的 MCP 访问权限,选择模型策略,然后将智能体发布到组织。每个智能体都是独立的 MCP 端点——可从 Cursor、Claude Desktop、你自己的代码或另一个智能体调用。智能体可以组合,并且每个操作都会记录成本归属。

连接

一次性安全地连接私有系统。通过 Web UI 在组织级别注册 MCP 服务器,支持一键 OAuth——无需 JSON 配置。令牌存储在加密保险库中,你可以按组织、角色或智能体授予工具级别的访问权限。共享 MCP 能力——而非凭据。

随着工具表面扩展,Studio 暴露 Virtual MCPs——一个端点,针对要暴露哪些工具采用不同的策略:

  • 全上下文: 暴露所有内容(简单、确定性,适用于小型工具集)
  • 智能选择: 在执行前缩小工具集
  • 代码执行: 在沙箱中按需加载工具

模型

保持 AI 层可互换。使用 OpenRouter 或直接连接 Anthropic、OpenAI、Google 或任何兼容提供商——为每个智能体和工具选择最佳模型,背后是一个路由器。对于编码工作,工程师可以链接他们自己的 Claude Code 或 Codex 会话,并使用已在他们机器上认证的订阅。

项目

项目将智能体和连接围绕一个目标聚集在一起。项目的 UI 会根据其内部内容进行调整——添加一个内容智能体和一个 CMS 连接,侧边栏会显示内容管理;添加一个分析智能体和一个数据库,它会显示仪表板和查询。你看到的 UI 就是操作该项目所相关的 UI。

可观测性

记录每一次模型和工具调用。追踪每个线程的用户、智能体、模型、工具、延迟、错误、令牌和成本。按智能体、连接、组织或团队成员细分使用情况——一个仪表板。

从你的桌面到你的组织

本地bunx decostudio 在你的桌面上。嵌入式 PostgreSQL。私有。
云端登录 studio.decocms.com。从任何浏览器控制本地项目。
团队邀请人员。SSO 和基于角色的访问。共享连接。成本归属。
企业自托管。组织隔离、工具范围 API 密钥、审计日志。你的基础设施,你的规则。

核心能力

能力功能说明
Agents将上下文、工具和策略打包为可发布的 agents,并支持成本归因
Connections通过一个受治理的端点路由 MCP 流量,支持认证、代理和加密令牌保险库
Models可互换的 AI 层 — OpenRouter 或直连提供商,每个 agent 可配置模型策略
Projects围绕目标组织 agents 和 connections,并提供自适应 UI
Virtual MCPs组合并暴露受治理的工具集作为新的 MCP 端点
Observability按用户、agent 和 connection 追踪、成本、错误和延迟 — 统一仪表盘
Access Control通过 Better Auth 实现 SSO + RBAC — 每个 workspace/project 支持 OAuth 2.1 和工具级 API 密钥
Multi-tenancy针对配置、凭据、策略和审计日志的组织/项目隔离
Event Busconnections 之间的发布/订阅,支持计划/cron 投递和至少一次投递保证
Bindings能力契约,使工具面向接口而非特定实现
Store发现并安装 agents、工具和模板

定义工具

类型安全、可审计、可观测,可通过 MCP 调用。

import { z } from "zod";
import { defineTool } from "~/core/define-tool";

export const CONNECTION_CREATE = defineTool({
  name: "CONNECTION_CREATE",
  description: "Create a new MCP connection",
  inputSchema: z.object({
    name: z.string(),
    connection: z.object({
      type: z.enum(["HTTP", "SSE", "WebSocket"]),
      url: z.string().url(),
      token: z.string().optional(),
    }),
  }),
  outputSchema: z.object({
    id: z.string(),
    scope: z.enum(["workspace", "project"]),
  }),
  handler: async (input, ctx) => {
    await ctx.access.check();
    const conn = await ctx.storage.connections.create({
      projectId: ctx.project?.id ?? null,
      ...input,
      createdById: ctx.auth.user!.id,
    });
    return { id: conn.id, scope: conn.projectId ? "project" : "workspace" };
  },
});

每次工具调用都会自动获得输入/输出验证、访问控制、审计日志和 OpenTelemetry 追踪。


项目结构

应用程序

工作区用途
apps/apiHono API、身份验证、工具、存储、迁移以及 deco CLI
apps/docsAstro 文档站点
apps/nativeTauri 桌面应用和本地 Rust 运行时
apps/webVite 和 React 19 管理界面

工作区用途
packages/bindings运行时验证的 MCP 能力契约
packages/create-deconpm create deco 项目脚手架 CLI
packages/e2e针对 Studio 的黑盒 Playwright 测试套件
packages/harness-runner沙箱内的编码代理测试框架进程
packages/mcp-utilsMCP 代理、网关、聚合以及沙箱原语
packages/runtime用于 MCP 服务器、OAuth、工具和触发器的运行时辅助工具
packages/sandbox代理沙箱生命周期、守护进程、分发和代理实现
packages/shared私有同构契约、SDK 工具和异步原语
packages/typegen用于 Studio 虚拟 MCP 的类型化客户端生成器
packages/ui内部 React 设计系统

开发

bun install          # Install dependencies
bun run dev          # Run the web app and API
bun test             # Run tests
bun run check        # Type check
bun run lint         # Lint
bun run fmt          # Format

应用特定命令

bun run --cwd=apps/web dev          # Vite dev server (port 4000)
bun run --cwd=apps/api dev:server   # Hono server with hot reload
bun run --cwd=apps/api migrate      # Run database migrations

Worktrees

dev:worktree 通过 Caddy 路由 http://<WORKTREE_SLUG>.localhost — 适用于运行多个工作区且无端口冲突。

# One-time setup
brew install caddy && caddy start

# Start
WORKTREE_SLUG=my-feature bun run dev:worktree

# Conductor adapter (sets WORKTREE_SLUG from CONDUCTOR_WORKSPACE_NAME)
bun run dev:conductor

随处部署

# Docker (embedded PostgreSQL)
docker compose -f deploy/docker-compose/docker-compose.yml up

# Docker (PostgreSQL)
docker compose -f deploy/docker-compose/docker-compose.postgres.yml up

# Bun
bun run build:studio && bun run --cwd=apps/api start

# Kubernetes (Helm)
helm install deco-studio oci://ghcr.io/decocms/chart-deco-studio --version <version> -n deco-studio --create-namespace

无供应商锁定。可运行于 Docker、Kubernetes、AWS、GCP 或本地运行时。

运行所需条件

层级资源占用
笔记本电脑无。单进程,嵌入式 PostgreSQL。
Docker已发布的镜像。自带 PostgreSQL 或使用嵌入式版本。
生产环境 (Helm)自带 PostgreSQL,以及可选的 NATS(事件总线唤醒)、ClickHouse + OTel Collector(追踪与分析),还有沙箱操作器(Kubernetes 上的隔离代理环境)。您的身份提供商、您的模型密钥、您的存储。

生产拓扑

graph TB
    clients["MCP clients — Cursor · Claude · VS Code · your code"]

    clients -->|"one MCP endpoint · SSO · RBAC · audit"| api

    subgraph k8s ["Kubernetes (Helm)"]
        api["Studio API + Admin UI"]
        api --> sandbox["Agent sandboxes<br/>(sandbox-operator)"]
        api -->|"notify"| nats["NATS"]
        api -->|"traces · costs"| otel["OTel Collector"]
        nats -->|"wake"| worker["Workers<br/>event bus · schedules"]
        otel --> ch[("ClickHouse")]
    end

    pg[("PostgreSQL")]
    api --> pg
    worker --> pg

    subgraph upstream ["Models & tools"]
        models["Anthropic · OpenAI<br/>OpenRouter · Ollama"]
        mcps["GitHub · Slack · Postgres<br/>your MCP servers"]
    end

    api -->|"model routing · vaulted credentials"| upstream

除 Studio 和 PostgreSQL 外,每个组件都是可选的——从小规模开始,随着部署规模的扩大再启用其余组件。


技术栈

层级技术
运行时Bun / Node
语言TypeScript + Zod
框架Hono (API) + Vite + React 19
数据库Kysely → 嵌入式 PostgreSQL / PostgreSQL
认证Better Auth (OAuth 2.1 + API keys)
可观测性OpenTelemetry
UIReact 19 + Tailwind v4 + shadcn
协议Model Context Protocol (MCP)

路线图

  • Agent 市场 — 发现、雇佣和组合 Agent
  • 声明式规划引擎
  • 成本分析和支出上限
  • 从任意浏览器远程访问
  • 实时追踪调试器
  • 带护栏的工作流编排

许可证

MIT — 参见 LICENSE.md.

有问题?builders@decocms.com


贡献

bun run fmt      # Format
bun run lint     # Lint
bun test         # Test

请参阅 AGENTS.md 了解编码指南,CONTRIBUTING.md 了解贡献流程,以及 TESTING.md 了解测试规则。

良好的起步方式:打开一个 issue,选择一个标记为 good first issue 的问题,或在 Discord 中提问。


贡献者

Studio 以开放方式构建。感谢每一位提交代码的贡献者。

Contributors to decocms/studio

维护者 — 参见 MAINTAINERS.txt:

@guitavano · @viktormarinho · @mcandeia · @pedrofrxncx · @JonasJesus42 · @aka-sacci-ccr · @vibegui · @tlgimenes · @vibe-dex · @nicacioliveira


deco 社区精心制作