我替你上班,你替我自由 —— 让 NPC 帮你处理繁琐工作,把时间留给真正重要的事
NPC 是 CNB 开源平台推出的 AI 角色功能,基于 Docker 构建,与代码仓库同源共生 —— 代码在哪里,Agent 就在哪里。你不想做的事情,NPC 帮你做。
| 你不想做的事 | NPC 帮你做 |
|---|---|
| 😫 重复回答相似问题 | 🤖 自动回复 Issue 评论 |
| 😫 审查枯燥的代码 | 🤖 自动 PR 代码审查 |
| 😫 查找文档翻半天 | 🤖 基于知识库即时问答 |
| 😫 手动创建重复 Issue | 🤖 批量创建、分类管理 |
| 😫 记不住项目细节 | 🤖 记住一切,随问随答 |
| 😫 不想写的代码 | 🤖 NPC 帮你写 |
从技术角度看,NPC 是一个以 Issue / PR 事件驱动、以云原生为底座、以 Docker 为运行环境的 [AI] Agent。
CNB 提供了两种类型的 NPC:
| 类型 | 说明 | 运行镜像 | 配置成本 |
|---|---|---|---|
| 系统 NPC(CodeBuddy) | 平台内置,全局可用 | default-codebuddy-npc | 零配置 |
| 当前仓库默认NPC | 在仓库中自定义的 NPC | default-npc-agent | 需配置 .cnb/settings.yml |
| 当前仓库自定义NPC | 在仓库中自定义的 NPC | cnb.yml 中配置的镜像 | 需配置 .cnb/settings.yml + .cnb.yml |
| 别人的NPC | 在当前仓库使用其他仓库的 NPC | 由其他仓库的 NPC 定义 | star 仓库即可 |
无论哪种 NPC,工作流程都一样:
① 在 Issue / PR 中 @NPC → ② NPC 流水线自动启动 → ③ 结果反馈到评论区
开启 替我上班 后,NPC 流水线将获得更高的操作权限。未开启时,NPC 仅能以只读方式响应。
| 未开启 | 已开启 | |
|---|---|---|
| Token 权限 | 只读 | 读写(可推送代码、创建 PR) |
| 适用场景 | 问答、知识查询 | 写代码、自动提 PR、合并分支 |
📖 权限详情参见:CNB Token 权限说明
| NPC | 仓库 | 功能 |
|---|---|---|
| π | npc/pai | 随机召唤其他 NPC 回答问题 |
| OpenClaw | Bring/AGI/OpenClaw | OpenClaw 是一个用于构建、运行和编排 AI Agent 的通用框架,支持对话、工具调用与多模型接入 |
| OpenCode | npc/open-code | 基于 OpenCode CLI 的 CNB 平台 AI Bot |
使用:
@npc/pai(π) 你帮我看看 @npc/open-code(OpenCode) 帮我根据当前的 issue 修改一下代码,修改完后提交个 pr 上来 @Bring/AGI/OpenClaw(OpenClaw) 帮我查看上海明天的天气
💡 浏览更多社区 NPC:https://cnb.cool/explore
想要一个完全符合你需求的 NPC?两步搞定。
在仓库创建 .cnb/settings.yml,设定 NPC 的身份和行为:
# .cnb/settings.yml
npc:
roles:
- name: 小助手
avatar:
src: https://cnb.cool/your-repo/-/git/raw/main/avatar.png
prompt: |
你是一个友好、专业的代码助手。
擅长回答代码、Git、CI/CD 相关问题。
回答简洁准确,必要时提供代码示例。
创建 .cnb.yml,告诉 NPC 什么时候工作。本质上是运行一条 cnb 的流水线,所以这里兼容 cnb 流水线的所有语法。
如果不配置触发场景,默认走 default-npc-agent 镜像
# .cnb.yml
.npc_task: &npc_task
- stages:
- name: npc respond
image: docker.cnb.cool/npc/base:latest
小助手:
issue.comment@npc: *npc_task # 有人在 Issue 评论中 @小助手
pull_request.comment@npc: *npc_task # 有人在 PR 评论中 @小助手
NPC 流水线运行时,以下 NPC 相关环境变量会自动注入, 完整的环境变量请参考 CNB 环境变量。
NPC 自身信息
| 环境变量 | 说明 |
|---|---|
CNB_NPC_SLUG | NPC 所属仓库路径(原始格式) |
CNB_NPC_SLUG_LOWERCASE | NPC 所属仓库路径(小写格式) |
CNB_NPC_NAME | NPC 角色名 |
CNB_NPC_SHA | NPC 仓库默认分支最新 SHA |
CNB_NPC_PROMPT | NPC 角色 Prompt |
CNB_NPC_AVATAR | NPC 角色头像 |
CNB_NPC_ENABLE_THINKING | NPC 是否开启思考 |
CNB_NPC_ENABLE_WORKMODE | NPC 是否开启工作模式 |
触发者信息
| 环境变量 | 说明 |
|---|---|
CNB_BUILD_USER_NPC_SLUG | 触发构建的NPC 的 Slug |
CNB_BUILD_USER_NPC_NAME | 触发构建的NPC 的名称 |
CNB_BUILD_USER | 触发构建的用户名 |
CNB_BUILD_USER_NICKNAME | 构建触发的用户昵称 |
创建一个传统 NPC (without-AI),监听评论区的斜杠指令(如 /close、/reopen、/hidden),自动执行对应操作。
使用:
@your-repo/指令助手 /help
指令助手会解析斜杠指令,调用 git-cnb CLI 完成操作,并回复执行结果。
每次提交 PR 时,NPC 自动审查代码质量。
流程:
每当有新 PR 创建,代码审查官会自动:
NPC 不只能写一次代码——它可以根据 Review 意见持续迭代,形成 "提需求 → 写代码 → 审查 → 修改" 的自动化循环。
你提 Issue → 召唤写 NPC 代码提 PR → 召唤 NPC 自动 Review ↓ 召唤修改代码推送更新 ↓ 代码审查官再次 Review ↓ ✅ 通过 → 等你合并
你只需要提一个 Issue,然后喝杯咖啡,回来看看 PR 是否满意即可。
这里以 Codebuddy 镜像为例,我们可以使用 Skills 来增加默认 CodeBuddy NPC 的能, Codebuddy 的 Skills 分为用户级和项目级,路径分别为 ~/.codebuddy/skills 和 /workspace/.codebuddy/skills, 有两种办法可以通 Skills 来增加技能。
直接在仓库中创建 .codebuddy/skills/ 目录,NPC 运行时会自动加载:
your-repo/ └── .codebuddy/ └── skills/ └── my-skill └── SKILL.md
FROM cnbcool/default-codebuddy-npc:latest # 方法 a: COPY 本地 skills 文件 COPY skills/ /root/.codebuddy/skills/ # 方法 b: git clone 远程仓库 RUN git clone https://cnb.cool/some/skill-repo.git /root/.codebuddy/skills/my-skill # 方法 c: npx skills add RUN npx skills add https://cnb.cool/some/skill-repo.git --agent codebuddy -y --copy
默认 NPC 运行在基础 NodeJS 镜像中。如果你的项目需要特定的语言运行时、工具链或依赖,可以自定义 NPC 的开发环境。
Tip: 从你自定义的云原生开发环境的 DockerFile 中抄
需要更多工具?构建你自己的镜像:
FROM cnbcool/default-codebuddy-npc:latest ARG GO_VERSION=1.24.5 RUN wget -q https://go.dev/dl/go${GO_VERSION}.linux-amd64.tar.gz -O /tmp/go.tar.gz &&\ tar -C /usr/local -xzf /tmp/go.tar.gz && rm /tmp/go.tar.gz ENV PATH=/usr/local/go/bin:/root/go/bin:${PATH} RUN go install -v golang.org/x/tools/gopls@latest
在 .cnb.yml 中使用:
码农go:
issues@npc:
- stages:
- name: write code
image: your-registry/your-npc-image:latest
泡咖啡前 @NPC 提个需求,咖啡端回来代码已经写好了 —— 手机上就能指挥干活,对移动办公极其友好。
每一次对话、每一行代码、每一步思考过程都沉淀在 Issue 和 PR 中,全程可追溯,不怕丢上下文。