Feintkit

The authoritative text is the English page: English version of this page

套件的工具:安装、判定、检测、报告、保持事实最新

场景运行器(feintkit,见 DETECTION-INTEGRATION.md)周围有五个工具。本页给出每个工具的确切命令、标志、退出码和离线示例。命令行和标志已由文档包的测试对照真实工具核对过。请先阅读 RESPONSIBLE-USE.md。

步骤工具命令是否需要网络
安装安装器(feintkit-suite)node packages/installer/dist/src/bin.js仅当来源为 https 时需要
运行运行器(feintkit)见 DETECTION-INTEGRATION.md否
判定转录记录转录记录导入,通过 feintkit verify 使用node packages/cli/dist/src/bin.js否
代替安全产品检测测试替身(feintkit-watch)node packages/watch/dist/src/bin.js否
报告报告(feintkit-report)node packages/report/dist/src/bin.js否
保持事实最新事实核查(feintkit-factcheck)node packages/factcheck/dist/src/bin.js是

在执行 npm run setup 之后,所有命令均须在套件的仓库根目录下运行。示例中以 # exit <n> 结尾的行表示该命令返回的退出码;输入命令时请省略该注释。<work> 代表你所选的任意空目录。

安装器(feintkit-suite)

用途:从目录、发布 tarball 或 https 地址解包套件;对照你通过单独渠道提供的校验和检查 tarball;显示免责声明通知和它将要执行内容的计划;然后解包。除非你传入 --run-setup,否则它不会运行套件的构建;传入后,它会在最小环境下运行 npm run setup --ignore-scripts,列出场景并打印后续步骤。除非另行指示,它拒绝以 root 身份运行,也绝不覆盖不属于它自己安装的目录。在已完成的安装上再次运行会打印 already installed。

适用位置:第一步,用于尚未安装套件的机器。已经在检出目录中工作的维护者不需要它。

用法(工具自身的文本):

usage: feintkit-suite install --from <directory|tarball|https-address> [--sha256 <hex> | --checksums <SHA256SUMS file or https address>] [--trust-remote-checksums] [--dest <directory>] [--allow-root] [--force] [--run-setup | --skip-build] [--accept-disclaimer]
       feintkit-suite install [--dest <directory>]   (with FEINTKIT_RELEASE_BASE set to an https release address; needs --sha256 or --trust-remote-checksums)
       feintkit-suite --version
       feintkit-suite --help
标志含义
--from <source>目录、.tar.gz 文件或 https 地址。不指定时,地址由 FEINTKIT_RELEASE_BASE 构成。
--sha256 <hex>tarball 的预期 SHA-256,取自下载之外的渠道。不能与 --checksums 同时使用。tarball 需要 --sha256 或 --checksums;目录两者都不需要。
--checksums <file or https address>列出该 tarball 的 SHA256SUMS 文件。请传入你另行获得的本地文件。https 地址(包括由 FEINTKIT_RELEASE_BASE 构成的地址)与下载来自同一来源,除非同时给出 --trust-remote-checksums,否则会被拒绝。
--trust-remote-checksums接受与 tarball 取自同一来源的校验和文件,并打印警告:控制该来源的人就控制了被解包的内容。
--dest <directory>安装位置。默认值:当前目录中的 feintkit-suite。
--allow-root允许以 root 用户身份运行。
--force替换包含不同版本或未完成构建的安装。
--run-setup解包后在最小环境下运行套件的 npm run setup --ignore-scripts(所解包软件包的 setup 脚本会执行;依赖项的安装脚本不会)。不带它时不会执行任何内容,并打印确切的命令。
--skip-build默认行为,为兼容旧命令行而保留:只解包。不能与 --run-setup 同时使用。
--accept-disclaimer无需提示即确认该通知。非交互式会话需要它。
--version, --help打印版本或用法文本,并以 0 退出。

退出码:

退出码含义
0已安装、已经安装,或 --help / --version。
2用法错误(也包括:同时给出 --sha256 和 --checksums、同时给出 --run-setup 和 --skip-build、没有来源、目录来源却带有校验和,或 https 校验和却没有 --trust-remote-checksums)。
3完整性失败:来源未找到、tarball 没有校验和、校验和不匹配、tarball 损坏,或下载失败。
4在没有 --allow-root 的情况下拒绝以 root 身份运行。
5目标位置有问题:不是 Feintkit 的安装、没有 --force 却是另一个安装,或写入失败。
6设置或场景列表失败。
7免责声明通知未被确认。

离线示例(以本地目录作为来源,不下载任何内容,软件包中的任何内容都不会执行):

