构建项目
创建内建项目或导入 GitHub 仓库,配置自己的上下文,通过 Git 发布并更新到 Cappy。
Cappy 中的每个项目都有一个上下文仓库。你在本地维护数据库配置、规则和文档,通过 Git 发布;Cappy 从项目仓库取得文件,供 Agent 分析时使用。
先按安装部署安装 Cappy,然后打开 Web 注册或登录。本文以 Doris 为例,介绍如何接入自己的数据;my-project 代表 Web 项目名称和本地项目文件夹。
创建项目
在左上角项目选择器中点击添加项目。页面上方是示例项目入口;使用自己的数据时,在下方选择创建内建项目或从 GitHub 导入:
| 方式 | 适用情况 | 后续更新提交到哪里 |
|---|---|---|
| 创建内建项目 | 从零开始,或将已有本地上下文交给 Cappy 托管 | Cappy 提供的项目仓库地址 |
| 从 GitHub 导入 | 已有完整的 Cappy 上下文仓库 | 原 GitHub 仓库 |
组织成员可以创建项目,创建者会获得该项目的管理员权限。同一组织内的项目名称不能重复。

已有 GitHub 上下文仓库时,可以直接按从 GitHub 导入操作。
创建内建项目
在 Web 中创建项目
在创建内建项目卡片中输入项目名创建项目,成功后页面会显示克隆命令,仓库地址和后续步骤。
新仓库自带 config.yaml,初始内容为:
databases: []获取密钥并克隆仓库
在个人设置中获取 API 密钥,用于访问 Cappy 项目仓库。
将下面的 <PROJECT_REPOSITORY_URL> 替换为项目页面提供的地址:
git clone '<PROJECT_REPOSITORY_URL>' my-project
cd my-projectgit clone 询问用户名和密码时,用户名可以填写自己的邮箱,密码填写 Cappy API 密钥。
密钥按持有者的项目权限访问仓库:读取需要分析师或更高权限,推送需要上下文管理员或项目管理员权限。
初始化本地上下文
cappy init 用于配置数据库连接,并生成项目的上下文文件。在克隆的项目目录中运行:
cappy init填写数据库连接
Set up database connections?
> y
Select database type:
> Doris以 Doris 为例,按提示填写连接信息。
| 提示 | 填写说明 |
|---|---|
Connection name | 填自定义连接名称,例如 warehouse。Cappy 用它区分数据源。 |
Host | 填 Doris FE 地址,例如 doris.example.com。 |
Port | 填 FE 的 MySQL 协议端口,默认 9030。 |
Username | 填 Doris 用户名,例如 analytics_reader。 |
Password | 填 Doris 密码。输入时会隐藏。 |
Catalog(可选) | 填 Catalog 名称,例如内置的 internal。 |
Default database(可选) | 填默认连接的库名,例如 analytics。 |
Schema to sync(可选) | 填要同步的库名,例如 analytics。 |
其他数据库的连接字段见接入数据库。
暂时不连接数据库时,选择 n。项目没有数据库连接时,cappy init 会添加 DuckDB 示例数据。只需准备项目文件时,可以运行 cappy init --minimal,再选择 n 跳过连接。
确认生成结果
初始化把连接写入 config.yaml,并生成下面的文件和目录。数据库依赖就绪时,初始化还会检查连接。
my-project/
├── config.yaml
├── RULES.md
├── .cappyignore
├── docs/
├── databases/
├── semantics/
├── agent/
│ ├── mcps/
│ ├── skills/
│ ├── tools/
│ └── prompts/
└── tests/
├── config.yaml
└── example.yml| 文件或目录 | 用途 |
|---|---|
config.yaml | 保存数据库连接和语义层配置。 |
RULES.md | 编写团队的分析规则。 |
.cappyignore | 指定 Agent 文件工具与搜索忽略的文件。 |
docs/ | 存放业务文档。 |
databases/、semantics/ | 存放数据库和语义层的同步产物。 |
agent/ | 存放 MCP、技能、工具和提示词文件。 |
tests/ | 存放评估配置与用例。 |
已有本地上下文时,也可以把配置、规则、文档等复制到这个克隆目录。保留克隆目录自己的 .git,沿用新项目的仓库历史。
需要添加其他数据库连接时,再次运行 cappy init,在 Add more database connections? 处选择 y。修改已有连接时,直接编辑 config.yaml。已有非空的规则和其他上下文文件会保留。
cappy init 会重新保存 config.yaml,密码和已有环境变量引用可能被写为明文。提交前,按下文配置并同步上下文设置密码的环境变量引用,并检查 Git 差异。
从 GitHub 导入
准备仓库和访问令牌
在 GitHub 仓库根目录放入 config.yaml、RULES.md 和其他上下文文件。准备一个能读取该仓库的 GitHub 访问令牌。
填写并导入
打开添加项目 → 从 GitHub 导入,填写以下信息。
| 字段 | 填写说明 |
|---|---|
| 项目名称 | 输入有效仓库地址后会自动带入仓库名。可以改为自己的项目名,例如 my-project。 |
| GitHub 访问令牌 | 填写能读取该仓库的 GitHub 访问令牌。 |
| 仓库地址 | 填写包含 .git 后缀的 HTTPS 地址,例如 https://github.com/owner/my-project.git。 |
点击导入仓库。成功页面会显示仓库地址和实例上的检出路径。点击进入项目,在上下文中查看文件。
用本机的 GitHub 凭据克隆原仓库,后续修改也推送到该仓库。
git clone https://github.com/owner/my-project.git my-project
cd my-project配置并同步上下文
以下命令均在本地 my-project 目录中执行。已有完整上下文的项目可以核对配置后直接同步。
配置数据与文档
-
在
config.yaml中,将 Doris 连接的password改为环境变量引用。下面沿用前面创建的warehouse连接。config.yaml databases: - name: warehouse type: doris host: doris.example.com port: 9030 user: analytics_reader password: {{ env('DB_PASSWORD_YAML') }} catalog: internal database: analytics schema_name: analytics templates: - columns - preview -
在运行
cappy debug和cappy sync的终端设置DB_PASSWORD_YAML。换成实际密码时,保留 JSON 字符串的双引号,特殊字符按 JSON 转义。编码方法见接入数据库。export DB_PASSWORD_YAML='"your-database-password"' -
将业务说明放入
docs/,在RULES.md中引用相关文件。需要补充指标定义时,见语义层。规则写法见规则与自定义上下文。
使用本地 .env 或凭据文件时,将它们加入 .gitignore。
验证连接并生成上下文
运行以下命令检查数据库连接。
cappy debug确认 warehouse 显示 Connected 后,再运行同步。
cappy sync同步完成后,在 databases/ 中查看生成的 columns.md 和 preview.md。配置了语义层时,在 semantics/ 中查看同步产物。
发布和更新上下文
首次发布和后续更新都通过同一个 Git 流程完成。
提交并推送修改
修改数据源或数据库结构后,先验证连接并同步。在本地工作副本中检查改动,暂存后查看差异。
git status --short
git diff
git add .
git diff --staged确认暂存内容只包含要发布的文件,检查是否混入密码、令牌或本地凭据文件。
在项目设置 → 仓库访问中确认跟踪分支。下面以内建项目的 main 为例。GitHub 项目将命令中的 main 换成导入时跟踪的分支。通过其他分支审阅的修改,合并到跟踪分支后再同步。
git commit -m "Update project context" && git push origin main让 Cappy 取得最新文件
打开项目设置 → 仓库访问,点击立即同步,查看页面提示。
- 已拉取最新上下文:运行中的项目已更新到仓库版本。
- 已是最新:实例当前提交与仓库中的跟踪分支一致。

