Claude Code 开发者的一些使用建议

I’m Boris and I created Claude Code. I wanted to quickly share a few tips for using Claude Code, sourced directly from the Claude Code team. The way the team uses Claude is different than how I use it. Remember: there is no one right way to use Claude Code – everyones’ setup is different. You should experiment to see what works for you! Do more in parallel Spin up 3–5 git worktrees at once, each running its own Claude session in parallel. It’s the single biggest productivity unlock, and the top tip from the team. Personally, I use multiple git checkouts, but most of the Claude Code team prefers worktrees – it’s the reason @amorriscode built native support for them into the Claude Desktop app! ...

2026-06-12 · 4 min · 829 words

我在真实 Agent 产品里落地 Sandbox 的全过程

我一开始以为,给 Agent 加 Sandbox 这件事并不复杂: 把 bash 套进隔离层 限一下文件系统 限一下网络 再处理一下环境变量 但真把它放进一个真实产品里,问题马上就不是“能不能隔离”,而是: 既要让 Agent 真能干活,又不能让它顺手把宿主机掀了。 这次我在自己的 Agent Runtime 里,先后被两个非常具体的场景逼着重构权限模型: curl 在沙箱里访问网络,一直报错 agent-browser 要打开网页并截图,但它本质上不是普通网络请求,而是宿主浏览器能力 最后我做出来的,不只是一个 Shell Sandbox,而是一整套: bash 执行边界 Host Capability 审批 白名单复用 自动续跑 配置脱敏 多渠道结构化审批 这篇文章,我就完整讲讲这套东西是怎么从真实问题里长出来的。 我在真实 Agent 产品里落地 Sandbox 的全过程 从 curl 报错,到 agent-browser 审批升级,我是怎么把权限、审批、配置安全真正做成产品能力的 如果你最近在做 Agent,而且这个 Agent 不是纯聊天,而是真的会: 调 bash 装依赖 读写文件 连网 调本机工具 打开网页、截图、控制浏览器 那你迟早会遇到一个问题: “让 Agent 能干活”和“让 Agent 不乱来”之间,根本不是加一个开关就能解决的。” 一开始我也以为,所谓 Sandbox,无非就是: 把 bash 套进一个 OS-level sandbox 限文件系统 限网络 再处理一下环境变量 听上去很合理。 但真把它放进一个真实产品里,你很快就会发现: ...

2026-06-12 · 8 min · 1664 words

别让 AI Agent 在你的电脑上裸奔:主流沙箱方案全景解析与 Anthropic Sandbox Runtime 深度拆解