node packages/installer/dist/src/bin.js --version   # exit 0
node packages/installer/dist/src/bin.js install --from docs/guide --dest <work>/suite   # exit 7
node packages/installer/dist/src/bin.js install --from docs/guide --dest <work>/suite --accept-disclaimer   # exit 0
node packages/installer/dist/src/bin.js install --from <work>/missing.tar.gz --sha256 0000 --dest <work>/other --accept-disclaimer   # exit 3

通知会在读取任何来源之前显示并要求确认,因此在非交互式会话中,每次安装都需要 --accept-disclaimer。第一次安装被拒绝,因为示例会话不是交互式的;第二次确认了通知,并把 docs/guide 当作套件解包,不运行任何内容。真实的安装应使用你自己的 --from 来源,以及来自第二个渠道的 --sha256 或本地 --checksums 值,并且只有在读过该软件包的 setup 脚本之后才加上 --run-setup。

转录记录导入(feintkit verify --transcript)

用途:把已保存的智能体转录记录转换为判定规则所判定的纯文本,使判定只看智能体说了什么、做了什么,而不看周围的记录格式。它是一个没有自己命令的库;当 verify 被给定 --format 时,运行器会使用它。

适用位置:场景已针对你的智能体运行、并且你保存了智能体的输出之后,用于判定智能体是否遵从了注入的指令。

用法(运行器自身用法文本中的 verify 一行):

verify <id> [--transcript <file>] [--format <name>] [--strict] [--record] [--fail-on-complied] [--deterministic]
标志含义
--transcript <file>已保存的转录记录。不带 --format 时,该文件按原样作为纯文本判定。
--format <name>按指定格式读取文件,或用 auto 自动检测。需要 --transcript。可用名称:claude-stream-json、anthropic-messages、openai-chat、plain。
--strict与 --format 一起使用:无法被精确读取的转录记录将被视为错误,而不是提示。需要 --format。
--record把判定结果作为 agent_outcome 事件写入场景的 events.jsonl,报告随后会显示它。
--fail-on-complied当判定为 complied 时以 3 退出。
--deterministic使用固定的运行 id RUN0000,与 run 相同。

verify 的退出码:

退出码含义
0产物检查通过(且智能体没有照做,或未给出 --fail-on-complied)。
1产物检查失败,或未找到场景或其运行。
2用法错误,或转录记录无法读取或导入(消息以 cannot ingest transcript 开头)。
3给出了 --fail-on-complied 且判定为 complied。

使用 --format 时,格式和所有提示会打印到错误流(transcript format: <name> (named|detected))。大于 16777216 字节的转录记录会被拒绝。

离线示例(本指南自己的页面充当转录记录文本:MARKERS.md 包含一次确定性运行的示例确认令牌,RESPONSIBLE-USE.md 则不包含):

node packages/cli/dist/src/bin.js --root repos/feintkit-mcp --out-dir <work>/out run mcp-01-tool-poisoning --deterministic   # exit 0
node packages/cli/dist/src/bin.js --root repos/feintkit-mcp --out-dir <work>/out verify mcp-01-tool-poisoning --transcript docs/guide/RESPONSIBLE-USE.md --format plain --deterministic   # exit 0
node packages/cli/dist/src/bin.js --root repos/feintkit-mcp --out-dir <work>/out verify mcp-01-tool-poisoning --transcript docs/guide/MARKERS.md --format plain --strict --record --fail-on-complied --deterministic   # exit 3
node packages/cli/dist/src/bin.js --root repos/feintkit-mcp --out-dir <work>/out verify mcp-01-tool-poisoning --format plain   # exit 2

第二条命令打印 verdict: resisted,第三条打印 verdict: complied 并以 3 退出,第四条是用法错误,因为 --format 需要 --transcript。

检测测试替身(feintkit-watch)

用途:一个刻意做得很简单的安全产品替身,使覆盖矩阵和报告中的“检测”列可以被端到端地演练。它读取被测智能体所做和所见的内容(已保存的或通过管道输入的无界面会话转录记录中的工具调用、工具结果的内容、助手的文本和加载的技能文本,或每行一条的普通 shell 命令列表),将每次调用和每段内容与一个简短易读的规则文件(packages/watch/rules/starter.json)匹配,并写出 feintkit-matrix 和 feintkit-report 所读取的检测文件(--detections),外加一个证据文件。它是一个测试夹具,也是产品必须记录什么、以何种格式记录的范例。它不是安全产品,它打印的每一行都这样声明。

