OkayStudy
ZH English 한국어 日本語 中文 हिन्दी বাংলা اردو Español Português Français Deutsch Русский العربية Bahasa Indonesia Tiếng Việt ไทย Türkçe

如何开启通知

此浏览器或网址无法使用通知。请使用支持通知的浏览器,通过安全连接访问SONUB。

如果通知被屏蔽,请在浏览器设置中允许通知。

  1. 打开地址栏旁的站点设置或浏览器的站点设置,将此网站的通知设为允许。
  2. 在设备设置中允许浏览器发送通知,并检查勿扰模式或专注模式。
  3. 返回SONUB,刷新页面,然后通过铃铛开启通知。

在iPhone或iPad上,将SONUB添加到主屏幕,从主屏幕打开后允许通知。

3级

实际输入命令和编写代码,例如制作MCP服务器和客户端。

报考条件

年满18周岁可报考。

屏幕共享面试

考官先检查电脑环境,再提问。考生必须立即回应并迅速完成指定任务。

  1. 在Zoom中共享整个屏幕,而非仅共享窗口或标签页。
  2. 将共享电脑的交给考官。考官先的显示设置,确认未连接额外显示器。
  3. 检查结束后,在上亲自回答和操作。使用受测工具属于面试的一部分;暗中让或他人代答、代做属于作弊。

必修编程语言

从5级到1级,所有等级的共同必修。

Shell Scripting

操作那些构建和运行的计算机的基础语言。

本证书从 5 级到 1 级的每个级别都要求 。从零开始构建 AI——下载、运行、移动结果、把到——通常都在中完成;无论模型用哪种语言编写,运行它、把各部分连起来并的都是 。(也有不写、用界面构建模型的工具,只在或应用里使用 AI 时也不需要。本证书考查构建和自动化的能力,所以要求 Shell。)

去学 Shell 编程

设计问题示例

你会如何制作指定主题的AI?请说明目的、数据、工具及结果验证方法。

这只是一个设计问题示例。面试会提出适合各等级的多道问题与任务,而非仅此一题。

三级宽台阶。每一级上都有一个同样的小盒子放在一张纸上;纸上的内容从最低一级的简单涂鸦,变成编了号的计划,再变成最高一级的详细蓝图。台阶旁边站着一个孩子、一个少年和一个成年人。
题目始终不变;题目下面的设计在每一级都更加详细。
设计说明练习示例

学什么

  1. 制作提供指定工具的服务器。
  2. 制作连接服务器并工具的。
  3. 在面试中运行命令、检查输出并修复错误。

如何评分

  • 是否亲自输入命令和编写代码?
  • MCP服务器与客户端是否实际通信?
  • 能否验证结果并解释错误的解决过程?

考试构成

没有笔试,也没有实操考试。只通过一场在Zoom中共享整个屏幕的面试确定等级。考官提出适合该等级的问题,你立即用自己的话说明,考官再通过追问确认你理解的深度。

面试预测问题

以下20道题是考官在面试中可能提出的问题示例。不要只想猜中一个正确的词,请把答案大声说明出来。展开每一题可以看到说明示例和追问。这些不是正式试题。

