字节 Agent 平台二面真题

上一课拆了系统提示这套"大脑纪律",这课拆它的"手":模型看不见你的实现,只读那段描述和 schema,Claude Code 怎么靠这个把工具调用收稳。

先把术语翻成人话

工具 tool :agent 能调的一个动作,比如读文件、跑命令

input schema :规定这个工具该传哪些参数、什么格式

ACI :专为 agent 设计的工具界面(不是给人用的命令行)

结果回灌 :把工具跑出来的结果喂回给模型看

一、面试现场

面试官提问

“Agent 工具一多就乱调,Claude Code 是怎么稳住的?”

字节 Agent 平台二面。面试官:你给 agent 加过工具吗,模型怎么知道该调哪个、传什么参数?候选人:写个函数注册上去,模型自己会调。

面试官追问:那工具一多、功能还重叠,模型老选错怎么办?——看似问调工具,实考你能不能区分「万能工具」和「专用工具」:模型只读描述和参数约束,接口越泛,越容易选错、传错。

**直接回答:**稳不是靠自觉,是工具层收窄自由度。

你写的实现,模型看不见。它能读到的只有工具的名称、描述和 schema;这三样写成什么样,它就照着调成什么样。

二、先看公开工具表

典型翻车回答

“工具就是函数调用,把函数签名给模型就行了。”

这话把模型当成了能读你代码的人。可模型看不见你的实现,只读你写给它的描述和 schema。描述写烂,它就乱调、瞎传参。工具设计有多稳,agent 的手就有多稳。先看 Claude Code 公开的这组工具:

ReadGrepGlob 是读和搜索

EditWrite 是改文件,权限规则单独管

Bash 是跑命令,命令模式和输出长度也单独管

这组工具的关键不在数量,在它把不同副作用拆开了:读、搜、改、跑各走各的入口,风险不同,约束也不混进一个万能口子。接口本身先收窄了,这是模型乱调的第一道防线。

但拆开只是第一步。工具一多、功能还重叠,模型照样选错、传错,光这张表挡不住。Claude Code 真正调得稳,是在这组工具之上又加了三道收窄自由度的关卡(截至 2026-06)。下面逐道拆。

三、Claude Code 是怎么稳住的

它收窄自由度,是顺着"选哪个 → 怎么改 → 结果怎么回"一层层卡的,每层都能在你自己机器上验证。

① 先收窄"选哪个":专用工具,不是一个万能 Bash

CC 给的是一组专用工具:Read/Grep/Glob 只读默认放行,Edit/Write/Bash 有副作用单独走权限;连权限都不是一把尺:Bash(npm run *) 管命令模式,Edit(path) 管写哪个路径。

万能 Bash 把读搜改删全混进一条命令字符串,模型只能在含糊的口子里发挥。拆成专用工具,模型"选哪个"的空间先被收窄,系统也才知道这一步到底是读、是搜还是改——后面的关卡才挂得上去。

② 再卡"怎么改":Read-before-edit,改前先证明你看过

Edit 做精确字符串替换,第一道闸就是 Read-before-edit。模型必须在本次会话里读过这个文件,且自那次读取后文件没在磁盘上变过;覆盖式 Write 也要先读过。

它把"改之前先看清楚"从一句叮嘱,变成模型机制上绕不过去的执行条件。没读过、或读完文件又被人动过,就直接拒。不靠模型自觉,自由度在落手那一刻被卡死。

③ 最后管"结果怎么回":别让一条结果吃爆上下文

Bash 输出默认上限 30000 字符,超了就把完整输出落到会话文件,只回一个路径加短预览;Read 超 token 返回 PARTIAL view 并提示用 offset/limit 接着读;Glob 命中超过 100 个带截断标记。

结果不是塞回去就完事。模型要能知道"被截断了、剩下的在哪、下一步怎么缩范围"。否则一条大日志一轮就把上下文(第 4 课)吃爆,agent 当场失忆。

模型只是其中一层

Read-before-edit、权限分层、输出截断,都是 harness 的工程决定。模型能力好会让选择更准,但真正的稳,来自模型和工具约束贴合:工具挡住危险动作,模型按这套约定工作。

**我的优先顺序:**自己造 agent 时,先抄专用工具的拆分,再抄 Read-before-Edit 那道闸,最后补回灌截断纪律——顺序别反。

四、面试官追问链

追问 1

两个工具功能重叠,模型老选错。

2 条路:要么在描述里把边界写死:读单个文件用 Read,按内容搜多个文件用 Grep,别用 Read 去试探;要么干脆合并成一个工具,从源头消灭歧义。我认为工具集要像一套好刀,每把分工明确,而不是十把长得差不多让模型猜。重叠是 agent 乱调的头号原因。