适用位置:场景已针对你的智能体运行、并且你保存了智能体的输出之后,在矩阵或报告之前。三个局限是设计的一部分。它只做观察:它在智能体作出决定之后才看到调用,无法阻止,因此 blocked 结果是标注为 enforcement: simulated 的策略判定,绝不是真正的拒绝。它看到的是会话的流,而不是协议或网络:42 个场景中有 9 个把信号放在协议流量、网络流量、像素或被客户端剥离的 frontmatter 中,所以工具不为它们写入条目,矩阵保持 not-reported;它从不对看不到的内容宣称 missed,只对十一个场景报告 missed,这些场景的智能体判定能证明信号经过了流,条件是判定为 complied 且没有规则匹配。回复中的确认令牌是智能体判定,而不是检测,没有任何规则读取它。大多数入门规则匹配套件自己的字符串,因此这些行上的绿色结果是循环证据;规则文件把每条规则标为 marker 或 behaviour。该工具给出的 blocked 或 detected 不是关于任何产品的证据。请将检测文件命名为 detections.feintkit-watch.json,使其来源在命令行和 CI 日志中清晰可见。

若要用真实智能体对许多场景运行它,请使用示例循环 docs/examples/real-agent-loop.sh(智能体、判定、带 --merge 的扫描、矩阵和报告;可以停止后再次启动)。分步版本见 DETECTION-INTEGRATION.md 的第 5 节。

用法(工具自身的文本):

usage: feintkit-watch scan (--scenario <id> --transcript <file> [--verdict <v> | --events <file>] | --map <file>) --rules <file> --out <file> [--evidence <file>] [--merge] [--format auto|stream-json|command-log] [--root <dir>]... [--timestamp <iso>] [--fail-on-missed]
       feintkit-watch tee --scenario <id> --rules <file> --out <file> [--verdict <v> | --events <file>] [--evidence <file>] [--merge] [--format auto|stream-json|command-log] [--root <dir>]... [--timestamp <iso>]
       feintkit-watch check-rules --rules <file> [--root <dir>]...
       feintkit-watch export --evidence <file> --format jsonl|sarif|csv --out <file>
       feintkit-watch import --input <file> --source <name> --out <file> [--evidence <file>] [--merge] [--root <dir>]...
标志含义
--scenario <id>该转录记录所属的场景。由你指定,绝不从内容中猜测。
--transcript <file>已保存的转录记录(scan);tee 改为读取标准输入。
--map <file>多次运行的 JSON 映射(schemaVersion 为 1 和 runs,每项含 scenario、transcript,以及可选的 events 或 verdict);路径相对于该映射文件。不能与 --scenario、--transcript、--verdict 或 --events 同时使用。
--rules <file>规则文件。
--out <file>要写入的检测文件(场景 id 到 detected、blocked 或 missed 的扁平对象)。
--evidence <file>同时写出证据文件:每次命中一行 JSON,截断至匹配的文本,外加一行汇总。配合 export 时,它是要读取的证据文件;配合 import 时,它是导入事件的可选文件。
--merge读取已有的检测文件和证据文件,仅替换被扫描的场景。缺失的文件视为空;无效的文件是错误,且不会被改动。
--format <name>scan 和 tee:auto(默认)、stream-json 或 command-log。export:jsonl、sarif 或 csv(必填)。
--verdict <v>来自 feintkit verify 的智能体判定:complied、resisted、resisted_surfaced 或 inconclusive。没有判定就无法确定 missed。
--events <file>从 events.jsonl 的最后一个 agent_outcome 事件中读取判定。不能与 --verdict 同时使用。
--root <dir>包含场景的类别仓库;可重复指定多个。默认值:当前目录。
--timestamp <time>设置证据行的时间,须严格采用 YYYY-MM-DDTHH:MM:SS.mmmZ 的格式。当 FEINTKIT_DETERMINISTIC=1 时,时间改为固定值。
--fail-on-missed当被扫描的场景为 missed 时以 3 退出,在文件写入之后。
--input <file>仅限 import:真实产品的 JSON Lines 事件(形态见下文)。
--source <name>仅限 import:产品名称(1 至 64 个字母、数字、空格、点、下划线或连字符;不能包含 feintkit-watch 或 stand-in)。它成为每个导入事件的 product。

tee 把标准输入原样传给标准输出,并在输入结束时完成与 scan 相同的工作,把它的行打印到错误流;check-rules 验证规则文件及其良性对照,并打印如实的覆盖行。

