ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

pentest-ai-agents 实战:28个Claude Code子Agent的settings.json配置骨架

pentest-ai-agents 实战:28个Claude Code子Agent的settings.json配置骨架 1. 渗透测试场景下 28 个子 Agent 的配置痛点pentest-ai-agents 这个工具包把 Claude Code 拆成了 28 个专职子 Agent覆盖侦察、Web 应用测试、Active Directory 攻击、云安全、移动端、无线、社工、漏洞链构建、检测工程、取证、恶意软件分析、报告生成等环节。每个子 Agent 都有自己的系统提示词、工具白名单和 MITRE ATTCK 映射安装脚本会把它们全部塞进~/.claude/agents/目录。听起来很爽但真正跑起来你会发现一个问题28 个子 Agent 各自为战没有一个统一的配置入口。我试过直接改单个 Agent 的 frontmatter改到第 7 个就放弃了。原因很简单——每个 Agent 文件里都写着model: claude-sonnet-4-20250514或者model: claude-haiku-3-5API Key 走的是环境变量ANTHROPIC_API_KEY但 Claude Code 在加载子 Agent 时并不会自动继承你 shell 里的所有变量。更麻烦的是Tier 2 执行模式的 Agent 需要调用 nmap、ffuf、sqlmap、BloodHound 这些外部工具它们的超时、并发、输出截断参数散落在各个 Agent 的配置里没有全局默认值。所以这篇要解决的核心问题是如何用一个settings.json骨架把 28 个子 Agent 的模型选择、API 通道、工具权限、超时策略统一管起来。你拿到这个骨架后只需要改一处 Key就能让所有子 Agent 走同一条 API 通道并且能单独验证某一个子 Agent 是否配置生效。适合谁看已经在用 Claude Code 做安全研究、想批量管理子 Agent 配置的人或者刚 clone 了 pentest-ai-agents、被 28 个文件搞晕的人。下面从 TaoToken 的前置准备开始一步步给可复制的配置。2. TaoToken 前置统一 Key 与 API 通道Claude Code 默认走 Anthropic 官方 API但子 Agent 数量一多Key 管理和额度监控就很碎。TaoToken 在这里的作用是提供一个统一的 API 入口让你用同一个 Key 驱动所有子 Agent同时保留模型切换能力。官网入口在 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content API 基址是 https://taotoken.net/api 这个地址不加 UTM 参数直接写进配置。你需要先做两件事第一在 TaoToken 控制台创建一个 API Key。控制台地址是 https://taotoken.net/console?utm_sourcetaotoken_aicg_blog_endutm_contentconsoleutm_campaignrewrite 进去后找到 API Keys 页面新建一个 Key复制出来。这个 Key 会同时用于 Tier 1 咨询模式和 Tier 2 执行模式的所有子 Agent。第二确认你要用的模型名。pentest-ai-agents 默认给咨询类 Agent 用 Haiku、给执行类 Agent 用 Sonnet你在 TaoToken 的模型列表里能看到对应的模型标识。如果你不确定可以先在模型对话页面 https://taotoken.net/chat?utm_sourcetaotoken_aicg_blog_endutm_contentmodel_chatutm_campaignrewrite 发一条测试消息确认通道通。注意不要把 Key 硬编码进任何一个 Agent 的 frontmatter。所有 Agent 共享的配置应该放在settings.json里Agent 文件只声明自己需要的模型别名和工具权限。TaoToken 的 API 兼容 Anthropic 的 Messages 接口格式所以 Claude Code 的settings.json里可以直接把ANTHROPIC_BASE_URL指向https://taotoken.net/api把ANTHROPIC_API_KEY设成你刚创建的 Key。这样 28 个子 Agent 在启动时都会读同一份环境配置不需要逐个改。如果你打算长期跑编码类或 Agent 类任务可以看一下 Coding Plan 页面 https://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_contentcoding_planutm_campaignrewrite 它针对高频调用场景做了额度优化。接入文档在 https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_contentdocutm_campaignrewrite 里面有完整的请求示例和错误码说明。3. 可复制的 settings.json 骨架Claude Code 的配置分两层全局配置在~/.claude/settings.json项目级配置在项目根目录的.claude/settings.json。pentest-ai-agents 安装脚本默认把 Agent 文件放到~/.claude/agents/所以我们的骨架写在全局settings.json里这样所有项目都能复用。下面这份骨架可以直接复制你只需要替换sk-你的TaoTokenKey这一处{ env: { ANTHROPIC_BASE_URL: https://taotoken.net/api, ANTHROPIC_API_KEY: sk-你的TaoTokenKey, ANTHROPIC_MODEL: claude-sonnet-4-20250514, ANTHROPIC_SMALL_FAST_MODEL: claude-haiku-3-5-20241022, CLAUDE_CODE_MAX_OUTPUT_TOKENS: 8192, CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC: 1 }, permissions: { allow: [ Bash(nmap:*), Bash(whois:*), Bash(whatweb:*), Bash(ffuf:*), Bash(sqlmap:*), Bash(dalfox:*), Bash(bloodhound:*), Bash(impacket:*), Bash(crackmapexec:*), Bash(certipy:*), Bash(findings.sh:*), Read(~/.claude/agents/**), Write(~/.claude/findings/**) ], deny: [ Bash(rm -rf:*), Bash(curl:*|*sh), Read(~/.ssh/id_*) ] }, agents: { defaultModel: claude-sonnet-4-20250514, liteModel: claude-haiku-3-5-20241022, maxConcurrent: 3, timeoutMs: 120000, outputTruncateBytes: 65536 }, findings: { dbPath: ~/.claude/findings/findings.db, autoWrite: true, sessionHandoff: true } }这份骨架里几个关键字段的作用env.ANTHROPIC_BASE_URL把所有子 Agent 的请求指向 TaoToken 的 API 入口env.ANTHROPIC_API_KEY是统一 Key。ANTHROPIC_MODEL是默认模型ANTHROPIC_SMALL_FAST_MODEL是咨询类 Agent 用的轻量模型对应 pentest-ai-agents 的--lite模式。permissions.allow里列出了 Tier 2 执行模式需要的外部工具nmap、ffuf、sqlmap、BloodHound 这些都在里面。permissions.deny是安全兜底防止 Agent 执行破坏性命令或读取私钥。agents块是给 28 个子 Agent 的全局默认值maxConcurrent控制同时运行的子 Agent 数量timeoutMs是单个命令的超时outputTruncateBytes防止 nmap 全端口扫描的输出把上下文撑爆。findings块对应 pentest-ai-agents 内置的 SQLite 发现数据库autoWrite打开后 Tier 2 Agent 会自动把结果写进findings.dbsessionHandoff支持多日连续操作。提示如果你的 pentest-ai-agents 是用--project参数装到项目目录的把这份settings.json放到项目的.claude/下并把Read路径改成相对路径./agents/**。配置写完后用claude config list确认 Claude Code 读到了这些值。如果ANTHROPIC_BASE_URL显示的还是官方地址说明你的settings.json位置不对或者被项目级配置覆盖了。4. 验证请求跑通第一个子 Agent配置写完不验证等于没写。下面用 pentest-ai-agents 里的侦察顾问recon-advisor做一次最小验证确认它走的是 TaoToken 通道、用的是你指定的模型、并且能正常调用 nmap。第一步确认 Agent 文件存在ls ~/.claude/agents/ | grep -i recon你应该能看到类似recon-advisor.md的文件。如果看不到说明安装脚本没跑成功重新执行curl -fsSL https://raw.githubusercontent.com/0xSteph/pentest-ai-agents/main/install.sh | bash。第二步在 Claude Code 里显式调用这个子 Agent。启动claude后输入recon-advisor 对 example.com 做一次被动侦察只允许 whois 和 whatweb不要主动扫描观察返回结果。如果配置生效你会看到 Agent 先输出一段分析然后请求执行whois example.com和whatweb example.com。在 Tier 2 模式下每个命令执行前会弹出确认你按 y 批准。第三步验证 API 通道。在另一个终端里查看 TaoToken 控制台的请求日志应该能看到两条 Messages 请求模型名是claude-sonnet-4-20250514来源 IP 是你本机。如果日志里没有记录说明请求没走 TaoToken检查ANTHROPIC_BASE_URL是否被 shell 里的同名环境变量覆盖了。第四步验证 findings 数据库写入。批准命令执行后检查sqlite3 ~/.claude/findings/findings.db SELECT agent, target, created_at FROM findings ORDER BY created_at DESC LIMIT 5;如果能看到 recon-advisor 写入的记录说明findings.autoWrite生效了。这一步很关键因为 pentest-ai-agents 的多日交接能力全靠这个数据库。第五步验证模型切换。把settings.json里的ANTHROPIC_MODEL临时改成claude-haiku-3-5-20241022重启 Claude Code再调用一次 recon-advisor。这次返回速度应该明显更快TaoToken 日志里的模型名也会变成 Haiku。验证完记得改回来。整个验证过程大概 3 分钟。跑通之后28 个子 Agent 就都共享这套配置了你不需要再逐个改文件。5. 本篇常见错排查配置过程中最容易踩的坑集中在下面几个地方我按报错信息分类整理。报错401 Unauthorized或invalid api key九成是 Key 复制时带了空格或者settings.json里的 Key 和 TaoToken 控制台里的不一致。重新复制一次注意不要包含首尾空白。另外确认ANTHROPIC_BASE_URL结尾没有多余的斜杠正确写法是https://taotoken.net/api不是https://taotoken.net/api/。报错model not found模型名写错了。TaoToken 的模型标识和 Anthropic 官方可能略有差异去控制台的模型列表里核对。ANTHROPIC_SMALL_FAST_MODEL也要填对否则咨询类 Agent 会 fallback 到默认模型额度消耗会变大。子 Agent 不加载recon-advisor提示找不到检查~/.claude/agents/目录权限确保当前用户可读。如果用了--project参数Agent 文件在项目目录的.claude/agents/下Claude Code 需要在该项目根目录启动才能识别。Tier 2 命令执行被拒绝提示permission deniedpermissions.allow里的工具名和实际命令不匹配。比如你写的是Bash(nmap:*)但 Agent 实际调用的是/usr/bin/nmap这时需要写成Bash(/usr/bin/nmap:*)。用which nmap确认实际路径。nmap 输出被截断Agent 看不到完整结果调大agents.outputTruncateBytes或者让 Agent 把结果重定向到文件再读取。全端口扫描的输出很容易超过 64KB建议对这类命令单独设置timeoutMs和输出上限。findings.db 没有写入确认findings.sh在系统 PATH 里。pentest-ai-agents 的 Tier 2 Agent 只有在检测到findings.sh可执行时才会自动写库。用which findings.sh检查如果没有把安装目录加到 PATH。请求日志里出现官方 Anthropic 地址说明 shell 里存在ANTHROPIC_BASE_URL环境变量优先级高于settings.json。用env | grep ANTHROPIC检查如果有在~/.bashrc或~/.zshrc里 unset 掉或者直接在 shell 配置里设成 TaoToken 地址。并发子 Agent 互相抢资源agents.maxConcurrent默认给的是 3如果你同时跑侦察和 Web 测试两个 Agent可能会争抢网络带宽。调到 2 或者串行执行。TaoToken 侧对并发请求有额度限制具体看接入文档里的说明。排障时如果拿不准是配置问题还是通道问题先去模型对话页面发一条最简单的消息确认 Key 和通道本身是通的再回来查 Agent 配置。接入文档里有完整的错误码对照表遇到不认识的报错先查那里。6. 配置生效后的下一步骨架跑通之后你可以做几件让 28 个子 Agent 更好用的事。把settings.json纳入版本管理但 Key 用环境变量占位。比如写成ANTHROPIC_API_KEY: ${TAOTOKEN_KEY}然后在 shell 里 export 真实 Key。这样配置文件可以安全地分享给团队每个人用自己的 Key。给不同阶段的 Agent 配不同的模型。侦察和报告生成这类偏文本的 Agent 用 Haiku 就够漏洞链构建和 PoC 验证这类需要推理的 Agent 用 Sonnet。你可以在单个 Agent 的 frontmatter 里覆盖model字段它会优先于settings.json里的全局默认值。定期清理 findings.db。渗透测试项目多了之后数据库会膨胀影响查询速度。写个 cron 任务每周把超过 30 天的记录归档到单独的表里。如果你要把这套配置带到隔离网络环境pentest-ai-agents 附带的opencode-setup.sh可以把 Agent 转成兼容本地模型的 OpenCode 命令。这时ANTHROPIC_BASE_URL指向本地推理服务Key 随便填一个非空值即可。TaoToken 的通道在隔离环境里用不上但配置骨架的结构可以复用。最后提醒一句Tier 2 执行模式的每个命令都需要你手动批准这是设计上的安全边界不要为了图快把permissions.allow开成通配符。渗透测试的授权范围是法律红线Agent 再智能也不能替你做这个判断。
返回列表