过去一年,Agent 的能力边界被迅速拉高。它不再只是“会聊天的大模型”,而是在越来越多的场景里真正拥有了“手脚”:能写代码、改文件、跑测试、装依赖、发请求,甚至直接操作本地终端。 但问题也恰恰出在这里。 一旦 Agent 可以直接在开发机上执行命令,它就不再只是一个推理系统,而变成了一个半可信执行体:正常情况下它是高效助手,异常情况下它也可能是一个“拿着系统权限的自动脚本”。模型幻觉、Prompt Injection、第三方仓库里的恶意指令、错误的工具调用路径,都会把风险从“回答错了”升级为“真的把你的环境改坏了”。 于是,一个绕不开的问题摆在所有 Agent 产品面前: 怎么让 Agent 真正自动化地干活,同时又不把宿主机暴露在不可控风险里? 这就是 Agent Sandbox 的价值所在。 “系统安全能力的下限,决定了 Agent 自动化能力的上限。” 问题 在没有成熟沙箱之前,最常见的办法是“人工确认”:Agent 每执行一步命令,每改一次文件,都弹窗询问用户要不要继续。 这种做法看起来安全,但实际上只解决了心理安慰,并没有真正解决底层风险。 第一,它会快速演变成严重的中断疲劳。一个稍微复杂一点的重构任务,可能要经历十几次读写文件、数十次 shell 调用、若干次网络请求。每一步都确认,Agent 的自动化价值会被彻底抵消。 第二,它对真实攻击并不可靠。开发者并没有足够的时间在一秒钟内审完一长串 bash 命令,更不可能靠肉眼持续识别被混淆过的脚本、链式调用或隐蔽的外带逻辑。换句话说,弹窗确认本质上是在把安全责任转嫁给用户,而不是在系统层面建立边界。 真正可持续的方案不是“每一步都问你”,而是: 默认把 Agent 放进一个边界明确的运行区域; 边界内自动执行,不打扰用户; 一旦越界,由底层机制直接拦截,而不是事后追责。 这就是现代 Agent 沙箱的核心设计目标:把安全从“交互层提醒”下沉到“执行层约束”。 方案演进 从当前行业实践看,Agent 沙箱大致形成了三条路线。它们并不是谁绝对淘汰谁,而是分别适合不同的产品形态。 1. 容器型沙箱 这一类方案通常基于 Docker 或容器池,把代码执行环境封装进独立容器,再通过 API 或任务调度系统与 Agent 主流程解耦。 它的优势很明显:环境一致性好,依赖管理成熟,易于做多租户调度,也方便把环境变量、文件系统和网络策略统一配置。很多云端 Agent 平台、代码执行服务、Browser + Code 一体化沙箱都属于这一路线。 但它的局限同样明显: 如果你的目标是“让 Agent 直接辅助用户本地开发”,Docker 会显得偏重。你需要处理 volume 映射、UID/GID、路径同步、宿主文件状态与容器视图的一致性,以及本地开发工具链与容器内部环境的错位问题。它更适合“把任务送进一个隔离盒子里执行”,而不天然适合“在用户当前工作区无缝协作”。 2. MicroVM 型沙箱 这一类典型代表是 Firecracker 体系或基于它的代码执行平台。它的优势是隔离强度极高,接近虚拟机级别,天然适合云端多租户场景,也更适合执行不可信代码。 ...

2026-05-11 · 3 min · 607 words

一文读懂大语言模型的训练全过程

从原始数据到智能对话——ChatGPT、DeepSeek、Qwen 这类大模型是怎么"炼"出来的? 当你在手机上向 AI 助手提问,它能流畅地回答、写代码、做分析,这背后是一套复杂而精密的训练工程。本文将从工程视角,完整拆解大语言模型(LLM)的训练过程,包括每一步在做什么、需要哪些数据、依赖哪些技术基础设施。 一、先搞清楚两个大阶段 LLM 的训练通常分为两大阶段: 预训练(Pre-training):让模型"博览群书",获得通用知识与语言能力 后训练(Post-training):让模型"上岗培训",学会按指令回答、安全礼貌地与用户交流 后训练的计算量只有预训练的约 5%,但它决定了模型的实际可用性,也是近年来研究最活跃的方向。[1] 二、六大训练步骤详解 第一步:数据收集与预处理 一切从数据开始。训练一个现代大语言模型,需要数万亿(Trillions)个 Token 的文本语料。[2] 数据来源包括: 通用网页文本:Common Crawl、C4 等互联网爬虫数据集 书籍与学术文献:Books3、ArXiv、PubMed 等 代码:GitHub 公开代码仓库、Stack Overflow 问答 百科全书:多语言 Wikipedia 原始数据质量参差不齐,必须经过严格的清洗流程: 去重:使用 MinHash / SimHash 去除重复内容,防止模型过拟合 质量过滤:基于困惑度(Perplexity)、规则过滤低质量内容 语言识别与分类:按语言比例混合多语言数据 Tokenizer 训练:使用 BPE(字节对编码)或 SentencePiece 训练分词器 这一步的产出: TB 级别的清洁语料库 + 训练好的 Tokenizer。 第二步:大规模预训练 这是整个流程中计算量最大、成本最高的环节,通常需要数千块 GPU 运行数周甚至数月。 核心原理: 自回归语言建模(Autoregressive Language Modeling)——给模型看一段文本,让它预测下一个 Token 是什么。通过在海量文本上反复迭代,模型逐渐学会了语言规律、世界知识、逻辑推理。[3] 关键技术组件: 组件 作用 Transformer 架构 多头注意力(Multi-head Attention)+ 前馈网络(FFN) RoPE 位置编码 让模型理解 Token 之间的位置关系 RMSNorm 归一化 稳定训练过程,替代传统 LayerNorm Flash Attention 2/3 IO 感知的高效注意力算法,2-4 倍提速 GQA 分组查询注意力 减少 KV Cache 占用,提升推理效率 混合精度训练(BF16) 节省显存,加速计算 这一步的产出: 基础模型(Base Model)。它掌握了丰富的知识,但只会续写文本,不会听指令。 ...