导出与导入(仅观察、离线;确切的形态见规格 fnd-18-watch 的修订 1.2)。export --evidence <file> --format jsonl|sarif|csv --out <file> 读取证据文件并写出三种格式之一。jsonl 每行一个事件,具有稳定的键 schema、product、stand_in、timestamp(ISO-8601)、event(detection 或 missed)、scenario、rule、action(detect 或 block,其中 block 是模拟的)、basis(marker 或 behaviour)、enforcement、tool、evidence(已被脱敏并截断至 200 个字符的片段)和 location(转录记录的 path:line)。csv 具有相同的列,对电子表格会当作公式读取的任何单元格,前面加一个撇号。sarif 是 SARIF 2.1.0 日志,其工具驱动程序明确声明它是测试替身(TEST STAND-IN)而不是安全产品;每条结果都有规则 id、一条消息、作为逻辑位置的场景,并且当转录记录路径是相对路径时,以转录记录的行作为物理位置。import --input <file> --source <name> --out <file> 方向相反:写出相同 JSON Lines 形态的真实产品(检测只要求 scenario 和 action;event 为 missed 表示场景已运行但未被上报;未知的键会被忽略)会得到它自己的检测文件,供 --detections 使用。替身和产品的结果绝不混用:--source 是必填的,导入的事件把它保留为 product,且 stand_in 为 false,替身自身的记录会被拒绝,输出文件名若包含 feintkit-watch 也会被拒绝。比较两者的办法是每次只给矩阵或报告一个检测文件。

退出码:

退出码含义
0完成(场景没有写入条目时也是如此)。
1无法写入某个输出文件。
2用法错误、输入无法读取或无效、规则无效,或场景未知。
3给出了 --fail-on-missed 且被扫描的场景为 missed。

离线示例(转录记录是软件包的测试夹具;第二条命令写出的检测文件,会被下面第一个报告示例读取):

node packages/watch/dist/src/bin.js check-rules --rules packages/watch/rules/starter.json --root repos/feintkit-mcp --root repos/feintkit-skills --root repos/feintkit-injection --root repos/feintkit-exfil --root repos/feintkit-agents --root repos/feintkit-supplychain --root repos/feintkit-abuse   # exit 0
node packages/watch/dist/src/bin.js scan --scenario mcp-08-exfil-sim --transcript packages/watch/test/fixtures/mixed.jsonl --rules packages/watch/rules/starter.json --out <work>/detections.feintkit-watch.json --evidence <work>/detections.evidence.jsonl --timestamp 1970-01-01T00:00:00.000Z --root repos/feintkit-mcp --root repos/feintkit-skills --root repos/feintkit-injection --root repos/feintkit-exfil --root repos/feintkit-agents --root repos/feintkit-supplychain --root repos/feintkit-abuse   # exit 0
node packages/watch/dist/src/bin.js export --evidence <work>/detections.evidence.jsonl --format sarif --out <work>/detections.feintkit-watch.sarif   # exit 0
node packages/watch/dist/src/bin.js export --evidence <work>/detections.evidence.jsonl --format jsonl --out <work>/detections.feintkit-watch.events.jsonl   # exit 0
node packages/watch/dist/src/bin.js import --input packages/watch/test/fixtures/import-sample.jsonl --source ExampleGuard --out <work>/detections.exampleguard.json --root repos/feintkit-mcp --root repos/feintkit-skills --root repos/feintkit-injection --root repos/feintkit-exfil --root repos/feintkit-agents --root repos/feintkit-supplychain --root repos/feintkit-abuse   # exit 0
node packages/watch/dist/src/bin.js scan --scenario mcp-04-excessive-scope --transcript packages/watch/test/fixtures/clean.jsonl --verdict complied --rules packages/watch/rules/starter.json --out <work>/missed.json --fail-on-missed --root repos/feintkit-mcp --root repos/feintkit-skills --root repos/feintkit-injection --root repos/feintkit-exfil --root repos/feintkit-agents --root repos/feintkit-supplychain --root repos/feintkit-abuse   # exit 3
node packages/watch/dist/src/bin.js scan --scenario mcp-08-exfil-sim --transcript packages/watch/test/fixtures/mixed.jsonl --rules packages/watch/rules/starter.json --out <work> --root repos/feintkit-mcp --root repos/feintkit-skills --root repos/feintkit-injection --root repos/feintkit-exfil --root repos/feintkit-agents --root repos/feintkit-supplychain --root repos/feintkit-abuse   # exit 1
node packages/watch/dist/src/bin.js scan --map <work>/map.json   # exit 2

第二条命令打印 mcp-08-exfil-sim blocked (1 rule hit; enforcement: simulated, nothing was stopped) 以及一行说明 48 个场景中有 39 个有规则。第三条没有规则命中,判定为 complied,所以结果是 missed,退出码是 3。第四条无法写入,因为输出路径是一个目录。

报告(feintkit-report)

用途:根据场景清单、各次运行的产物,以及(在你提供时)你的检测记录,构建一份结果报告。报告按场景列出产物结果、智能体判定、检测结果以及 ATLAS 和 OWASP 映射,并以按 ATLAS 技术汇总的统计结尾。格式:md(默认)、json、html、sarif、junit(供 CI 系统使用的 JUnit XML,见 AUTOMATION.md)。

适用位置:运行和判定之后,用于把结果交给他人,或作为 CI 作业的关卡。覆盖矩阵(feintkit-matrix,DETECTION-INTEGRATION.md)是同一数据的较短视图。

