Skip to content

二次开发 ​

本页汇总本地开发、验证命令与扩展点;下表列出仓库里能找到的入口。

文档索引 ​

想了解看哪里
环境、分层、代码约定、提交与验证规范仓库根目录的 CONTRIBUTING.md
扩展包的开关与裁剪扩展包开关与裁剪
一个扩展包的全部代码三端的 src/packs/<包名>/,后端包目录里的 pack.json 描述分级、开关、贡献与只归该包使用的依赖
扩展包评分规则scripts/pack-scorecard.mjs 文件头
Agent 事件协议与共享类型packages/contracts/src/
垂直业务清单格式packages/contracts/src/vertical-manifest.ts,示例 packages/contracts/fixtures/vertical-manifest.example.json
沙箱镜像与宿主机要求sandbox/README.md
更新日志更新日志

本地开发 ​

三端各自安装依赖、各自启动,仓库根目录没有依赖:

bash
cd server && pnpm install && cp .env.example .env && pnpm dev    # 后端,9520
cd web && pnpm install && pnpm dev                               # 用户端,9002
cd admin && pnpm install && pnpm dev                             # 管理端,9000

.env.example 的默认值是生产配置(NODE_ENV=production、ISDEV=false):会强制 gVisor(runsc)、拒绝 local 沙箱驱动,也不放行用户端开发服务器(9002)对后端的 localhost 跨域请求。本地开发先在 server/.env 里改成 NODE_ENV=development、ISDEV=true,再按需调整沙箱:本机没有 gVisor 时把 SANDBOX_DOCKER_RUNTIME 留空走 runc;没有构建出网代理镜像时设 SANDBOX_NETWORK_MODE=none;不想起 Docker 时用 SANDBOX_DRIVER=local(无隔离,仅开发)。

验证命令 ​

bash
# server
pnpm build && pnpm check:boundaries          # 构建 + 内核 / 扩展包边界
node scripts/run-jest.js --runInBand         # 单元测试(大仓建议按目录分批)

# web
pnpm type-check && pnpm test && pnpm build-check

# admin
pnpm lint && pnpm exec vite build && pnpm check:design

# packages
cd packages/contracts && pnpm check
cd packages/runtime-core && pnpm check

# 仓库根(脚本只用 Node 内置模块;评分卡另用 server 依赖里的 TypeScript,先装好 server 依赖)
node scripts/pack-scorecard.mjs --min-grade A   # 扩展包评分,CI 同款
node scripts/check-pack-removal.mjs --all       # 逐包删除验证,慢;发布前或改内核边界后跑

格式化在各端子目录运行 pnpm format,仓库没有 git hook。

扩展点一览 ​

  • 新的登录渠道、模型协议、存储厂商、计费实现、内容过滤、渠道绑定:写一个包,向内核注册表或端口登记,不改内核。
  • 第三方工具:配置 MCP 服务器即可,见 外部接入。
  • 沙箱内能力:站点技能目录里的 SKILL.md 与沙箱镜像内的软件。
  • 进程外渠道服务:渠道网关的两个接口。
  • 垂直业务:一份清单文件导入站点配置、MCP 服务器、技能与套餐预设。