logo
11
11
WeChat Login
docs: 更新 README 中 NPC 流水线默认镜像说明

🎮 NPC Playground

我替你上班,你替我自由 —— 让 NPC 帮你处理繁琐工作,把时间留给真正重要的事

目录


🤖 什么是 NPC?

NPC 是 CNB 开源平台推出的 AI 角色功能,基于 Docker 构建,与代码仓库同源共生 —— 代码在哪里,Agent 就在哪里。你不想做的事情,NPC 帮你做。

你不想做的事NPC 帮你做
😫 重复回答相似问题🤖 自动回复 Issue 评论
😫 审查枯燥的代码🤖 自动 PR 代码审查
😫 查找文档翻半天🤖 基于知识库即时问答
😫 手动创建重复 Issue🤖 批量创建、分类管理
😫 记不住项目细节🤖 记住一切,随问随答
😫 不想写的代码🤖 NPC 帮你写

从技术角度看,NPC 是一个以 Issue / PR 事件驱动、以云原生为底座、以 Docker 为运行环境的 [AI] Agent。


📦 如何使用 NPC

CNB 提供了多种不同类型的 NPC:

类型说明运行镜像配置成本
系统 NPC(CodeBuddy)平台内置,全局可用default-codebuddy-npc零配置
当前仓库默认NPC在仓库中自定义的 NPCdefault-npc-agent需配置 .cnb/settings.yml
当前仓库自定义NPC在仓库中自定义的 NPCcnb.yml 中配置的镜像需配置 .cnb/settings.yml + .cnb.yml
别人的NPC在当前仓库使用其他仓库的 NPC由其他仓库的 NPC 定义star 仓库即可

工作流程

无论哪种 NPC,工作流程都一样:

① 在 Issue / PR 中 @NPC → ② NPC 流水线自动启动 → ③ 结果反馈到评论区

"替我上班"模式

开启 替我上班 后,NPC 流水线将获得更高的操作权限。未开启时,NPC 仅能以只读方式响应。

未开启已开启
Token 权限只读读写(可推送代码、创建 PR)
适用场景问答、知识查询写代码、自动提 PR、合并分支

📖 权限详情参见:CNB Token 权限说明

社区 优秀NPC 示例

NPC仓库功能
OpenClawBring/AGI/OpenClawOpenClaw 是一个用于构建、运行和编排 AI Agent 的通用框架,支持对话、工具调用与多模型接入
OpenCodenpc/open-code基于 OpenCode CLI 的 CNB 平台 AI Bot
以鹅传鹅-Pronpc/mtga在任意 CNB 仓库的 Issue 或合并请求(PR)评论中 @NPC 即可触发,AI 会自动分析上下文并完成任务。
πnpc/pai随机召唤其他 NPC 回答问题

使用:

@npc/pai(π) 你帮我看看 @npc/open-code(OpenCode) 帮我根据当前的 issue 修改一下代码,修改完后提交个 pr 上来 @Bring/AGI/OpenClaw(OpenClaw) 帮我查看上海明天的天气

💡 浏览更多社区 NPC:https://cnb.cool/explore


🛠️ 自定义 NPC

想要一个完全符合你需求的 NPC?两步搞定。

Step 1:定义 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 相关问题。 回答简洁准确,必要时提供代码示例。

Step 2:配置触发场景

创建 .cnb.yml,告诉 NPC 什么时候工作。本质上是运行一条 cnb 的流水线,所以这里兼容 cnb 流水线的所有语法。

如果不配置触发场景,默认走 default-npc-agent 镜像

# .cnb.yml .npc_task: &npc_task - stages: - name: npc respond image: docker.cnb.cool/npc/mtga:latest # 也可以替换成任意一个npc镜像 小助手: issue.comment@npc: *npc_task # 有人在 Issue 评论中 @小助手 pull_request.comment@npc: *npc_task # 有人在 PR 评论中 @小助手

附:NPC 相关的环境变量

NPC 流水线运行时,以下 NPC 相关环境变量会自动注入, 完整的环境变量请参考 CNB 环境变量

NPC 自身信息

环境变量说明
CNB_NPC_SLUGNPC 所属仓库路径(原始格式)
CNB_NPC_SLUG_LOWERCASENPC 所属仓库路径(小写格式)
CNB_NPC_NAMENPC 角色名
CNB_NPC_SHANPC 仓库默认分支最新 SHA
CNB_NPC_PROMPTNPC 角色 Prompt
CNB_NPC_AVATARNPC 角色头像
CNB_NPC_ENABLE_THINKINGNPC 是否开启思考
CNB_NPC_ENABLE_WORKMODENPC 是否开启工作模式

触发者信息

环境变量说明
CNB_BUILD_USER_NPC_SLUG触发构建的NPC 的 Slug
CNB_BUILD_USER_NPC_NAME触发构建的NPC 的名称
CNB_BUILD_USER触发构建的用户名
CNB_BUILD_USER_NICKNAME构建触发的用户昵称
CNB_COMMENT_BODY触发构建的评论内容

🎬 实战场景

场景 1:自定义指令机器人

创建一个传统 NPC (without-AI),监听评论区的斜杠指令(如 /close/reopen/hidden),自动执行对应操作。

    1. NPC 角色注册
    1. NPC 角色镜像
    1. NPC 流水线配置

使用:

@your-repo/指令助手 /help

指令助手会解析斜杠指令,调用 git-cnb CLI 完成操作,并回复执行结果。


场景 2:使用 NPC 来做代码 Review

每次提交 PR 时,NPC 自动审查代码质量。

流程:

每当有新 PR 创建,代码审查官会自动:

  1. 阅读 PR 的所有变更文件
  2. 逐文件给出审查意见
  3. 在 PR 评论中输出审查报告

场景 3:使用 NPC 持续写代码

NPC 不只能写一次代码——它可以根据 Review 意见持续迭代,形成 "提需求 → 写代码 → 审查 → 修改" 的自动化循环。

你提 Issue → 召唤写 NPC 代码提 PR → 召唤 NPC 自动 Review ↓ 召唤修改代码推送更新 ↓ 代码审查官再次 Review ↓ ✅ 通过 → 等你合并

你只需要提一个 Issue,然后喝杯咖啡,回来看看 PR 是否满意即可。


NPC 增强

1. 添加 Skills

这里以 Codebuddy 镜像为例,我们可以使用 Skills 来增加默认 CodeBuddy NPC 的能, Codebuddy 的 Skills 分为用户级和项目级,路径分别为 ~/.codebuddy/skills/workspace/.codebuddy/skills, 有两种办法可以通 Skills 来增加技能。

方式 1:在代码仓库中添加 Skills

直接在仓库中创建 .codebuddy/skills/ 目录,NPC 运行时会自动加载:

your-repo/ └── .codebuddy/ └── skills/ └── my-skill └── SKILL.md

方式 2:在 NPC 镜像中内置 Skills

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

2. 添加开发环境

默认 NPC 运行在基础 NodeJS 镜像中。如果你的项目需要特定的语言运行时、工具链或依赖,可以自定义 NPC 的开发环境。

Tip: 从你自定义的云原生开发环境的 DockerFile 中抄

自定义 Docker 镜像

需要更多工具?构建你自己的镜像:

FROM cnbcool/default-npc-agent: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 中,全程可追溯,不怕丢上下文。