企业级 Coding Agent 配置中台
一次配置,全团队生效。让 AI 编码助手从"个人工具"进化为"组织能力"。
当你的团队从"一个人用 Claude Code"扩展到"五十个人用不同的 Coding Agent",混乱就开始了:
- 🔑 API Key 满天飞 — 每个人的
~/.claude.json里都躺着明文 Token,离职回收像噩梦 - 🧩 配置碎片化 — 有人用 Claude Code,有人用 Codex,有人用 Pi,每个 Agent 的配置格式都不一样
- 🛠️ Skills 各自为战 — 每个人写自己的 skill,好用的经验沉淀不下来,新人上手从零开始,团队知识无法复用
- 🎯 模型选型失控 — 谁在用贵的?谁该用便宜的?没数据,全凭感觉
- 📢 公告触达为零 — 模型升级了、Token 涨价了、突发故障了,没人知道怎么通知到 Agent 使用者
- 🚨 设备无感知 — 哪些机器在跑 Agent?配置版本一致吗?有没有配置漂移?
- 📝 经验无法提炼 — 每个工程师跟 AI 的协作过程全是黑盒,高手怎么用 Prompt、踩了什么坑、怎么绕过去的,全随离职带走,组织毫无沉淀
Leycode 解决的就是这个问题。
┌─────────────────────────────────────────────────────────┐
│ Leycode 中台 │
│ │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌─────────┐ │
│ │ 配置管理 │ │ 模型治理 │ │ 设备管控 │ │ 可观测性 │ │
│ │ │ │ │ │ │ │ │ │
│ │ Profile │ │ 别名映射 │ │ 注册码 │ │ 用量统计 │ │
│ │ 分发 │ │ Tier 策略 │ │ 凭证吊销 │ │ 分发日志 │ │
│ │ 回滚 │ │ 端点网关 │ │ 漂移检测 │ │ 公告推送 │ │
│ │ Skills │ │ │ │ │ │ │ │
│ └──────────┘ └──────────┘ └──────────┘ └─────────┘ │
│ │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ Agent 客户端(Claude / Codex / Pi) │ │
│ │ GET /api/agent/config → 统一配置下发 │ │
│ └─────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────┘
| 能力 | 说明 |
|---|---|
| 📦 配置 Profile | 统一管理 Agent 配置(managed-settings、Codex TOML、Pi providers),一键发布 / 回滚 / 复制 |
| 👥 分组治理 | 按团队/项目划分 Agent Group,不同组不同 Profile,成员角色权限控制 |
| 🧠 模型别名与路由 | llm-prime / llm-lite / llm-omni 三级 Tier,实时映射到上游模型,按需切换 |
| 🔐 设备与凭证 | 一次性注册码接入,设备清单 + 在线状态,支持凭证吊销和配置漂移告警 |
| 📊 用量可观测 | Token 消耗趋势、模型别名占比、每日请求数,谁用得多一目了然 |
| 🚪 网关设置 | 数据面拓扑可视化,keyless-proxy 能力开关,Anthropic / OpenAI 双端点兼容 |
| 📢 公告系统 | Critical / Warn / Info 三级公告,支持定向分组推送,过期自动失效 |
| 📝 分发审计(后台留痕)& 经验提炼 | 完整的 poll / apply / restore / error 留痕链路落库于后台(本期前台不做审计页面),可追溯每次配置变更;日志供后续挖掘协作模式、沉淀可复用经验 |
| 🛠️ Skills 集中分发 | 团队 Skills 统一管理、版本化发布,新人开箱即用,好经验全组沉淀,不再各自为战 |
基于 Vercel Geist 设计系统,简洁、专业、信息密度适中。深色侧边栏 + 浅色内容区,符合企业级中台审美。
# 安装依赖
npm install
# 启动开发服务器
npm run dev # → http://localhost:5173
# 生产构建
npm run build # → dist/
# 类型检查
npm run lint| 类别 | 选型 |
|---|---|
| 框架 | React 18 + TypeScript(严格模式) |
| 构建 | Vite 5 |
| 样式 | Tailwind CSS + shadcn/ui 风格组件(Radix 原语) |
| 设计系统 | Vercel Geist Light — 字体、颜色、圆角、阴影 token |
| 图表 | Recharts |
| 图标 | Lucide React |
| 路由 | React Router v6 |
src/
├── components/
│ ├── ui/ # shadcn 风格基础组件(Button / Card / Table / Dialog…)
│ ├── layout/ # Sidebar / Topbar / AppLayout / Nav
│ ├── stat-card.tsx # 仪表盘统计卡片
│ └── json-viewer.tsx # JSON 配置查看器
├── data/ # 类型定义 + 内存 Mock 数据 + 选择器
├── lib/ # 工具函数(cn / 时间格式化 / 常量)
├── pages/ # 各路由页面
├── App.tsx # 路由装配
├── main.tsx # 入口
└── index.css # Geist Light 主题 tokens
| 路由 | 页面 | 亮点 |
|---|---|---|
/ |
总览 Dashboard | 统计卡片 + Token 用量趋势图 + 分发事件 + 推理节点 |
/groups |
分组管理 | 卡片网格,成员/设备/最新 revision 一目了然 |
/groups/:id |
分组详情 | 成员 / 设备 / Profile 三 Tab,设备漂移高亮 |
/profiles |
配置 Profile | 列表 + 多维过滤(分组/状态/搜索) |
/profiles/:rev |
Profile 详情 | 概览 / Agent 配置 / 模型映射 / JSON 查看器 |
/models |
模型与别名 | 别名→上游映射卡 + GPU 推理集群健康表 |
/devices |
设备与凭证 | 列表 + 过滤 + 行内操作(复制/同步/吊销) |
/announcements |
公告管理 | 三级 Tab + 左色条 + 定向/全局/过期标签 |
/usage |
用量统计 | 堆叠柱状图 + 别名饼图 + 每日请求数 |
/gateway |
网关设置 | 数据面拓扑 + 端点/凭证/能力开关 |
/enroll-codes |
注册码 | 一次性注册码 + 生成 + 复制 |
/settings |
通用设置 | 站点 / 分发参数 / 默认 Prompt |
Mock 数据严格对齐 SQLite schema(migrations/002_agent_distribution.sql):
agent_groups · agent_group_members · agent_config_profiles · agent_clients · agent_distribution_log · announcements + 网关用量 & GPU 节点
真实模型别名映射:
llm-prime→glm-5.1(旗舰推理)llm-lite→glm-4.7-flash(轻量快速)llm-omni→qwen3.5-9b(全场景均衡)
端点:https://api.leycode.com(Anthropic 兼容)/ …/v1(OpenAI 兼容)
| 分支 | 说明 |
|---|---|
main |
基线 |
mock |
当前 Mock 实现 |
不接管 Agent 执行,只统一治理配置。
Leycode 定位为"配置分发层",而非"Agent 运行时"。Agent 客户端(Claude Code / Codex / Pi)仍然是本地执行的,Leycode 做的事情是:谁来用、用什么模型、什么权限、什么系统 Prompt — 这些决策从个人手里收归到组织层面。
Made with ❤️ for teams that take AI coding seriously.