ARTICLE DETAIL

资讯详情

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

Cairn开发进阶:自定义Prompt组、配置调优与测试体系开发者手册

Cairn开发进阶:自定义Prompt组、配置调优与测试体系开发者手册 Cairn开发进阶自定义Prompt组、配置调优与测试体系开发者手册【免费下载链接】CairnA AI general-purpose state-space search engine, validated first on autonomous penetration testing.项目地址: https://gitcode.com/gh_mirrors/cairn2/CairnCairn 是一个面向通用问题的AI 状态空间搜索引擎首个验证场景为自主渗透测试。它基于黑板架构让多智能体通过 Fact / Intent / Hint 三原语在未知状态空间中协作搜索目标路径。本文面向已跑通 Cairn 的开发者系统讲解三件进阶必会的事自定义 Prompt 组、dispatch 配置调优、免 Docker 测试体系帮你在不依赖真实模型与容器环境的前提下安全高效地定制与验证你的搜索引擎。理解 Cairn 的 Prompt 架构三种任务对应一套 PromptCairn 的调度器Dispatcher只执行三类任务全部由同一类 Worker 承担任务作用输出Bootstrap项目启动时尝试直接解题Fact 可能的 CompleteReason读取全图目标是否达成下一步探索什么Complete / 新 Intents / 无操作Explore认领一个 Intent 并执行探索一个 Fact每类任务含超时后的 conclude 兜底阶段各对应一个 Markdown Prompt 文件存放于 prompts/default/ 目录下bootstrap.md / bootstrap_conclude.mdreason.mdexplore.md / explore_conclude.mdPrompt 是黑板与智能体之间的唯一接口调度器把当前图快照、意图、人工提示注入模板占位符Worker 只负责返回结构化 JSON。理解这一点后你就能明白为什么 Cairn 支持按组替换整套 Prompt而无需改动任何代码。三步创建你的自定义 Prompt 组第 1 步复制默认组并改名。将prompts/default/整个目录复制为新目录如prompts/pentest_zh/在其中修改 5 个 Prompt 文件。第 2 步保留必需的占位符。配置加载时会校验每个文件必须包含指定占位符见 config.py 中的DEFAULT_PROMPT_REQUIRED_TOKENS文件必需占位符reason.md{graph_yaml}{fact_ids}{open_intents}{max_intents}explore.md/explore_conclude.md{graph_yaml}{intent_id}{intent_description}bootstrap.md/bootstrap_conclude.md{origin}{goal}{hints}第 3 步在 dispatch 配置中切换 Prompt 组。修改runtime.prompt_group字段即可runtime: prompt_group: pentest_zh启动时 validate_prompt_resources 会校验组目录存在、5 个文件齐全且占位符完整缺一项就直接报错退出——这让你在启动阶段就能发现 Prompt 组的低级错误。 典型用途把英文 Prompt 改写为你的领域语言、调整输出 JSON 的措辞约束、强化不允许拒绝任务等规则或在 CTF / 漏洞研究等场景下定制 Reason 阶段的决策偏好。dispatch 配置调优核心参数速查表Cairn 的全部行为由一个 YAML 文件驱动官方提供三份示例dispatch.example.yaml —— 容器模式完整配置最详尽的注释文档dispatch.local.example.yaml —— 本地模式无 Dockerdispatch_mock.yaml —— Mock 模式测试专用调度参数runtime参数含义调优建议interval调度器 tick 间隔秒默认 3 秒足够无需频繁调整max_workers全局 Worker 并发上限按机器/预算设定总闸门max_running_projects同时活跃的项目数项目多时降低保证单项目质量max_project_workers单项目 Worker 上限防止单项目独占全部算力worker_healthcheckstartup_and_task/startup_only/disabled生产建议startup_only省得每任务探测一次healthcheck_timeout单次健康检查超时慢模型端点适当调大任务参数tasks三类任务各自有独立timeoutBootstrap 与 Explore 还有conclude_timeout——主阶段超时后系统会启动一个兜底收尾阶段用剩余时间预算从同一会话里榨取已确认的发现避免探索白跑。reason.max_intents控制单次推理最多产生几个新意图是控制搜索宽度的最直接旋钮。Worker 参数优先级、并发与任务分工每个 Worker 可独立配置typeclaudecode / codex / pi / mock、task_types可让不同模型专攻不同任务如让快模型只做 reason、max_running单 Worker 并发和priority数字越小越优先。common_env会合并进每个 Worker 的环境变量是统一注入代理、Token 等公共配置的地方。容器模式 vs 本地模式容器模式execution: container每项目一个隔离容器需要配置container.image、network_mode、completed_actionstop保留容器供事后检查remove更干净并可按需添加cap_add如NET_RAW。本地模式execution: localWorker 直接以宿主机进程运行复用本机已登录的claude/codex/piCLI无需 Docker、无需在配置里写 API Key。每个项目在local.workspace_root下获得独立工作目录。注意本地模式下 Agent 以你的用户权限、无沙箱运行只应在你有权操作的环境中使用详见 dispatch.local.example.yaml 头部注释。测试体系不碰 Docker、不烧 Token 验证你的改动Cairn 自带一套快速回归测试套件全部离线运行uv run --project cairn --group dev pytest测试代码位于 cairn/tests/按模块组织覆盖配置校验、调度、运行时、协议、健康检查与端到端流程测试文件关注点test_config_and_adapters.py配置校验、Worker 适配器test_scheduler_logic.py调度循环与 Worker 选择test_runtime_logic.py运行时/取消/心跳test_mock_end_to_end.py完整端到端流程test_healthcheck.py启动健康检查test_local_execution.py本地模式执行test_server_api.pyServer API 与 DB 迁移更妙的是mock Worker 机制调度器原生支持type: mock的假 Workermock.py可通过MOCK_REASON、MOCK_EXPLORE_EXECUTE等环境变量为每个阶段配置延迟区间 结果概率分布甚至可注入invalid_json、command_fail等异常路径完整复现真实运行的调度、容器与协议行为。dispatch_mock.yaml 就是现成的模板——把它配进prompt_group: mock你就可以在零成本下验证 Prompt 组、调度参数和超时链是否按预期工作。推荐的开发者工作流改 Prompt新建 Prompt 组 → 本地起cairn serve mock dispatcher 验证占位符与流程️调参数对照上文速查表修改dispatch.yaml先用 mock 模式观察调度日志再上真实 Worker 小并发试跑✅跑测试uv run --project cairn --group dev pytest全绿后再合并改动查行为任务结束后容器/工作目录保留现场completed_action: stop/keep结合 Web 控制台的图视图回溯每一次 Fact 与 Intent 的产生过程。掌握 Prompt 组定制、dispatch 调优与 mock 测试三板斧后你已具备把 Cairn 从开箱即用改造成专属搜索引擎的完整能力——无论是 CTF 竞赛、漏洞研究还是其他起点明确、路径未知的问题。【免费下载链接】CairnA AI general-purpose state-space search engine, validated first on autonomous penetration testing.项目地址: https://gitcode.com/gh_mirrors/cairn2/Cairn创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表