Addax is an open-source ETL tool that moves data between SQL and NoSQL databases through configurable extraction, transformation, and loading jobs. It is used for data integration across supported sources, and the catalogue entries provide instructions and a skill for working with it.
Borrowing it
Nothing to install: this file belongs to wgzhao/Addax. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.
curl -O https://raw.githubusercontent.com/wgzhao/Addax/master/AGENTS.mdgit clone --depth 1 https://github.com/wgzhao/AddaxWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/instructions/wgzhao/addax/agents-md)<a href="https://agentmods.dev/instructions/wgzhao/addax/agents-md"><img src="https://agentmods.dev/badge/instructions/wgzhao/addax/agents-md/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/instructions/wgzhao/addax/agents-md"><img src="https://agentmods.dev/badge/instructions/wgzhao/addax/agents-md.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.02250 | $0.02250 |
| Opus 5.5 | $0.00900 | $0.00900 |
| Sonnet 5.5 | $0.00450 | $0.00450 |
| Haiku 4.5 | $0.00225 | $0.00225 |
Grade A, and why
Addax AGENTS.md scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 2d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 114 lines — stays where its author put it; the contents beside it link to each section on GitHub.
AGENTS.md
概述
该项目是一个离线的 ETL 工具,通过插件化架构支持多种数据源和目标。核心组件包括 Engine、JobContainer,以及各种 Reader/Writer 插件。项目使用 Maven 管理构建和依赖。
通用偏好
- 用中文回复,代码注释用英文,注释写 why 不写 how
- 简洁直接,不要多余总结和解释
- 直接写代码,不需要每次确认后再生成
编译
整体编译
mvn clean package -T1C -DskipTests
打包发行版(产出可运行的目录树)
mvn package -Pdistribution -T1C -DskipTests
只有带 -Pdistribution 才会在 target/addax-<version>/ 下组装出 lib/ 和 plugin/,bin/addax.sh 依赖该目录结构,源码树里的脚本无法直接运行。
单模块编译(以 dorisreader 为例)
mvn clean package -pl :dorisreader -am
禁止
core为核心模块,包含 Engine 和 JobContainer 等核心类。修改此模块需谨慎,确保不破坏核心运行逻辑。addax-rdbms包含多个 JDBC/SQL 相关的工具类addax-lib包含一些通用工具类和依赖管理, 若无必要,避免修改核心工具类。- 尽可能不要引入新的依赖库,尤其是核心模块和公共库。新增依赖可能引入版本冲突或增加维护负担。
- 考虑到兼容各类 RDBMS 的最低版本,因此各依赖库的版本请勿修改,除非确实需要修复安全漏洞或兼容性问题,并且在修改前先评估对现有插件的影响。
- 不需要写单元测试,所有的测试都会在目前特定构建的环境下手工执行
运行流程
- 编辑一个
json格式或者yaml格式的 Job 配置文件,指定 Reader、Writer 以及相关参数,可以参考core/src/main/job下的例子 - 执行发行版目录里的
bin/addax.sh脚本,job 文件是位置参数(-j是 JVM 参数,勿写成-job),例如:
sh target/addax-<version>/bin/addax.sh /path/to/job.json
程序运行的内部流程和新增插件的开发流程可以参考 plugin development 文档
关键运行时约定
以下约定跨模块、不直观,改代码时最容易踩坑;细节以源码为准。
- 配置优先级:Job 文件 >
conf/core.json> 插件plugin.json(后两者只补缺失键,不覆盖)。${name}在解析前从 JVM system property 替换,未知占位符原样保留;-p经sh -c展开且不加引号,值里不能有空格、&、;、$等 shell 元字符。curr_*/biz_*日期变量由addax.sh注入。 - split 必须 1:1:Reader
split(adviceNumber)的数量是建议值,Writersplit(mandatoryNumber)必须返回同样数量;JobContainer对不一致直接报CONFIG_ERROR,不补齐、不重采样。多表 RDBMS writer 要求表数 == 并发数。 - 并发推导:配置了
speed.byte/speed.record时按“总速率/单通道速率”算 channel 数,speed.channel被忽略;否则用speed.channel(默认 1)。channel 数最终会被 task 数截断,taskGroup 数 =ceil(channel / core.container.taskGroup.channel)(默认 5)。 - 一次 task = 一个 channel + 一对 reader/writer 线程,writer 先启动。失败重试仅当 writer
supportFailOver()为 true 且未超过maxRetryTimes(默认 1,即默认不重试);重试间隔 10s、等待预算 60s,且必须等上一次线程真正退出后才允许重试,避免重复写入。 - 状态机:task 的 FAILED 不可逆,首个失败原因保留;只有 reader/writer 两个 worker 都终止且
Communication进入终态,task 才算结束。 - errorLimit 陷阱:
errorLimit.record优先于percentage;两者都未配置时不做任何错误检查,即使所有行写入失败也可能退出 0。E2E 的 job 都显式设置"errorLimit": {"record": 0}。 - 脏数据:reader/writer 转换或写入失败通过
TaskPluginCollector.collectDirtyRecord计入 readFailed/writeFailed,默认最多打印 128 条(负数=不限)。Transformer 返回 null 表示过滤(不计错误),抛异常才计脏数据。 - RDBMS:
splitPk/autoPk决定主键区间切分,单表默认切分数再 ×5;querySql模式每个 SQL 一个 task。writeMode 支持 insert/replace/update(key):MySQLON DUPLICATE KEY、PostgreSQL/DuckDBON CONFLICT、Oracle/SQL ServerMERGE。批量失败会回滚并逐行重试,坏行记脏数据。连接池默认 maxTotal=32、borrow 等待 30s。 - 文件/HDFS:writeMode 为 truncate/append/nonConflict/overwrite。hdfswriter 先写隐藏
.<uuid>staging 目录,post 时 rename 到目标且拒绝覆盖同名文件,destroy 时清理 staging;压缩文件不支持 append。 - 插件隔离:每个插件由独立
JarLoader加载plugin/<type>/<name>及其libs/,Job/Task 调用期间切换线程 context classloader;入口类必须是 public、非抽象、静态嵌套的<class>$Job/<class>$Task。 - 发行版构建:必须先
mvn clean package再mvn package -Pdistribution;第二遍不能 clean,因为 root assembly 读取各模块target/下的产物。 - 验证方式:无单元测试;改动的最终验证是
e2e/的“打包发行版”端到端套件(真实bin/addax.sh+plugin/+ 容器数据库)。case 契约见e2e/README.md;HDFS case 用file:///,无需真实集群。
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 2d ago Changed · +16 lines · +965 tokens per session 0852390239d2
- 1mo ago Changed · +8 lines · +85 tokens per session 09c43a4e809e
- 1mo ago Changed · -4 lines · -12 tokens per session 936f457831e2
- 1mo ago Changed · -58 lines · -615 tokens per session 0c95f741b637
- 1mo ago Changed · +33 tokens per session a44776005023
- 2mo ago First seen · 152 lines · 1,794 tokens per session scan A 4bb9394a3eff
Addax AGENTS.md is an instructions file published in the GitHub repository wgzhao/Addax (1,454 stars, last pushed 2d ago), licensed Apache-2.0. It adds 2,250 tokens to every session, about $0.0090 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other instructions, from other repositories
vscode buildNext.instructions.md
Working notes and architecture documentation for the new esbuild-based build system in build/next. Use when making changes to the new build pipeline (transpile/bundle commands, NLS plugin, source-map handling, resource copying, or self-hosting watch tasks).
next.js AGENTS.md
AGENTS.md instructions for vercel/next.js, covering next.js development guide, codebase structure, monorepo overview, core package: packages/next and other important packages.
vscode oss-third-party-notices.instructions.md
Instructions for microsoft/vscode, covering vs code oss third-party-notices pipeline, architecture, pipeline flow in ci, cache eligibility and rollout and applying the notice (cutover).
langchain AGENTS.md
AGENTS.md instructions for langchain-ai/langchain, covering global development guidelines for the langchain monorepo, corridor security analysis, project architecture and context, monorepo structure and development tools & commands.
vscode copilot-instructions.md
Copilot instructions for microsoft/vscode, covering vs code copilot instructions, project overview, root folders, core architecture (src/ folder) and built-in extensions (extensions/ folder).
deepseek-harness AGENTS.md
AGENTS.md instructions for deepseek-ai/deepseek-harness, covering agents.md, pre-stable apis and released session data, repository layout, commands and host sandbox failures.