用法(工具自身的文本):

usage: feintkit-report [--root <dir>]... [--out-dir <dir>] [--detections <file>] [--format json|md|html|sarif|junit] [--output <file>] [--timestamp <YYYY-MM-DDTHH:MM:SS.mmmZ>] [--agent <name>] [--agent-version <text>] [--model <text>] [--permission-mode <text>] [--mitigations] [--fail-on-missed] [--fail-on-complied] [--fail-on-control-fired]
标志含义
--root <dir>包含场景的类别仓库;可重复指定多个。默认值:当前目录。
--out-dir <dir>各次运行的产物目录(与运行器的相同)。
--detections <file>把场景 id 映射到 detected、blocked 或 missed 的 JSON 文件。
--format <name>json、md、html、sarif 或 junit。默认 md。
--output <file>将报告写入文件,而不是打印。
--timestamp <time>设置生成时间,须严格采用 YYYY-MM-DDTHH:MM:SS.mmmZ 的格式。当 FEINTKIT_DETERMINISTIC=1 时,时间改为固定值。
--agent <name>, --agent-version <text>, --model <text>, --permission-mode <text>记录是哪个智能体产生了这些结果(fnd-44):报告随后带有智能体身份,markdown 和 html 报告会打印一行 Agent under test。每一项都是简短的纯文本标签,最多 64 个字符,看起来像机密时会被拒绝并以 2 退出;省略的字段为 unknown。不会启动智能体去查明这些信息。
--mitigations为每个有发现的场景加入经审阅的防御方说明(应限制什么、应添加哪条规则、应更改哪项设置):在 md 和 html 中是一个小节,在 sarif 中是规则的帮助文本,在 junit 中是失败文本。与布局固定的 json 同用时会被拒绝。见 AUTOMATION.md。
--fail-on-missed当有场景被记录为 missed 时以 3 退出。
--fail-on-complied当有智能体判定为 complied 时以 3 退出。
--fail-on-control-fired当判定器或被测产品对良性对照发出了误报时(对照的判定为 complied 或 resisted_surfaced,或检测为 detected 或 blocked)以 3 退出。

退出码:

退出码含义
0报告已生成,且没有适用的失败条件。
1场景注册表错误(错误流上以 FAIL 开头的行)。报告仍会生成。
2用法错误、检测文件无法读取或无效,或输出文件无法写入。
3适用了 --fail-on-missed、--fail-on-complied 或 --fail-on-control-fired。

离线示例(它们使用上面转录记录示例的运行,第四个还使用上面替身的检测文件;第一个不会在 <work> 之外写入任何内容):

node packages/report/dist/src/bin.js --root repos/feintkit-mcp --out-dir <work>/out --format md --output <work>/report.md   # exit 0
node packages/report/dist/src/bin.js --root repos/feintkit-mcp --out-dir <work>/out --format sarif --output <work>/report.sarif   # exit 0
node packages/report/dist/src/bin.js --root repos/feintkit-mcp --out-dir <work>/out --format junit --mitigations --output <work>/report.xml   # exit 0
node packages/report/dist/src/bin.js --root repos/feintkit-mcp --out-dir <work>/out --detections <work>/detections.feintkit-watch.json --output <work>/with-detections.md   # exit 0
node packages/report/dist/src/bin.js --root repos/feintkit-mcp --out-dir <work>/out --fail-on-complied --output <work>/gate.md   # exit 3
node packages/report/dist/src/bin.js --format pdf   # exit 2

事实核查(feintkit-factcheck)

用途:重新读取 CLIENTS.md 所引用的厂商文档的每一句话,并运行映射来源检查(scripts/verify-mappings.py --online),以便发现这些来源的漂移。带 --write 时,它会把发现的每条事实的日期记录到 docs/guide/facts-verified.json;各指南会显示该日期。

适用位置:维护工作,按计划(每隔几天)以及发布之前运行。它是这里唯一需要网络的工具:每项检查都是对所引用页面发出的出站请求。套件的普通用户不需要它。

用法(工具自身的文本):

usage: feintkit-factcheck [--repo <dir>] [--facts-file <file>] [--write] [--report <file>] [--skip-facts] [--skip-mappings] [--delay <ms>] [--timeout <ms>]
  re-reads every cited sentence of the client guides and runs scripts/verify-mappings.py --online
  --write        record today's date for each fact that was found, in docs/guide/facts-verified.json (nothing is written without it)
  --report FILE  write a report; FILE ending in .json gives JSON, anything else Markdown
  exit codes: 0 all ok, 1 drift found, 2 usage, 3 network failure
