【免费下载链接】artex-global
Global edition of ARTEX — an LLM multi-agent autonomous penetration-testing framework. English default, switchable to Korean/Chinese/Spanish/Japanese. For authorized, defensive and detection use only. (upstream: Autumn-27/ARTEX, AGPL-3.0)
ARTEX 是一个 LLM 多智能体自主渗透测试框架(artex-global 为其全球版,默认英文,可切换韩/中/西/日共 5 种语言)。它的多语言支持采用了一个很有意思的设计:只把「用户看到的表面」翻译成你选的语言,而智能体内部的推理提示词保持不动。本文带你实测这套机制,并讲清楚背后的取舍。
一、ARTEX 支持哪 5 种语言?先看清支持清单
ARTEX 的多语言支持由一份明确的语言清单定义,共 5 个语言代码:en(英语)、ko(韩语)、zh(中文)、es(西班牙语)、ja(日语)。出厂默认是英文,其余 4 种全部可以在运行时切换,无需改代码。
| 代码 | 语言 | 来源 |
|---|---|---|
en | English(默认) | 内置 |
ko | 한국어 | 可切换 |
zh | 中文(简体中文) | 可切换 |
es | Español | 可切换 |
ja | 日本語 | 可切换 |
语言清单与默认值定义在 config/config.go:
SupportedLanguages = ["en", "ko", "zh", "es", "ja"],DefaultLanguage = "en"
启动时的默认语言按优先级解析:环境变量ARTEX_LANG> 配置文件language字段 > 默认英文。解析逻辑见 config/config.go。
二、最快切换方法:设置页一处选择,界面+报告+对话同步生效
切换 ARTEX 语言不需要命令行,设置页里有一个「显示语言」下拉框。这个选择会同时做两件事(见 web/src/app/(main)/system/settings/page.tsx/system/settings/page.tsx#L124-L131)):
- 界面语言:写入浏览器本地存储(
artex_locale),当前浏览器立即换肤,换浏览器需要重选; - 智能体输出语言:作为
output_language写入服务器设置表,之后智能体写的报告、摘要、对话回复全部跟随,任何浏览器访问都生效。
界面文案的 5 语言翻译目录是web/messages/下的 5 个 JSON 文件,例如中文里「显示语言」这一卡片就定义在 web/messages/zh.json,其中 desc 字段明确告诉用户:
“智能体输出语言保存在服务器上,从任何浏览器访问都会生效。”
三种切换方式按场景选择:
- UI 切换(推荐):设置页 → 显示语言 → 选中目标语言,立即生效;
- 环境变量:启动前设置
ARTEX_LANG=zh,适合部署时固化; - 配置文件:在 config 中写
"language": "zh",优先级低于环境变量。
三、核心揭秘:为什么只译「报告」,不译「推理提示词」?
这是 ARTEX 多语言设计中最值得展开的一点。每个智能体(planner 规划者、worker 执行者、主 agent、chat 助手)的系统提示词正文被称为「段 [A]」——一段经过基准测试(benchmarked)的中文推理正文。ARTEX 的选择是:
段 [A] 逐字保留,永不翻译;只在提示词尾部追加一段代码持有的「输出语言规约」(langDirective)。
这段规约做了什么?它要求模型:所有展示给用户的自然语言(record_fact的摘要、report_finding的标题/描述/结论/修复建议、planner 的态势总结、最终一句话总结、聊天回复)一律用你选的语言书写;但命令、payload、代码、文件路径、URL、参数名、日志/请求/响应原文必须逐字保留,方便复现证据。规约本体见 agent/prompt.go,语言名映射(如"en": "英语(English)")在 agent/outputlang.go。
为什么这么做?三个理由:
- 🧠保住基准行为:段 [A] 是调优过的「大脑」,翻成 5 种语言等于 5 套大脑,攻击面分析和规划质量无法保证不退化。「保留行为、本地化表面」是明确的设计目标(见 agent/outputlang.go 注释);
- 🛡️规约删不掉:语言规约是代码持有的尾部,追加在正文之后。即使用户在界面里修改了提示词正文(存数据库),这段约束依然会在每次渲染时附加——用户自定义正文「翻译不掉」输出语言要求;
- 🚨对抗语言漂移:端到端实测(L1)发现两种漂移:模型把中文漏进 planner 的态势总结(镜像了中文大脑),以及把目标站点语言镜像进报告字段。因此规约里专门加了两条反漂移条款:点名「planner 态势总结」是用户可见字段,并禁止照抄目标/资料的语言。
四、5 语言实测:同一任务,输出有什么不同?
ARTEX 把 5 种语言的规约全部用测试钉死了(见 agent/prompt_test.go 的TestLangDirectiveLocalized),核心断言是:
| 语言 | 规约中指定的展示语言标记 | 特有断言 |
|---|---|---|
en | English | 禁止把中文输出给用户 |
ko | 한국어 | 禁止把中文输出给用户 |
zh | 简体中文 | 中文即目标,不出现「禁中文」条款 |
es | Español | 禁止把中文输出给用户 |
ja | 日本語 | 禁止把中文输出给用户 |
每个断言都验证了:指定了对应语言 + 原文技术片段逐字保留 + 禁止镜像目标语言 + 点名态势总结为用户可见字段。这就是「只译表面」策略在工程上的落法——不是翻译提示词,而是给同一个大脑戴上 5 种语言的「发言面具」。
实测中的表现:
- 选
zh:finding 标题、描述、修复建议、planner 态势总结、聊天回复全为简体中文,curl命令与响应原文保持英文; - 选
es/ja:同样字段切换为西语/日语,PoC 证据块不受影响; - 换浏览器只影响界面换肤,报告语言不跟浏览器走,跟服务器设置走。
五、彩蛋:启动日志也是 5 语言的
不止报告,连控制台启动日志都做了目录化翻译:config/msg_i18n.go 内置了logCatalog与cfgCatalog两套映射,把「数据库配置找不到」「JWT 密钥已迁移」这类运维消息译成 5 种语言,且刻意不翻译ARTEX_PG_DSN、database、dsn等技术标识符——和 langDirective 的策略完全一致:译人话,留原文。
六、总结:ARTEX 多语言支持的完整清单
| 层面 | 是否翻译 | 实现位置 |
|---|---|---|
| 界面文案 | ✅ 5 语言 | web/messages/ |
| 报告/摘要/对话回复 | ✅ 5 语言 | langDirective 尾部规约 |
| 启动/运维日志 | ✅ 5 语言 | config/msg_i18n.go |
| 推理提示词正文(段 [A]) | ❌ 永不翻译 | agent/prompt.go |
| 命令/payload/日志原文 | ❌ 逐字保留 | langDirective 硬性要求 |
一句话总结:ARTEX 的多语言支持 = 本地化用户看到的一切表面 + 保持推理大脑逐字不变,再用代码持有的语言规约尾部和自动化测试,把「语言漂移」挡在门外。对新手来说,记住一点即可:设置页选一次语言,界面、报告、对话全跟着变;而证据原文,永远保持原样。
【免费下载链接】artex-global
Global edition of ARTEX — an LLM multi-agent autonomous penetration-testing framework. English default, switchable to Korean/Chinese/Spanish/Japanese. For authorized, defensive and detection use only. (upstream: Autumn-27/ARTEX, AGPL-3.0)
相关推荐
终极揭秘:Kandinsky 2.2如何成为AI绘画界的多语言沟通大师
终极揭秘:Kandinsky 2.2如何成为AI绘画界的多语言沟通大师 Kandinsky 2.2作为一款强大的多语言文本到图像生成模型,彻底打破了语言壁垒,让
多语言模型怎么选?Qwopus3.8-27B-Flash-mxfp4-MLX 支持中英日西俄5语言的场景实测建议
多语言模型怎么选?Qwopus3.8 27B Flash mxfp4 MLX 支持中英日西俄5语言的场景实测建议 正在 多语言模型怎么选 ?如果你需要一台能同时
VideoSrt多语言支持:中英日韩法德西意泰等多国语言字幕生成终极指南
VideoSrt多语言支持:中英日韩法德西意泰等多国语言字幕生成终极指南 VideoSrt是一款基于Golang开发的开源Windows GUI软件工具,能够识
桌面应用语音音频AI 应用
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考