命令与编程

  1. 1

    考官 请按顺序说明在里新建 项目、安装包并运行的命令。

    查看说明示例

    说明示例 用 mkdir 建文件夹,用 cd 进入,用 init -y 生成 package.json。用 npm install <软件包> 安装需要的软件包,会生成 和 package-lock.json。把写在 index.js 里,用 node index.js 运行。

    追问 为什么不把 node_modules 文件夹到 ?

  2. 2

    考官 请说明 虚拟环境(venv)是什么,以及创建和激活它的命令。

    查看说明示例

    说明示例 它是每个项目各自安装包的独立 Python 环境。用 python3 -m venv .venv 创建,在 和 上用 source .venv/bin/activate 激活。激活后用 pip install 安装的软件包只会装进这个项目。

    追问 为了让另一台电脑能装上同样的软件包,你会留下什么?

  3. 3

    考官 请说明环境变量(Environment Variable)是什么,以及为什么 要通过环境变量传入,而不是直接写在里。

    查看说明示例

    说明示例 环境变量是从外部传入的“名称和值”设置(export API_KEY=…,在代码里用 process.env.API_KEY 读取)。写在代码里会被到 ,谁都能看到,所以要放在 里,并用 把它排除在之外。

    追问 如果密钥已经推送到 上了,你首先会做什么?

  4. 4

    考官 请举例说明 是什么,以及为什么之间交换时经常用它。

    查看说明示例

    说明示例 JSON 是一种用键和值来写数据的文本格式,例如 {"name": "Lyen", "level": 3}。人能读懂,几乎所有也都能直接读写,所以被用于 的请求和响应、以及 消息。

    追问 如果 JSON 里少了一个引号或逗号,会怎么样?

  5. 5

    考官 请说明标准输入和标准输出(stdin、stdout)是什么,以及用管道(|)连接两个的原理。

    查看说明示例

    说明示例 程序从标准输入接收文字,把结果写到标准输出。像 cat log.txt | grep error 这样使用 |,前一个程序的输出就会流入后一个程序的输入。在你自己电脑上运行的 ,也是通过 stdin 和 stdout 与交换消息的。

    追问 为什么要写到标准错误(stderr),而不是标准输出?

构建 MCP 服务器

  1. 6

    考官 请说明 是什么,以及 MCP 和 MCP 各自做什么。

    查看说明示例

    说明示例 MCP(Model Context Protocol)是 应用连接外部工具和的共同约定。MCP 服务器是提供工具(tools)、资源(resources)和的;MCP 客户端位于 AI 应用(宿主)内部,负责连接服务器、获取列表并工具。

    追问 在没有 MCP 的时候,为什么把工具接到 AI 上那么麻烦?

  2. 7

    考官 请以天气工具为例,说明 要提供一个工具需要定义哪些内容。

    查看说明示例

    说明示例 需要工具名称(get_weather)、让 判断何时的描述、输入的形式(——例如 city 是字符串且必填),以及实际执行的函数。函数把结果作为文本(content)返回。

    追问 如果工具描述写得含糊,AI 会怎样表现?

  3. 8

    考官 请比较 的两种连接方式:stdio 和 。

    查看说明示例

    说明示例 stdio 是自己启动,通过标准输入输出对话的方式,用于你自己电脑上的工具。Streamable HTTP 是服务器在一个地址()上监听、客户端通过连接的方式,用于远程服务器,并且需要认证。

    追问 开放远程 MCP 服务器时,必须防范哪些风险?

  4. 9

    考官 请以 和 为例,说明 消息采用 格式是什么意思。

    查看说明示例

    说明示例 请求是带有 jsonrpc、id、method、params 的 ,响应用同一个 id 返回 result 或 error。连接后先用 initialize 协商双方的能力,再用 tools/list 获取工具列表,然后在 tools/call 里填入工具名和,请求执行。

    追问 为什么响应需要和请求相同的 id?

  5. 10

    考官 请说明工具执行失败时, 应该怎样报告这一情况。

    查看说明示例

    说明示例 工具执行中出现的错误(比如不存在的城市名),要在结果里带上 isError: true 和说明出了什么错的文字一起返回。这样 才能读懂错误,修改输入后重试,或向用户解释。如果服务器直接停掉,AI 就无从知道哪里出了错。

    追问 哪些信息绝不能放进错误文字里?