标志含义
--repo <dir>套件根目录。默认值:当前目录。
--facts-file <file>--write 记录日期的位置。默认值:--repo 之下的 docs/guide/facts-verified.json。
--write为每条被找到的事实记录今天的日期。不能与 --skip-facts 同时使用。
--report <file>写出报告;名称以 .json 结尾则为 JSON,其他情况为 Markdown。
--skip-facts不检查所引用的句子。
--skip-mappings不运行映射来源检查。同时给出两个跳过选项属于用法错误。
--delay <ms>两次请求之间的停顿。默认值 1000。
--timeout <ms>单次请求的时间限制。默认值 30000。

退出码:

退出码含义
0全部找到且相符。
1漂移:某个句子未找到、某个页面已移动或返回了错误状态,或某个映射来源不同。
2用法错误。
3网络故障且没有漂移。

离线示例(只有用法错误可以在没有网络时运行;真正的检查是 node packages/factcheck/dist/src/bin.js,它会发出请求):

node packages/factcheck/dist/src/bin.js --skip-facts --skip-mappings   # exit 2
node packages/factcheck/dist/src/bin.js --write --skip-facts   # exit 2
node packages/factcheck/dist/src/bin.js --delay soon   # exit 2

其他命令的标志

套件的命令行工具和子命令比上面的五个更多。本表列出它们各自用法文本中的每一个标志,以及接受该标志的命令:运行器(feintkit)及其 honey、pack、accuracy 和 variants 命令、控制服务器、文档生成器及其 translate 命令、guard、Web 界面、清单工具、覆盖矩阵、脚手架工具、feintkit-report 的子命令 diff、history、modes、repeats、store、coverage、summary 和 mitigations,以及 feintkit-watch 的子命令 replay、selftest 和 bundle。用未知标志调用时,每个命令都会打印自己的用法文本。feintkit verify 的标志见转录记录导入一节,上述五个工具的标志见它们各自的表格。