2026-04-27 · 2 min · 315 words

我用 AI 给 Obsidian 写了一个"LLM-wiki"插件

起因 前几天,Karpathy 发了一条推。 他讲自己怎么用 LLM 管个人知识库,用了一个词:编译(Compile)。意思是,把原始资料"编译"成结构化知识。Obsidian Vault 是代码仓库,LLM 就是编译器。 我看完愣了一下——这不就是我最近几个月一直在折腾的事吗?我一直在做一个流程,把 raw 资料变成 wiki 条目,只是一直没找到一个好的词来概括。现在有了:知识编译。 然后我就做了一个程序员会做的事:把它做成了 Obsidian 插件。 思路 传统管理知识库的方式,大家应该都不陌生:你积累了 500 篇笔记,然后加标签、建链接、分类整理,再然后……三个月后放弃了,笔记库慢慢腐烂。 编译方式不一样。你只管把原始资料丢进 raw/ 目录,LLM 负责读取、提炼、交叉引用,自动产出结构化的 wiki 页面。你只需要做两件事:喂料,提问。 这跟写代码一模一样。raw/ 是源码,wiki/ 是编译产物,index.md 是目录清单,log.md 是构建日志,编译器是 LLM。你不会手动把 .java 文件逐行翻译成 .class——同理,你也不应该手动给 500 篇笔记加标签。 三层目录,各管各的 先看一下目录结构: Vault/ ├── raw/ # 原始资料,人类添加,LLM 自动归类 │ ├── tech/ # 技术文章、论文、教程 │ ├── work/ # 工作相关文档 │ ├── reading/ # 读书笔记、播客笔记 │ ├── general/ # 其他内容 │ └── assets/ # 图片附件 │ ├── wiki/ # 编译产物,完全由 LLM 维护 │ ├── summaries/ # 每篇源文件的结构化摘要 │ ├── concepts/ # 概念页面(跨源综合) │ ├── entities/ # 人物/工具/框架页面 │ ├── comparisons/ # 对比分析 │ └── analysis/ # 深度分析(从好的问答中沉淀) │ ├── legacy/ # 已有的旧笔记库,冻结存档 ├── drafts/ # 碎片想法,人类专属 ├── CLAUDE.md # LLM 的"编译规范" ├── index.md # Wiki 主索引 └── log.md # 操作日志 我定了一个很严格的 ownership 规则: ...

2026-04-07 · 3 min · 591 words

AI 常见名词解释_rewritten

