A 用 Agent 写脚本
第 1 章

基本概念

不用记术语。下面每个词,都配了一个生活里的类比;看懂这 10 个词,后面配置和提问就都不难了。

大模型:一个读过很多书的「接话高手」

大模型(LLM,Large Language Model)的本质工作只有一件事:根据前面的文字,猜接下来最该出现什么字。它读过的资料足够多,所以猜得足够准,准到能写邮件、写总结、写代码。

理解这一点,你就知道它的两个特点:

✓

所以不要把它当「搜索引擎」,把它当一个刚入职、能力很强、但完全不了解你公司情况的实习生:你需要交代背景、给出样例、说明验收标准。

提示词:你写给它的需求单

提示词(Prompt)就是你输入的那段话。它不是「咒语」,而更像一张工单:写清楚要做什么、交给谁、交付成什么样,执行的人才不会跑偏。

同一个任务,三种写法,结果差别很大:

不清楚的写法

「帮我整理一下文件。」

清楚的写法

「把 D:\下载 里所有 .jpg 按拍摄月份分到 2026-01、2026-02 这样的子文件夹,原文件移动不是复制。」

第 3 章会把「怎么写」拆成可以照着填的模板。

上下文:它当前「记得住」的范围

上下文(Context)指的是这一次对话里,模型能同时「看到」的全部内容:你说过的话、它读进来的文件、它自己之前的回答。

它有几条实用含义:

Token:长度和费用的计量单位

模型不是按「字」处理文本,而是把文字切成一个个小片段,叫 Token。它是上下文长度的单位,也是计费的单位。

文字大致 Token 数说明
1 个汉字约 1 个不同模型略有差异,粗略按 1:1 估算即可
1 个英文单词约 1.3 个长单词会被切成多段
一页 A4 中文文档约 800–1200 个约 1000 字左右

一次任务的消耗 = 输入(你的话 + 读进来的文件)+ 输出(它写的内容)。所以「让它读整个文件夹」比「只读一个文件」贵得多,也慢得多。日常小脚本的消耗通常很小,不必过于担心。

Agent:会自己动手的 AI

普通聊天 AI 只负责「说」:给你一段代码,你自己复制、自己保存、自己运行、自己看报错。

Agent(智能体)多了一双手:它能直接在你打开的文件夹里读文件、写脚本、开终端运行、看到报错后自己再改。你只负责提要求和验收。

你 用中文说需求 需求 AGENT 大脑:大模型 理解你的话 · 规划步骤 · 写代码 · 改错 手脚:工具调用 读文件 · 写脚本 · 运行命令 · 看报错 执行 你的电脑 生成脚本 · 输出结果 每一步写入或运行,都会先弹出确认;你随时可以喊停
Agent = 大模型(会想)+ 工具(会做)+ 工作区(能碰到的范围)
对比项普通聊天 AIAgent
输出一段文字或代码直接建好的文件和可运行的结果
读文件需要你复制粘贴给它自己打开、自己读
出错你贴回报错,它再改自己执行、自己看到报错、自己修
适合问知识、写文案做工具、处理文件、跑脚本

工具调用:Agent 的「手和脚」

大模型本身只会输出文字。要把文字变成动作,得靠工具(Tools)。你看到的「它正在读取文件」「它正在运行命令」,就是它在调用工具。

常见的工具就这几类:

工作区:它能碰到的范围

工作区(Workspace)就是你在 Trae 里打开的那个文件夹。Agent 默认只看得到这里面的内容,看不到你电脑上的其他位置。

这个设计有两个好处:一是它不会被无关文件干扰;二是它不太容易误伤别的地方。所以正确的做法是:为每个任务单独开一个文件夹,把要处理的文件放进去,再让 Trae 打开这个文件夹。

!

不要一上来就打开「C 盘」或「桌面」这种包含大量文件的位置。Agent 扫描目录会变慢,也更容易误改无关文件。

权限确认:为什么它老是问我

当 Agent 要写文件、改文件、运行命令时,通常会先弹出一句「是否允许」。这不是它卡住了,而是安全刹车。

正确的态度是:

幻觉:它也会一本正经地瞎编

「幻觉」是指模型编造不存在的东西:一个不存在的函数、一个不存在的文件路径、一个记错的参数名。它说得很自信,但就是错的。

对付幻觉最有效的办法不是「多想」,而是让它跑一遍。代码跑不通会立刻报错,报错信息就是事实。

i

判断标准只有一条:能跑通、结果对。不要因为代码「看起来很像那么回事」就放心,也不要因为它报错了就觉得它不行——把完整报错贴回去,它通常能自己修好。

模型怎么选

模型是 Agent 的「大脑」。同一个 Trae,可以切换不同模型。简单说:

类型适合做什么特点
代码 / 主力模型 写脚本、改代码、处理多步骤任务 能力强、速度稍慢、消耗略高。做正事就用它
快速 / 轻量模型 简单问答、改错别字、解释一小段代码 响应快、成本低,复杂任务容易兜不住

挑选时优先看代码能力,而不是「聊天聊得顺不顺」。很多模型聊得很好,但写代码时容易漏边界情况。不确定就用默认推荐的那一个,先跑通再说。