注册并分享邀请链接,可获得视频播放与邀请奖励。

宝玉 (@dotey) “我做 AI 翻译这件事,前前后后折腾了快两年。从最早手写提示词,到现在用 Agent 自动” — TopicDigg

宝玉 的个人资料封面
宝玉 的头像
宝玉
@dotey
AI Engineer, dedicated to learning and disseminating knowledge about AI, software engineering, and engineering management.
加入 April 2007
1.7K 正在关注    228.7K 粉丝
我做 AI 翻译这件事,前前后后折腾了快两年。从最早手写提示词,到现在用 Agent 自动分块、并行翻译、审校润色,中间踩了不少坑,也攒了不少经验。最近把这些经验沉淀成了一个可复用的翻译 Skill。 先说说翻译这个场景为什么比看上去要复杂。提示词本身很简单,“把这段话翻译成中文”谁都会写。 但要做成一个通用的 Skill,你得考虑:输入千奇百怪,有人贴一句话,有人丢一篇万字长文,还有人给个 Markdown 文件;每个人常用的语言对不一样;有时候只想快速看个大意,有时候要求翻译质量必须高;太长的内容模型处理不了或者效果变差,需要分块,分块了又不好保证前后一致。 这些问题不是一次想清楚的,是一轮轮迭代踩出来的。 我用 AI 翻译的三个阶段 第一个阶段是推理模型出来之前。 那时候翻译质量全靠提示词,角色设定、语气要求、术语表,能塞的都塞进去。我应该是最早公开提出用“两步翻译”和“三步翻译”来提升翻译质量的。 两步翻译就是先直译再意译,原理类似推理链,让模型先老老实实把原文意思对上,再用更自然的方式重新表达。效果确实好,但费 Token。三步翻译多了一个中间的审校环节,先直译,再审校找问题,最后意译,效果更好,但上下文占用很大。 第二个阶段是推理模型出来之后。 有了推理能力,不需要我手动设计推理链了,模型自己会“想”。这时候翻译提示词的核心变成了一个词:“重写”。不是让模型“翻译”,而是让它用目标语言重写这段内容。“翻译”这个词会让模型惦记着原文的每个字,“重写”给了它更大的自由度去处理隐喻、重组句式。这个思路转变带来的质量提升很明显。 第三个阶段是 Agent。 到了 Agent 时代,翻译工作流可以做得更精细。 之前所有决策都是我做的:要不要分块、分多大、用什么术语表、翻译质量够不够好。现在很多决策可以交给 Agent,但关键节点由人来确认。 具体来说,我的 Agent 翻译工作流是这样的: 1. Agent 先分析要翻译的文章,找出专业术语、文化隐喻、读者可能不理解的背景知识,保存成分析文件 2. 根据分析结果和提示词模板,生成翻译提示词,也保存成文件 3. 如果文章太长,用脚本按 Markdown 结构分块 4. 多个 subagent 并行翻译,每个负责一块 5. 翻译完合并,再做整体校对 所有中间结果都保存成文件。分析报告、翻译提示词、每个分块的原文和译文、审校意见,全部保存成文件。 为什么要这么做? 因为翻译是个迭代过程。某一块翻得不好,可以单独重翻,不用从头来。提示词有问题,可以直接改文件,不用重新跑分析。 从串行到并行:一个关键转折 最开始分块翻译是串行的。一个 subagent 按顺序翻译所有块,上一块的结果带到下一块,保持上下文连贯。 问题很明显:慢。十个块要一个接一个翻,而且上下文越来越长,可能会爆。如果截断之前的内容,又没法用 prompt cache,成本反而更高。 改成并行翻译就面临另一个问题:术语不统一。前面翻成"强化学习",后面变成"增强学习",读者会懵。 解法是把一致性的保障从"运行时上下文"转移到"预先分析"。在翻译之前,Agent 已经分析好了全文的术语、翻译策略、风格要求,全部写在提示词文件里。每个 subagent 拿到的是同一份提示词文件,术语决策已经固化在里面了。 十个块十个 subagent 并行执行,速度提升好几倍,一致性由共享的提示词文件保证。 提示词文件的演进 提示词怎么传给 subagent,这件事改了好几版。 最开始是让 subagent 自己去读分析文件,自己理解。效果不稳定,每个 subagent 理解出来的东西不一样。 然后改成主 agent 读取分析文件,把所有上下文整合成一个完整的 prompt 传给 subagent。好了一些,但 prompt 里什么都有,包括分块列表,subagent 看到十个块的列表会困惑,因为它只需要翻一个块。 最后拆成两部分:共享上下文(术语表、翻译原则、背景信息)保存成文件,任务指令(翻译哪个文件、保存到哪里)作为调用参数传入。每个 subagent 读同一个提示词文件,但收到不同的任务指令。 把提示词保存成文件还有一个好处:它本身成了可追溯的中间产物。翻译完觉得风格不对,打开提示词文件一看,发现是分析阶段遗漏了某个术语,直接改文件重跑翻译就行。 当然还有一个重要原因是 Agent 很擅长读写处理文件。 整个 Skill 的创建和迭代过程是这样的: 1. 在 Claude Code 里用 skill-creator,直接把想法说出来,生成初始版本 2. 用生成的版本去翻译真实文章,不是测试用例,是真的要用的内容 3. 读翻译结果,找出不满意的地方 4. 把问题反馈给 Claude Code,让它改进 Skill 5. 再翻译,再检查,循环往复 这个过程中,人的角色是质量判官和方向指挥。你要能判断翻译好不好,要能说清楚哪里不好,但不需要自己去写提示词细节。比如我发现串行翻译太慢,不是我去改并行逻辑,而是告诉 Agent"改成并行",然后它自己去处理并行带来的一致性问题。 比如我发现隐喻翻译生硬,不是我去写"遇到隐喻请意译"这样的规则,而是给它两版翻译让它自己总结规律。它总结出来的规则比我写的更系统、更全面。
显示更多
0
20
266
45
转发到社区