Bennyweasl/ooda-drone-autonomy

GitHub: Bennyweasl/ooda-drone-autonomy

这是一个基于OODA循环的Python多代理无人机自主指挥控制框架,通过集成TAK服务器实现从观察、定向、决策到行动的闭环管理。

Stars: 1 | Forks: 0

# OODA Agent 框架 一个围绕军事 **Observe -> Orient -> Decide -> Act** 循环构建的 Python 多代理框架。四个 AI 协作以构建 **Common Tactical Picture (CTP)** 并生成包含目标提名和 WARNORD 的 **Mission Planning Recommendation**。 设计为可从笔记本电脑到机密隔离区运行——每个推理引擎、消息总线和出站适配器都是独立可插拔的。 ## 快速开始 ``` pip install httpx # 使用 Claude 运行(需要 API key) export ANTHROPIC_API_KEY="sk-ant-..." python main.py # 完全离线运行 —— 无 API 调用,确定性 python main.py --mode mock # 使用本地 Ollama 模型运行(气隙隔离) ollama pull mistral python main.py --mode airgap # 运行测试套件(无需 API key) python test_ooda.py ``` ## 文档 | 文档 | 描述 | |---|---| | **[架构](docs/ARCHITECTURE.md)** | 框架内部 -- Brain、Transport、Gateway ABC、代理模式、TAK 集成、CoT 映射、消息封装 | | **[部署指南](docs/deployment/README.md)** | AWS 云部署 -- Terraform、OODA EC2、TAK Server、WinTAK | | **[设置指南](SETUP_GUIDE.md)** | 从账户创建到验证的首次逐步演练 | | **[仪表板](docs/DASHBOARD.md)** | Streamlit C2 仪表板 -- 暗色模式、地图图层、交战面板、身份验证 | | **[故障排除](docs/TROUBLESHOOTING.md)** | 已知问题、修复以及从部署中获得的 22 条经验教训 | | **[路线图](docs/ROADMAP.md)** | 待办事项列表、部署状态和未来计划 (P0-P7) | ### 部署子指南 | 指南 | 描述 | |---|---| | [OODA 部署](docs/deployment/OODA_DEPLOYMENT.md) | OODA EC2 实例、systemd 服务、TAK 连接、证书 | | [TAK Server 部署](docs/deployment/TAK_DEPLOYMENT.md) | TAK Server Docker 设置、CoreConfig、证书生成、管理 UI | | [WinTAK 设置](docs/deployment/WINTAK_SETUP.md) | WinTAK 安装、证书、服务器连接 | | [Terraform 参考](docs/deployment/TERRAFORM_REFERENCE.md) | 变量、资源、安全组、IAM、输出 | ## 架构概览 三个正交的抽象被注入到每个代理中: ``` Brain -- the reasoning engine (swap without touching agent logic) Transport -- the message bus (swap without touching agent logic) Gateway -- the outbound adapter (swap without touching agent logic) ``` ``` flowchart LR subgraph TAK ["TAK Server"] TAKSRV["CoT Source
TCP - TLS - REST - UDP"] end subgraph OODA ["OODA Loop"] direction LR OBS["Observe
Sensor Fusion"] ORI["Orient
Target-Drone
Matching"] DEC["Decide
Engagement
Authorization"] ACT["Act
Mission
Planning"] OBS -- "DroneIntelReport" --> ORI ORI -- "TargetDronePairing" --> DEC DEC -- "EngagementDecision" --> ACT ACT -. "BDA re-cue" .-> OBS end subgraph GW ["Gateway (pluggable)"] TAK_GW["TakGateway
CoT XML"] JREAP["JreapGateway
future"] end TAKSRV --> OBS ACT --> GW GW --> TAKSRV ``` 有关 Brains、Transports、Gateways 以及如何扩展框架的详细信息,请参阅 **[架构](docs/ARCHITECTURE.md)**。 ## 项目结构 ``` ooda_framework/ |-- framework/ | |-- brain.py # Brain ABC + FallbackBrain + EnsembleBrain | |-- transport.py # Transport ABC + Local + Redis + Logging + Recording | |-- agent.py # Agent ABC (brain-agnostic, transport-agnostic) | |-- gateway.py # TacticalGateway ABC + Composite + Null + Logging | +-- messages.py # ACLMessage envelope + typed content schemas | |-- brains/ # ClaudeBrain, OllamaBrain, LMStudioBrain, VLLMBrain, RulesBrain, AlgorithmBrain, MockBrain |-- agents/ # ObserveAgent, OrientAgent, DecideAgent, ActAgent |-- gateways/ # TakGateway (CoT), future: JreapGateway, Link16Gateway | |-- deploy/ | |-- terraform/ # AWS infrastructure (EC2, S3, IAM, security groups) | |-- setup-workstation.ps1 # Install tools + configure credentials | |-- save-config.ps1 # DPAPI-encrypted deployment config | |-- wintak-setup.ps1 # WinTAK client configuration | +-- tak-server-setup.sh # Standalone TAK Server setup | |-- docs/ # Architecture, troubleshooting, roadmap, dashboard | +-- deployment/ # OODA, TAK, WinTAK, Terraform guides | |-- test_ooda.py # 69 tests; runs offline in ~2s |-- scenario.py # Simulated ISR / SIGINT / HUMINT / BFT feeds |-- tak_client.py # TAK Server CoT integration (TCP/TLS/REST/UDP) |-- tak_writer.py # CoT XML generation + TakWriter client |-- dashboard.py # Streamlit C2 dashboard +-- main.py # Orchestrator + CLI ``` ## 运行测试 ``` python test_ooda.py ``` 69 个测试。运行时间约 2 秒。无需 API key。无网络依赖。无基础设施。 ## 部署模式 ``` python main.py --mode claude # All agents use Claude python main.py --mode airgap # Local Ollama (air-gapped) python main.py --mode lmstudio # LM Studio local server python main.py --mode vllm # vLLM self-hosted inference python main.py --mode hybrid # Claude + deterministic TVA algorithm python main.py --mode rules # Fully deterministic, no LLM python main.py --mode mock # Scripted responses (CI/testing) ``` 有关完整模式描述,请参阅 **[架构](docs/ARCHITECTURE.md)**;有关 AWS 云部署,请参阅 **[部署指南](docs/deployment/README.md)**。 ## 贡献 有关开放的待办事项,请参阅 **[路线图](docs/ROADMAP.md)**。该框架专为可扩展性而设计——通过子类化 ABC 并在管道构建时注入,即可实现新的 `Brain`、`Transport` 或 `TacticalGateway`。
标签:AI代理, AI风险缓解, AWS部署, C2系统, Claude集成, CoT映射, ECS, HTTP/HTTPS抓包, IP 地址批量处理, Kubernetes, LLM评估, Ollama, OODA循环, Python框架, Streamlit仪表盘, TAK Server, Team Awareness Kit, Terraform, 任务规划, 军事仿真, 军事决策, 单向攻击无人机, 多智能体, 态势感知, 战术通用图, 无人机指挥控制, 消息总线, 漏洞利用检测, 离线运行, 请求拦截, 逆向工具