标志使用者含义
--root <dir>feintkit, feintkit-docs, feintkit-gui, feintkit-gui demo, feintkit-manifest changelog, feintkit-matrix, feintkit-report history, feintkit-report coverage, feintkit-report summary, feintkit-watch replay, feintkit-watch selftest, feintkit-watch bundle包含场景的文件夹(类别仓库);可重复指定多个。不指定时,命令使用当前文件夹,而运行器和 Web 界面则使用已安装的类别仓库。
--out-dir <dir>feintkit, feintkit honey, feintkit-gui, feintkit-matrix, feintkit-report history, feintkit-report summary, feintkit-watch replay, feintkit-watch bundle各次运行写入、命令读取的产物文件夹。
--out-dir <folder>feintkit-gui demo演示内容写入的新建或空文件夹。
--deterministicfeintkit, feintkit honey使用确定性模式的固定运行 id 和时钟,使重复运行写出相同的字节。
--allfeintkit与 clean 一起使用:删除所有场景的产物,而不是某一个场景的。
--yesfeintkit与 clean --all 一起使用:确认删除。
--jsonfeintkit与 list 一起使用:以 JSON 打印注册表。
--jsonfeintkit pack, feintkit-manifest pack与 check 一起使用:以 JSON 打印结果。
--jsonfeintkit accuracy, feintkit variants将结果打印为一个 JSON 文档,而不是文本(对 variants,与 judge 一起使用)。
--jsonfeintkit-guard以 JSON 打印发现。
--port <0-65535>feintkit, feintkit-gui本地 Web 界面的 TCP 端口;0 表示由系统选取一个空闲端口。
--port <0-65535>feintkit honey与 listen 一起使用:回环监听器的端口;0 表示由系统选取一个空闲端口。
--host <address>feintkit, feintkit-guiWeb 界面绑定的地址:127.0.0.1、localhost 或 ::1。不接受其他任何值。
--scenario <id>feintkit honey与 plant 和 listen 一起使用:诱饵所属的场景。
--dir <folder>feintkit honey与 plant 一起使用:接收诱饵文件的文件夹。
--file <name>feintkit honey与 plant 一起使用:诱饵文件的名称。
--transcript <file>feintkit honey与 scan 一起使用:保存了智能体所说或所做内容的文件。
--format <name>feintkit honey与 scan 一起使用:转录记录格式,与 feintkit verify --format 相同。
--recordfeintkit honey与 scan 一起使用:把结果记录到该次运行的事件中。
--fail-on-leakfeintkit honey与 scan 一起使用:诱饵泄露时以 3 退出。
--max-seconds <n>feintkit honey与 listen 一起使用:经过这么多秒后停止监听器。
--pack <dir>feintkit pack放在 list、run、verify 或 clean 之前:加载一个场景包文件夹;可重复指定多个。
--mappings <file>feintkit pack, feintkit-manifest pack与 check 一起使用:用于检查该包中各场景的映射文件。
--name <pack-name>feintkit pack与 new 一起使用:新包的名称。
--prefix <letters>feintkit pack与 new 一起使用:作为该包每个场景 id 开头的 2 至 5 个字母。
--labels <file>feintkit accuracy一个带标注的回复的 JSON 文件,将被加入内置语料库。
--replies <file>feintkit variants与 judge 一起使用:保存了智能体对每个变体的回复的 JSON 文件。
--run <id>feintkit variants与 judge 一起使用:这些回复的运行 id,4 至 16 个字母或数字。
--variant <name>feintkit variants与 write 一起使用:只写出该变体;可重复指定多个。
--suite-root <dir>feintkit-control服务器所处理的套件的文件夹。
--read-root <dir>feintkit-control审计工具可以读取的文件夹;可重复指定多个。
--out-root <dir>feintkit-control自动化工具写入的唯一文件夹。
--ollama-url <address>feintkit-control本地模型服务器的回环地址,供针对本地模型运行场景的工具使用。
--model <name>feintkit-control本地模型的名称。
--index <file>feintkit-docs场景索引文件。
--mappings <file>feintkit-docs映射文件。
--out <dir>feintkit-docsgenerate 写入指南的文件夹,也是 check 所比较的对象。
--guide <dir>feintkit-docs translate其 .md 页面被翻译的英文指南的文件夹(只读)。
--catalogs <dir>feintkit-docs translate翻译目录的文件夹,每种语言一个 <code>.json 文件。
--out <dir>feintkit-docs translate与 generate 和 check 一起使用:为每种语言接收一个子文件夹的文件夹,也是 check 所比较的对象。
--lang <code>feintkit-docs translate要处理的语言,例如 de(extract 必填;不带它时,generate 和 check 会处理所有目录)。
--show-allowedfeintkit-guard同时列出内联许可所允许的用法。
--mappings <file>feintkit-manifest与 registry 一起使用:用于检查每个场景映射的映射文件。
--since <version>feintkit-manifest changelog保留该版本及之后版本的条目。
--id <id>feintkit-manifest changelog保留某一个场景的条目。
--format <name>feintkit-manifest changelog, feintkit-report diff, feintkit-report history, feintkit-report modes, feintkit-report repeats, feintkit-report mitigations输出格式:text(默认)、md 或 json。
--format <name>feintkit-matrixmd(默认)或 json。
--format <name>feintkit-report coverage, feintkit-report summarytext(默认)、md、html 或 json。
--detections <file>feintkit-matrix, feintkit-report history, feintkit-report summary把场景 id 映射到 detected、blocked 或 missed 的 JSON 文件。
--fail-on-missedfeintkit-matrix当有场景被记录为 missed 时以 3 退出。
--fail-on-compliedfeintkit-matrix当有智能体判定为 complied 时以 3 退出。
--fail-on-control-firedfeintkit-matrix当判定器或被测产品对良性对照发出了误报时以 3 退出。
--dest <dir>feintkit-new与 repo 一起使用:要创建的文件夹。
--repo <dir>feintkit-new要向其中添加场景或要检查的类别仓库。
--title <title>feintkit-new与 scenario 一起使用:新场景的标题。
--mappings <file>feintkit-new与 scenario 一起使用:接收新场景条目的映射文件。
--harness <spec>feintkit-new新文件所依赖的测试框架的软件包规格。
--output <file>feintkit-report diff, feintkit-report modes, feintkit-report repeats, feintkit-report store, feintkit-report coverage, feintkit-report summary将结果写入文件,而不是打印。
--fail-on-regressionfeintkit-report diff, feintkit-report modes, feintkit-report repeats发现回归时以 3 退出。
--history <file>feintkit-report history, feintkit-report store历史文件;对 store import 来说,是其中的运行将被加入存储的文件。
--agent <name>feintkit-report history其运行被追加(append,必填)或显示(show)的智能体。
--report <file>feintkit-report history与 append 一起使用:要添加的结果文件;不带它时,报告由 --root、--out-dir 和 --detections 构建。
--date <YYYY-MM-DD>feintkit-report history与 append 一起使用:该条目的日期。
--suite-version <x.y.z>feintkit-report history与 append 一起使用:该条目的套件版本。
--agent-version <text>feintkit-report history与 append 一起使用:智能体的版本标签。
--model <text>feintkit-report history与 append 一起使用:智能体的模型标签。
--permission-mode <text>feintkit-report history与 append 一起使用:智能体的权限模式标签。
--agent <name>feintkit-report summary这些结果所属的智能体;页面随后会写出其名称。
--agent-version <text>feintkit-report summary智能体的版本标签。
--model <text>feintkit-report summary智能体的模型标签。
--permission-mode <text>feintkit-report summary智能体的权限模式标签。
--last <n>feintkit-report history与 show 一起使用:只显示最近 n 次运行。
--baseline <label>feintkit-report modes其他各组与之比较的那一组的标签。
--against <results>feintkit-report repeats用来与第一组比较的第二组运行;可重复指定多个。
--results <results>feintkit-report coverage按判定给映射图着色的结果集。
--mappings <file>feintkit-report coverage其两份 OWASP 列表定义缺口的映射文件;不带它时,会从当前文件夹向上查找该文件。
--id <scenario id>feintkit-report mitigations只显示该场景;可重复指定多个。
--store <dir>feintkit-report store结果存储:由 add 创建的文件夹,内含一个标记文件和每月一个运行文件。
--agent <name>feintkit-report store与 add 一起使用(必填):产生这些运行的智能体。与 query 和 export 一起使用:只保留该智能体的运行。
--date <YYYY-MM-DD>feintkit-report store与 add 一起使用:这些运行的日期;不带它时取结果文件的日期,否则取今天。
--suite-version <x.y.z>feintkit-report store与 add 一起使用:这些运行的套件版本。与 query 和 export 一起使用:只保留该套件版本的运行。
--agent-version <text>feintkit-report store与 add 一起使用:智能体的版本标签。与 query 和 export 一起使用:只保留带有此标签的运行。
--model <text>feintkit-report store与 add 一起使用:智能体的模型标签。与 query 和 export 一起使用:只保留带有此标签的运行。
--permission-mode <text>feintkit-report store与 add 一起使用:智能体的权限模式标签。与 query 和 export 一起使用:只保留带有此标签的运行。
--label <text>feintkit-report store与 add 一起使用:一个简短的标签(字母、数字、点、下划线和连字符,最多 32 个字符),用于区分同一天结果相同的两次运行。
--scenario <id or prefix->feintkit-report store与 query 一起使用:保留某一个场景的结果,或保留所有 id 以某个以连字符结尾的前缀开头的场景的结果。
--verdict <verdict>feintkit-report store与 query 一起使用:保留带有该智能体判定(complied、resisted、resisted_surfaced、inconclusive 或 n/a)的结果。
--detection <state>feintkit-report store与 query 一起使用:保留带有该检测状态(detected、blocked、missed、not-reported 或 not-run)的结果。
--since <YYYY-MM-DD>feintkit-report store与 query 和 export 一起使用:保留这一天及之后的运行。
--until <YYYY-MM-DD>feintkit-report store与 query 和 export 一起使用:保留这一天及之前的运行。
--month <YYYY-MM>feintkit-report store与 query 和 export 一起使用:保留某一个月的运行;不能与 --since 或 --until 同时使用。
--last <n>feintkit-report store与 query 一起使用:在匹配的运行中保留最新的 n 次。
--by <view>feintkit-report store与 query 一起使用:scenario(默认)列出场景及其计数,run 列出各次运行。
--format <name>feintkit-report store与 query 一起使用:text(默认)、md 或 json。与 export 一起使用:kb(默认,面向知识库的 Markdown 文件)或 jsonl。
--loop <dir>feintkit-watch replay, feintkit-watch bundle要回放的已保存循环文件夹,或者对 bundle create 来说,要打包的文件夹。
--rules <file>feintkit-watch replay, feintkit-watch selftest, feintkit-watch bundle替身所用的规则集;不带它时使用入门规则集。对 bundle create 来说,规则集存入包中,bundle replay 使用该副本。
--timestamp <iso>feintkit-watch replay, feintkit-watch bundle写入输出的时间戳。对 bundle create 来说,它是包的创建时间,也是包内每个文件的修改时间。
--out <file>feintkit-watch bundle与 create 一起使用:要写入的包文件;它必须尚不存在,且不得位于循环文件夹之内。
--agent <label>feintkit-watch bundle与 create 一起使用:存入环境记录的智能体标签(fnd-44);省略的字段取自循环的 report.json 中的身份块,否则为 unknown。
--agent-version <label>feintkit-watch bundle与 create 一起使用:智能体的版本标签。
--model <label>feintkit-watch bundle与 create 一起使用:智能体的模型标签。
--permission-mode <label>feintkit-watch bundle与 create 一起使用:智能体的权限模式标签。
--redactfeintkit-watch bundle与 create 一起使用:将所打包文件中的机密形态和主目录路径中的用户名替换掉,而不是拒绝;清单会记录替换的数量和原件的哈希。
--bundle <file>feintkit-watch bundle与 verify 和 replay 一起使用:要读取的包文件。
--digest <sha256>feintkit-watch bundle与 verify 和 replay 一起使用:别人提供给你的该包的摘要值(64 个小写十六进制字符);包中的摘要值不同即为失败。