原文:/Users/zongxiaocheng/Library/Mobile Documents/iCloudmdobsidian/Documents/AI 常见名词解释.md 重写说明:基于原文重写,去掉了学术和翻译腔。梳理了从基础概念、模型训练到 Agent 工程化的逻辑线,用大白话解释了这些常见的 AI 术语,让内容更易读。 ![截屏2026-03-23 23.22.44](截屏2026-03-23 23.22.44.webp) ![截屏2026-03-23 23.17.17](截屏2026-03-23 23.17.17.webp) 用大白话解释常见的 AI 术语 你最近肯定听过很多 AI 词汇。你大概知道它们是什么意思,但可能又没那么确定。 这篇文章用最通俗的话,把这些满天飞的 AI 黑话解释清楚。下次开会再听到这些词,你就不用一头雾水了。 基础与核心概念 什么是模型(Model)? AI 模型就像一个模仿人脑工作的计算机程序。你给它一个输入,它处理一下,然后给你一个输出。 模型像小孩子一样,通过看大量例子来“学习”。看得多了,它就能认出模式、理解语言,并给出合理的回答。 模型有很多种。处理文字的叫大语言模型(LLM),比如 ChatGPT。处理视频的叫视频模型,比如 Sora。还有传统的用来推荐内容和识别垃圾邮件的模型。 大语言模型(LLM) 全称是大语言模型(Large Language Model)。它专门用来理解和生成人类能看懂的文字。 现在大多数 LLM 已经不只懂文字了。它们变成了“多模态”模型,可以同时看懂图片、听懂声音,甚至直接用语音和你对话。 Transformer 架构 这是 Google 在 2017 年发明的一种算法,也是现代 AI 爆发的基础。 它引入了“注意力机制”。以前的 AI 只能挨个看句子里的词,而 Transformer 可以同时看完所有词,并理解词和词之间的关系。这就让它能更好地把握上下文和细微差别。 它还能“并行处理”。这意味着只要堆算力和数据,就能训练出更大、更聪明的模型。如今几乎所有主流 AI 模型都是基于它构建的。 Token(词元) Token 是 AI 理解文字的最小单位。 对于英文来说,一个 Token 有时是一个词,有时只是词的一部分。比如“ChatGPT”可能会被切成“Chat”和“GPT”两个 Token。把它切碎,是为了让模型处理起来更高效。 现在还都在争论 Token 怎么翻译的问题,暂时可以先忽略这个中文翻译 模型是怎么变聪明的? 训练(Training / Pre-training) 训练就是让模型看海量的数据,比如整个互联网的网页、所有的书。这个过程可能要花几个月,烧掉几亿美金。 ...

2026-03-23 · 2 min · 243 words

Agent Tool Call:从“对话”到“执行”的工程实践

在使用大模型的过程中,你肯定发现目前的大语言模型(LLM)在逻辑推理、代码编写和文本生成方面表现优异。但是,它们都有一个共同的局限:无法直接干预外部世界。 如果你要求模型“查询订单状态”或“发送一封邮件”,它通常会回复:“对不起,我无法访问您的数据库。”这是因为模型本质上只是一个预测下一个 Token 的概率模型,并没有直接访问系统资源的权限。 Tool Call(工具调用,也称 Function Calling)的出现,正是为了给模型安装上“手脚”,让它能够通过结构化的方式与外部系统交互。 ## 一、 核心概念:决策与执行分离 ![截屏2026-03-09 22.39.50](截屏2026-03-09 22.39.50.png) 理解 Tool Call 的关键在于:模型本身并不执行代码,它只负责决策。 我们可以将其理解为“指挥官”与“执行官”的关系: 模型(决策者):负责判断“当前需要调用哪个工具”、“需要传入什么参数”。 程序(执行者):负责运行真实的后端逻辑,如数据库查询、发送邮件、鉴权、限流等。 这种“决策与执行分离”的架构,确保了系统的安全性。模型产生的只是一个 JSON 格式的调用指令,真正的执行权限始终掌握在开发者手中,而不是交给模型。 二、 通用工作流 无论是查询数据(读操作)还是执行动作(写操作),在工程上通常遵循以下五个步骤: 定义工具:开发者向模型描述可选工具的功能(建议使用动词命名,如 get_order_status)及其参数规格(使用 JSON Schema)。 发送上下文:将用户问题与工具清单一并发送给模型。 模型决策:模型判断当前问题是否需要工具。如果需要,它会返回一个结构化的响应,包含工具名、参数及唯一标识符 call_id。 本地执行:程序解析参数,调用真实的 API 或数据库,并获取结果。 生成回答:程序将执行结果回传给模型,模型结合结果生成最终的自然语言回复。 三、 Tool Call Schema 详解 Schema 是模型与程序之间的“契约”。定义得越严谨,模型调用的准确率就越高。 1. 结构示例 { "type": "function", "function": { "name": "get_order_status", "description": "根据订单号查询订单状态与物流信息", "parameters": { "type": "object", "properties": { "order_id": { "type": "string", "description": "订单号,例如 1001" } }, "required": ["order_id"], "additionalProperties": false }, "strict": true } } 2. 字段含义与最佳实践 字段 说明 最佳实践 name 工具的唯一标识符 使用动词式命名,如 get_order_status description 工具的用途说明 越详细越好:说明适用场景、限制条件及返回格式 parameters 参数定义 每个参数都应包含 type 和 description required 必填参数名数组 明确模型必须提供的字段 additionalProperties 额外参数 设为 false,防止模型生成多余参数 strict 严格模式 设为 true,强制模型输出符合 Schema 的 JSON 3. 一个“好”的描述长什么样 差的描述: ...