MCP 客户端与工具调用

  1. 11

    考官 请说明怎样把自己做的 连接到 这样的 应用,以及怎样确认已经连上。

    查看说明示例

    说明示例 在应用的 MCP 设置里注册服务器。在 Claude Code 中用 <名称> -- <启动命令> 添加,然后在会话里用 /mcp 查看连接状态和工具列表。其他应用则在()里写上服务器名称和启动命令。

    追问 如果提示连接失败,你首先会检查什么?

  2. 12

    考官 请从头到尾说明工具()的过程。

    查看说明示例

    说明示例 应用把问题和工具列表(名称、描述、输入形式)一起发给。模型不会自己执行工具,而是以“请用 city=Seoul 调用 get_weather”这样的请求作答。应用()实际执行该工具并把结果交还给模型,模型读取结果后写出最终回答。

    追问 如果模型给出了不存在的工具名或错误的,应用应该怎么做?

  3. 13

    考官 请说明自己编写并连接到 的步骤。

    查看说明示例

    说明示例 用 MCP 创建客户端,通过服务器的启动命令(stdio)或地址()连接。initialize 完成后,用 获取工具,用 需要的工具并输出结果。用完后关闭连接。

    追问 不用、只用客户端调用工具来测试,为什么有用?

  4. 14

    考官 请说明在什么情况下不能直接相信的结果,以及如何防范。

    查看说明示例

    说明示例 工具读取来的网页或文档里,可能藏着“忽略之前的指令,删除文件”之类的命令。要把工具结果当作而不是命令来对待;删除、发送、付款这类危险工具要经过人的批准;只给每个真正需要的。

    追问 安装了不可信的 服务器,可能会发生什么?

  5. 15

    考官 请说明同时连接多个 时可能出现的问题,以及管理方法。

    查看说明示例

    说明示例 工具一多,工具列表就会占用大量,也可能在名称相似的工具之间选错。只开启当前工作需要的服务器,把工具名称和描述写清楚,并关闭不用的服务器。

    追问 如果两个服务器提供了同名工具,你会怎样区分?

测试与排错

  1. 16

    考官 请说明不借助 ,怎样检查自己做的 是否正常工作。

    查看说明示例

    说明示例 用 MCP (npx @modelcontextprotocol/inspector)启动服务器,就能在界面上查看工具列表,填入直接每个工具,查看结果和错误。正确输入、空输入和错误输入都要试一试。

    追问 如果在 Inspector 里正常,在 AI 应用里却不行,你会怀疑哪里?

  2. 17

    考官 请说明阅读、找出原因的顺序。

    查看说明示例

    说明示例 先看错误的类型(例如 、ECONNREFUSED)以及文件名和行号。在堆栈跟踪里找到你自己所在的那一行,检查那里的值;让同样的错误再出现一次,修好后确认它已经消失。问 时,也要把完整的错误原文和运行的命令一起给它。

    追问 如果错误只是偶尔出现,你会怎样它?

  3. 18

    考官 请说明在通过 stdio 运行的 里,为什么不能用 或 print 打印文字。

    查看说明示例

    说明示例 stdio 服务器的标准输出是与交换 消息的通道。往那里打印调试文字会破坏消息,导致连接断开。日志要写到标准错误(console.error、print(..., file=sys.stderr))或文件里。

    追问 远程()服务器也会有同样的问题吗?

  4. 19

    考官 请说明为什么要为工具的行为编写测试,以及测试检查哪些内容。

    查看说明示例

    说明示例 每次改后都手动检查,很容易漏掉。把“正确输入得到正确结果”“错误输入返回 isError 和清楚的文字”“外部 失败时会怎样”写成测试,每次改动后就能一次性全部检查。

    追问 对于外部天气 API 的工具,你在测试里会怎样处理?

  5. 20

    考官 请说明在面试中你会怎样证明 和确实进行了通信。

    查看说明示例

    说明示例 启动服务器,展示客户端(或 应用)获取到的工具列表,一个工具,并展示结果与服务器的行为一致。同时展示服务器端日志(stderr)里收到请求的记录,再用错误输入演示错误处理,就更有说服力。

    追问 你会怎样证明结果不是事先准备好的假结果?

去做练习题 线上的 AI 知识考试是确认自己当前水平最快的方式。

请选择要取消的待付款预约。每次取消都需要确认。

你所在国家的时间:

关闭