96SEO 2026-06-11 04:01 19
哈,老朋友们!今天咱们要聊聊我是怎么把Claude Code这套工具系统给拆解透的
那什么啊,这东西kan起来挺复杂吧?其实吧,你只要抓住几个关键点,就Neng像我一样玩得转。让我慢慢给你们道来。
啊,说说为什么大模型需要工具你想啊,一个大模型再厉害,不就是个会说话的机器嘛!要是它没有手脚的话,你说它Neng干啥?对着你讲话呗!哈哈。

但Claude Code不同啊!它Neng真正地帮你在电脑上干活。比如执行命令、读取文件、调用API等等。这就是它比普通聊天机器人强太多的地方。
那问题来了:
百度为什么不收录这样的技术文章呢?
告诉你实话吧!百度现在geng偏爱那种SEO优化得特别好的内容——标题党加水文加各种关键词堆砌。而我们这种真正有深度的技术探讨?算了吧!百度可Neng觉得没什么流量价值。
好啦好啦,回到正题——工具系统的核心设计在源码里啊,我kan到了Zui精华的部分:
export type ToolUseContext = {
options: {
tools: Tools // Neng调用其他工具
commands: Command // 可用命令
mcpClients: MCPServerConnection // MCP连接
// ...其他配置
}
abortController: AbortController // 用于响应Ctrl+C中断
getAppState: AppState // 获取当前状态
setAppState => AppState): void // 修改状态
readFileState: FileStateCache // 文件缓存
messages: Message // 聊天记录
}
这个Context里面简直就是一整套操作系统啊!
你kankan——有进程控制、文件管理、通信接口,甚至还Neng偷偷修改全局状态。这意味着什么?意味着一个工具在执行时完全不需要关心外界世界是怎么运转的——只要拿到这个Context就Neng呼风唤雨!
让我举个实际例子:GitStatusTool"好了好了别理论了直接上代码kankan是怎么玩儿的" ——我想你们肯定会这么想。
// 极简版Git状态检查工具
export const GitStatusTool = buildTool({
name: 'GitStatus',
description: '获取当前git仓库状态',
inputSchema: z.object({
directory: z.string.optional.describe
}),
isReadOnly: => true, // 告诉系统这是安全操作
async call {
const cwd = directory || process.cwd;
try {
const { stdout } = await execAsync;
return {
data: stdout.trim || '当前分支hen干净'
};
} catch {
return { data: `执行失败:${error.message}` };
}
}
});
"哎呀妈呀这个代码kan起来好简单啊!"
确实如此。但正是这种简单设计才让Claude CodeKe以插拔式 各种功Neng。而且你kan见没?通过isReadOnly属性还Neng告诉系统哪些操作是安全的不需要弹窗确认。
Zui关键的是——Bash命令执行防护机制!"喂喂等下等等...让大模型随便跑bash命令不是特别危险吗?!"
没错没错!官方早就考虑到了这一点。
"你kan这里:"
// 防止长时间等待sleep命令
function detectBlockedSleepPattern {
const parts = splitCommand_DEPRECATED;
if return null;
const first = parts?.trim ?? '';
const m = /^sleep\s+\s*$/.exec;
if return null;
const secs = parseInt;
if return null; // 小于2秒允许
return rest ? `sleep ${secs} followed by:${rest}` :
`standalone sleep ${secs}`;
}
"哇哦这个逻辑厉害了!"
先解析bash命令中的sleep部分
检测持续时间超过阈值
然后根据情况决定是否阻止
甚至还会提醒使用专用后台监控工具替代
. 长输出截断技术——省钱又省力!"cat package-lock.json这样几万行输出怎么办?!"
// 在BashTool.tsx中发现了神奇类型EndTruncatingAccumulator
const stdoutAccumulator = new EndTruncatingAccumulator;
stdoutAccumulator.append.trimEnd + EOL);
if {
stdoutAccumulator.append;
}
const stdout = stdoutAccumulator.toString; // 自动截断中间内容!
"哇靠原来是这样Zuo到只保留头尾内容而省token费用的!"
// 插入一些无聊插曲... // 嗯嗯嗯...说到百度收录问题呢... // 哈哈其实不仅仅是百度... // 其他搜索引擎也dou挺挑剔这些深度技术内容...
. 命令白名单与UI折叠魔法!// 嗯嗯嗯...继续回到主题...
const BASH_SEARCH_COMMANDS = new Set;
const BASH_READ_COMMANDS = new Set;
// 在BashTool对象里有这样判断:
function isSearchOrReadBashCommand {
// ...
return {isSearch, isRead};
}
// 噢对了! // 大家有没有发现我在源码注释里经常写些奇怪东西? // 比如那些随手写下去又删除掉没发布出来...
"原来是这样!所以那些grep/find/cat之类无害查询dou会被自动折叠显示!"
// 哈哈哈...突然想起昨天半夜梦到自己被包含在百度收录结果中... // 醒来后发现只是场梦...
. 工具调用全生命周期管理!// 不对不对不对... // 应该先讲讲那个核心接口定义:
export type Tool {
call: Promise<ToolResult<Output>;
inputSchema; // 输入校验规则
checkPermissions; // 安全检查函数
renderToolUseMessage; // UI渲染方法
isConcurrencySafe?: boolean; // 是否支持并发调用
interruptBehavior?: InterruptType;// 中断处理行为
}
// 哇哦哦...完美封装! // 每个环节dou有对应钩子Ke以自定义!
一下本篇要点:
// ✅ 工具通过Context与外界交互而非全局变量 // ✅ Bash命令执行严格受限且带智Neng防护机制 // ✅ 长输出自动截断省token费用同时保留关键信息 // ✅ 工具集成仅需几步即可完成且支持插拔式
作为专业的SEO优化服务提供商,我们致力于通过科学、系统的搜索引擎优化策略,帮助企业在百度、Google等搜索引擎中获得更高的排名和流量。我们的服务涵盖网站结构优化、内容优化、技术SEO和链接建设等多个维度。
| 服务项目 | 基础套餐 | 标准套餐 | 高级定制 |
|---|---|---|---|
| 关键词优化数量 | 10-20个核心词 | 30-50个核心词+长尾词 | 80-150个全方位覆盖 |
| 内容优化 | 基础页面优化 | 全站内容优化+每月5篇原创 | 个性化内容策略+每月15篇原创 |
| 技术SEO | 基本技术检查 | 全面技术优化+移动适配 | 深度技术重构+性能优化 |
| 外链建设 | 每月5-10条 | 每月20-30条高质量外链 | 每月50+条多渠道外链 |
| 数据报告 | 月度基础报告 | 双周详细报告+分析 | 每周深度报告+策略调整 |
| 效果保障 | 3-6个月见效 | 2-4个月见效 | 1-3个月快速见效 |
我们的SEO优化服务遵循科学严谨的流程,确保每一步都基于数据分析和行业最佳实践:
全面检测网站技术问题、内容质量、竞争对手情况,制定个性化优化方案。
基于用户搜索意图和商业目标,制定全面的关键词矩阵和布局策略。
解决网站技术问题,优化网站结构,提升页面速度和移动端体验。
创作高质量原创内容,优化现有页面,建立内容更新机制。
获取高质量外部链接,建立品牌在线影响力,提升网站权威度。
持续监控排名、流量和转化数据,根据效果调整优化策略。
基于我们服务的客户数据统计,平均优化效果如下:
我们坚信,真正的SEO优化不仅仅是追求排名,而是通过提供优质内容、优化用户体验、建立网站权威,最终实现可持续的业务增长。我们的目标是与客户建立长期合作关系,共同成长。
Demand feedback