2026-03-09 · 2 min · 375 words

如何实现一个极简的 Agent

![如何实现一个极简的 Agent-cover](如何实现一个极简的 Agent-cover.webp) 如何从 0 实现一个极简 Agent 这两年大家一提 Agent,脑子里很容易浮现出一个“会思考、会规划、会调用工具、还会自我修复”的高级智能体。听起来很玄,但如果把那些花哨概念都剥掉,一个能跑起来的极简 Agent,其实没有那么复杂。 说到底,它就两件事: 一个持续运行的 while 循环。 一套精心设计的上下文工程。 大模型本身既没有状态,也没有手脚。它只负责在当前上下文里做判断:这轮该说话,还是该调用某个工具;如果调用工具,工具名是什么,参数应该怎么填。真正读文件、执行命令、写入内容、保存记忆、控制权限的,都是你写的程序。 所以 Agent 的核心从来不是“让模型像人一样思考”,而是:如何把合适的信息在合适的时机交给模型,再把模型的决策稳稳地落到执行环境里。 这篇文章就结合我手头这套玩具代码,从 0 到 1 拆一下:如何把一个看起来很复杂的 Agent,拆成几个可以逐步实现的小能力。 先讲结论:Agent 的最小闭环是什么? ![如何实现一个极简的 Agent-loop](如何实现一个极简的 Agent-loop.webp) 一个最小 Agent,至少要有下面这条闭环: 用户提出任务 -> 模型判断是否需要工具 -> 程序执行工具 -> 把执行结果回填给模型 -> 模型继续决策 -> 直到模型不再调用工具,输出最终答案 这个流程也可以写成更工程化一点的五步: 定义工具,并用 JSON Schema 描述参数约束。 把用户消息、系统提示词、工具清单一起发给模型。 模型返回普通文本,或者返回 tool_call。 程序解析 tool_call,在本地执行真实工具。 将工具结果作为 tool 消息带回模型,进入下一轮。 只要这条链打通,一个最简 Agent 就已经成立了。 为什么说本质是 while 循环? 因为 Agent 和普通聊天机器人的根本区别,不在于“更聪明”,而在于“能继续行动”。 普通聊天模型通常是一次请求、一次回复,停在那里。Agent 则是在程序外面再包一层循环,让它可以不断经历: Think -> Act -> Observe -> Think 这在代码里其实非常朴素。simple-agent.py 里就是典型的双层循环: ...

2026-03-06 · 5 min · 934 words

coding planning 价格对比