追问 2

截断好做,难在"截掉哪些、留哪些"。

工具自己并不知道这次哪几十行有用,硬截可能正好把模型要的那段切掉。CC 的做法是把决定权交回模型:截断时附上总量和续读入口(Readoffset/limitBash 的落盘路径),模型发现不够就自己缩范围再查一轮。截断不是丢信息,而是把"要不要再看"变成模型能主动发起的下一步。

追问 3

模型给一条删库 Bash,执行前后都要过关。

执行过权限门(第 6 课):危险命令拦下、把为什么拒喂回模型让它换方案;执行结构化回灌结果或错误。工具层是 agent 副作用的唯一出口,所有安全控制都收口在这里。这也是万能 Bash 不安全的根源:副作用全混成一个口子,难精细控权。

五、给你的 agent 加一个靠谱工具

写个函数注册上去只是第一步、远远不够。下面四步,是让模型调得准、不闯祸的一份够用清单。

STEP 1 · 写紧 schema

必填的别设可选,能枚举的别用自由文本,类型写死。把模型能传错的姿势在 schema 层先关掉。

↳ 关键:schema 越紧,越省后面的校验和排错。

STEP 2 · 抄那道 Read-before-Edit 的闸

凡是修改、覆盖类副作用工具,加一个前置态:本会话没读过这个目标,就拒绝执行、逼模型先读。低成本防灾。

↳ 关键:把危险姿势变成机制上做不到。

STEP 3 · 给专用工具,别只丢一个 Bash

常用动作做成专用工具(读、改、搜各一个),schema 更紧、结果结构化、好单独控权(第 6 课)。

↳ 关键:收窄自由度,换来可控。

STEP 4 · 截断结果 + 给出继续读取路径

大结果不要原样塞回去:截断、标注、给文件路径或分页参数;错误信息也要可读,让模型知道下一步怎么补查。

↳ 关键:别让一条日志吃爆窗口,也别让模型不知道怎么继续。

**↳ 一句话验收:****模型只读描述和 schema,能稳定调对,并且改不了没看过的文件。**做到这两点,agent 的手就稳;做不到,模型能力再好也使不出力。

六、本课总结

一句话总结

工具不是函数,是给模型看的说明书、约束和执行管线。模型看不见你的实现,只读那段描述和 schema,所以工具设计的天花板,就是 agent 能力的天花板。Claude Code 顺着"选哪个→怎么改→结果怎么回"一层层收窄自由度,手才稳。

面试锦囊

**先说通用:**一个工具 = name + description + input schema,模型靠描述选工具、靠 schema 传参,看不见你的实现。

**再说 CC 怎么做:**专用工具收窄"选哪个" + Read-before-Edit 卡"怎么改"(没读过不准改)+ 截断时给续读入口管"结果怎么回"。

**再补「只是模型吗」:**不是。护栏是 harness 的决定;模型照着这套约定工作,所以才稳。

学AI大模型的正确顺序,千万不要搞错了

🤔2026年AI风口已来!各行各业的AI渗透肉眼可见,超多公司要么转型做AI相关产品,要么高薪挖AI技术人才,机遇直接摆在眼前!

有往AI方向发展,或者本身有后端编程基础的朋友,直接冲AI大模型应用开发转岗超合适!

就算暂时不打算转岗,了解大模型、RAG、Prompt、Agent这些热门概念,能上手做简单项目,也绝对是求职加分王🔋

在这里插入图片描述

📝给大家整理了超全最新的AI大模型应用开发学习清单和资料,手把手帮你快速入门!👇👇

学习路线:

✅大模型基础认知—大模型核心原理、发展历程、主流模型(GPT、文心一言等)特点解析
✅核心技术模块—RAG检索增强生成、Prompt工程实战、Agent智能体开发逻辑
✅开发基础能力—Python进阶、API接口调用、大模型开发框架(LangChain等)实操
✅应用场景开发—智能问答系统、企业知识库、AIGC内容生成工具、行业定制化大模型应用
✅项目落地流程—需求拆解、技术选型、模型调优、测试上线、运维迭代
✅面试求职冲刺—岗位JD解析、简历AI项目包装、高频面试题汇总、模拟面经

以上6大模块,看似清晰好上手,实则每个部分都有扎实的核心内容需要吃透!

我把大模型的学习全流程已经整理📚好了!抓住AI时代风口,轻松解锁职业新可能,希望大家都能把握机遇,实现薪资/职业跃迁~

这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

在这里插入图片描述

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