一个以 Go 业务控制面 + agent-compose 隔离运行时 + OctoBus 能力网关 为核心的公开参考项目,用于快速交付五个可独立调用的网络安全智能体。
当前仓库定位是“可运行的工程骨架”,不是已经具备真实客户数据接入和生产验证的成品。默认
mock执行器不会作出真实安全结论;接入 agent-compose、OctoBus 和客户数据源后,才进入真实能力建设阶段。
业务范围来自 五个智能体产品需求基线,需求到代码和阶段的对应关系见 追踪矩阵。
| Agent ID | 中文名称 | 核心职责 | 默认风险级别 |
|---|---|---|---|
traffic-analysis |
网络流量包分析智能体 | PCAP、DNS、代理、终端、进程、登录等多源证据关联,重建时间线和攻击链 | 中 |
event-triage |
事件研判智能体 | 告警聚合、假设验证、真伪判断、定级及处置建议 | 中 |
attack-path-validation |
攻击路径验证智能体 | 在授权范围内复核暴露面、漏洞与候选攻击路径 | 高,强制审批 |
compliance-query |
网络安全合规查询智能体 | 法规标准检索、适用性解释、控制差距和证据要求 | 低 |
security-report |
网络安全报告智能体 | 将结构化数据生成日报、周报、月报和专项报告 | 低 |
Go 用于承载长期稳定、可审计的控制逻辑,而不是承载模型推理本身:
- HTTP API、CLI、任务状态机、队列、取消和超时;
- 输入契约、幂等、租户边界、授权和审批;
- agent-compose 调用适配;
- 证据、发现、时间线、攻击路径和报告产物协议;
- 文件持久化、审计事件、指标和健康检查。
agent-compose 负责 Agent、Sandbox、Skills、Workspace 和调度生命周期;OctoBus 负责将受控安全能力按 capset 暴露给 Sandbox。三者职责不重叠。
调用方 / SOC / Web / 自动化平台
│
▼
┌──────────────────────────────────────────────┐
│ Go Control Plane │
│ API · Auth · Idempotency · Policy · Queue │
│ Run FSM · Approval · Audit · Metrics │
└──────────────────────┬───────────────────────┘
│ Executor Port
┌────────┴─────────┐
│ │
▼ ▼
Mock Executor agent-compose CLI
本地确定性联调 隔离 Agent Sandbox
│
▼
OctoBus Capability Proxy
│
┌──────────┬───────────┼──────────┬──────────┐
▼ ▼ ▼ ▼ ▼
流量工具 SOC/日志 漏洞验证 合规知识库 报告渲染
│
▼
Evidence · Finding · Artifact
核心约束:
- Go 控制面不接受任意 Shell 命令;
- Agent 只能使用其
capset_ids中明确授权的能力; - 主动验证必须同时具备授权范围和人工审批;
- 关键结论必须引用证据标识;
- 统计数字由确定性代码计算,不能由模型编造;
- agent-compose 或 OctoBus 不可用时,核心 API 和测试仍可通过 Mock 运行。
- 五个独立 Agent 定义及
agent-compose.yml; - 五套详细系统提示、15 个核心 Skill、工作流和输出 Schema;
- Go API 服务
sasd与调用 CLIsasctl; - Run 状态机、队列、幂等、审批、取消、超时;
- Mock 与 agent-compose CLI 两种执行器;
- 文件持久化、Artifact、审计事件和基础指标;
- OpenAPI、JSON Schema、示例请求;
- Docker、Kubernetes 起步清单、PostgreSQL 目标模型;
- 单元测试、HTTP 集成测试、CI、CodeQL、Dependabot;
- 分阶段路线图、验收门槛和可导入 GitHub 的任务清单。
- 当前完成度、验证证据和已知缺口见 项目状态。
要求 Go 1.23+;CI 和生产镜像使用 Go 1.27.x。
cp .env.example .env
make verify
make run另一个终端:
curl -s http://127.0.0.1:8080/healthz
curl -s \
-H 'X-API-Key: change-me-in-production' \
-H 'X-Tenant-ID: default' \
http://127.0.0.1:8080/v1/agents
curl -s -X POST \
-H 'Content-Type: application/json' \
-H 'X-API-Key: change-me-in-production' \
-H 'X-Tenant-ID: default' \
--data @agents/event-triage/examples/request.json \
http://127.0.0.1:8080/v1/agents/event-triage/runs或者使用 CLI:
make build
./bin/sasctl --base-url http://127.0.0.1:8080 \
--api-key change-me-in-production --tenant default agents
./bin/sasctl --base-url http://127.0.0.1:8080 \
--api-key change-me-in-production --tenant default run \
--agent event-triage \
--file agents/event-triage/examples/request.jsoncp .env.example .env
docker compose up --build容器默认仍使用 Mock。agent-compose CLI 适配器更适合先在宿主机部署;后续可改为 Connect/HTTP 客户端或单独的受控执行侧车。
先部署 agent-compose daemon,并保证 CLI 可访问:
agent-compose -f ./agent-compose.yml config --quiet
agent-compose -f ./agent-compose.yml up再启动本项目:
export SAS_EXECUTOR=agentcompose-cli
export SAS_AGENT_COMPOSE_BIN=agent-compose
export SAS_AGENT_COMPOSE_FILE=$PWD/agent-compose.yml
export SAS_AGENT_COMPOSE_HOST=http://127.0.0.1:7410
make runGo 网关会执行等价命令:
agent-compose --json --timeout 35m \
--host http://127.0.0.1:7410 \
-f ./agent-compose.yml \
run <agent-id> \
--prompt '<structured-task-envelope>' \
--rm外部进程输出会原样保存为运行产物;业务侧只消费标准化的 Run、Evidence、Finding 和 Artifact 契约。
| 方法 | 路径 | 说明 |
|---|---|---|
GET |
/healthz |
存活检查 |
GET |
/readyz |
就绪检查 |
GET |
/metrics |
Prometheus 文本指标 |
GET |
/v1/agents |
查询可调用智能体 |
GET |
/v1/agents/{agent_id} |
查询单个智能体定义 |
POST |
/v1/agents/{agent_id}/runs |
创建运行 |
GET |
/v1/runs/{run_id} |
查询运行和结果 |
GET |
/v1/runs/{run_id}/events |
查询审计事件 |
POST |
/v1/runs/{run_id}/approve |
审批高风险运行 |
POST |
/v1/runs/{run_id}/cancel |
取消排队或运行中任务 |
完整定义见 OpenAPI。
主动验证请求必须满足:
scope.authorization_ref非空;- 至少指定资产、网络或域名范围;
policy.active_validation=true;- 创建后进入
waiting_approval; - 由审批接口记录审批人和审批说明后才进入队列;
- 只允许受限网络访问,不接受 unrestricted 模式;
- 到达请求数、时间、影响或证据充分度停止条件后立即停止。
示例见 agents/attack-path-validation/examples/request.json。
cmd/ sasd 服务端与 sasctl 客户端
internal/ Go 领域、应用、策略、执行器和基础设施实现
agents/ 五个 Agent 的 SYSTEM、Skills、Schema 和示例
contracts/ 跨 Agent 通用 JSON Schema
configs/ Agent 目录和策略配置
openapi/ HTTP 接口契约
docs/ 产品、架构、ADR、路线图、研究和运行手册
planning/ 阶段任务清单
scripts/ 校验、冒烟、打包和 GitHub 发布脚本
agent-compose.yml 五个 Agent 的声明式打包入口
建议按以下顺序推进:
M0 工程基线与公开仓库
→ M1 环境核验与真实 agent-compose 联调
→ M2 统一证据与 OctoBus 能力底座
→ M3 报告智能体
→ M4 合规智能体
→ M5 事件研判智能体
→ M6 流量分析智能体
→ M7 攻击路径验证智能体
→ M8 跨 Agent 闭环与评测
→ M9 生产加固与客户交付
每个阶段的变量、依赖、任务、验收条件和人天建议见 实施路线图。
本仓库使用 Apache-2.0。agent-compose 当前使用 AGPL-3.0;本仓库通过外部 CLI/服务边界集成,不复制或嵌入其源码。其他参考项目也各自拥有许可证,具体见 参考项目研究。商业组合、镜像再分发或源码复制前仍需单独完成开源治理审查。
本项目仅用于获得明确授权的防御、安全运营、合规与验证场景。不得用于扫描、利用、干扰或访问未授权系统。Mock 输出仅用于工程联调,不代表真实安全判断。