coding planning 价格对比 厂商 计划名称 API类型/功能 定价模式 主要特点 适用场景 链接 阿里云 百炼 Coding Plan qwen3-coder-plus 代码生成模型API Lite:7.9元/首月,40元/月 Pro:39元/首月,200元/月 - 兼容OpenAI/Anthropic API规范 - 支持Qwen Code、Claude Code、Cline - 固定月费,月度请求额度 智能编程辅助、多语言代码迁移、企业级软件开发 https://www.aliyun.com/benefit/scene/codingplan 豆包(字节) 方舟 Coding Plan Doubao-Seed-Code 模型API Lite:8.9元/首月,40元/月 54元/首季,120 元/季 Pro:49.9元/首月,200元/月,600 元/季 - 支持Claude Code、Cursor、Cline等5+工具 - 用量达Claude Pro的3倍(Lite)/3倍(Pro) - 一站式开发 中等强度开发任务、复杂项目开发 https://www.volcengine.com/activity/codingplan 邀请码:RNBDFW69 智谱AI GLM Coding Plan GLM-5/GLM-4.7 代码模型API Lite:411 元/年,132元/季49元/月 Pro:1251 元/年,402元/季,149元/月 Max:3939元/年,1266元/季,469元/月 - 支持GLM-5(对标Claude Opus) - 适配20+编程工具 - 免费MCP(联网搜索、图像理解、开源仓库) 轻量级/复杂/海量工作负载,SWE-bench榜单第一梯队 https://bigmodel.cn/glm-coding MiniMax Coding Plan MiniMax M2.1 模型API Starter:9.9元/首月,29元/月 Plus:49元/月 Max:119元/月 - 支持图像理解、联网搜索MCP - 适配9种编程工具 - 邀请好友返利机制 入门级/专业/高级开发场景 https://platform.minimaxi.com/subscribe/coding-plan Kimi(月之暗面) Kimi Claw Kimi K2.5 模型API(通过会员订阅) Andante:49元/月(Kimi Code可调用) Moderato:99元/月(4倍额度) Allegretto:199 元/月 Allegro: 699元/月 - Agent 4倍速优先用 - 支持Kimi CLI、Kimi Code - 连续包年立省240元 高频Agent调用、快速开发 https://www.kimi.com/membership/pricing 阿里百炼 ...

2026-02-25 · 1 min · 119 words

如何使用 Cloudflare worker 创建 gemini api 代理

https://zhile.io/2023/12/24/gemini-pro-proxy.html 如何使用 Cloudflare worker 创建 gemini api 代理 一、在 Cloudflare 中创建一个 worker gemini-api-proxy,保存并部署 export default { async fetch(request, env) { const url = new URL(request.url); url.host = 'generativelanguage.googleapis.com'; return fetch(new Request(url, request)) } } 二、添加自定义域名 可以直接使用 worker 触发器中的添加自定义域添加自定义域名。 不过这样不能确定使用的是哪个 ip,可能会存在请求时 gemini 提示地区不支持,这里可以自己设置 dns 解析 ip,通过这种方式来避免不支持的问题 以下内存转自 https://zhile.io/2023/12/24/gemini-pro-proxy.html 转到自己在 cf 上域名的控制面板,点击左侧菜单 DNS 来添加域名解析。 这里我使用自己的域名 gusibi.site,给它增加了子域名 A 记录:gemini-api.gusibi.site 这里有两个要点: 不要开启小黄云。 ip地址可以使用cf的优选工具选出来的高质量ip。 我这里用了两个我觉得还不错的ip,你们可以直接用,也可以自己去优选。 DNS解析记录操作完毕之后,点击左侧菜单Workers路由来让我们设置的域名和worker的路由关系。 在Workers路由界面,点击添加路由按钮,参考如下填写: 这里域名换成你刚才设置的那个,Worker也选择你之前创建的。点击保存即可。 完成这一步你就可以用你自己的域名来请求gemini了。 相关链接 : # 我们也要用Gemini Pro

2024-02-15 · 1 min · 69 words