内建仓库收到推送后会立即请求同步。
默认使用手动拉取。需要定期更新时,将拉取方式改为自动拉取并选择间隔。默认每 5 分钟拉取一次。

上下文管理员和项目管理员可以手动同步。修改拉取方式和间隔需要项目管理员权限。
同步失败时,检查仓库是否可访问、跟踪分支是否正确。GitHub 项目还需检查导入令牌能否读取仓库。
配置实例凭据
本地终端中的环境变量不会随 Git 推送传到实例。发布含有变量引用的配置后,由项目管理员打开项目设置 → 环境变量,填写并保存相应的值。
例如,本篇配置会列出 DB_PASSWORD_YAML;在实例中也填写 JSON 字符串形式的密码,例如 "your-database-password",包含双引号。Cappy 实例需要能访问配置中的数据库地址,并取得相应凭据。

在 Web 中分析数据
打开上下文,确认刚发布的 RULES.md、业务文档和表说明已经出现。新建对话,使用组织已配置的模型;没有可用模型时,请组织管理员按组织设置添加。
先问一个你能核对结果的问题,例如:
analytics 库中有哪些表?请选择一张表查询 5 行数据,并解释各字段的含义。发送后,展开回复中的 SQL 卡片,核对所用的连接、数据表和返回数据。确认 Agent 能查询自己的数据后,再结合团队的业务定义进行分析。