🛡️ Sentinel DV v1.0.0-人工智能代理的验证智能
      
用于验证智能的安全第一MCP服务器(SystemVerilog/UVM/cocotb)
______________________________________________________________________
🌟 什么是Sentinel DV?
Sentinel DV是一种 开源模型上下文协议(MCP)服务器 它为大型语言模型和AI代理提供了 安全、结构化、只读访问 验证工件——实现确定性分类、根本原因分析和验证洞察,而无需公开原始日志或授予模拟器控制权。
支持验证生态系统
- 🔧 通用验证方法 -企业验证框架
- 🐍 可可结核 -基于Python的协程验证
- 📊 系统 -断言、覆盖率和本地测试台
- 🌊 波形摘要 -预先计算的信号分析(无原始FSDB/VCD流)
全部通过a 统一的、模式驱动的接口 具有内置的安全性、编校性和确定性输出。
______________________________________________________________________
🏗️ 建筑
哨兵DV遵循 严格分离关注点 安全第一原则:
sentinel_dv/
├── server.py # MCP server entrypoint
├── config.py # Security limits, feature flags, governance
├── registry.py # Tool registration and versioning
├── schemas/ # Typed contracts for all data
│ ├── common.py # EvidenceRef, RunRef, base types
│ ├── tests.py # TestCase, TestTopology, UvmTopology
│ ├── failures.py # FailureEvent, FailureSignature
│ ├── assertions.py # AssertionInfo, AssertionFailure
│ ├── coverage.py # CoverageSummary, CoverageMetric
│ ├── regressions.py # RegressionSummary, RunDiff
│ └── versioning.py # Schema version management
├── tools/ # MCP tools (discovery + detail)
│ ├── runs.py # runs.list, runs.diff
│ ├── tests.py # tests.list, tests.get, tests.topology
│ ├── failures.py # failures.list
│ ├── assertions.py # assertions.list/get/failures
│ ├── coverage.py # coverage.list/summary
│ ├── regressions.py # regressions.summary
│ └── wave.py # wave.summary, wave.signals
├── indexing/ # Artifact indexing and querying
│ ├── indexer.py # Build normalized index from artifacts
│ ├── store.py # DuckDB storage interface
│ └── query.py # Filter/sort/pagination
├── adapters/ # Parse verification artifacts
│ ├── uvm_log.py # UVM log parsing
│ ├── cocotb.py # cocotb result parsing
│ ├── assertions.py # Assertion map/failure parsing
│ ├── coverage.py # Coverage export parsing
│ └── waveform_summary.py # Waveform summary parsing
├── normalization/ # Security and determinism
│ ├── signatures.py # Stable failure signature hashing
│ ├── taxonomy.py # Failure categorization
│ └── redaction.py # Automatic secret/PII redaction
└── utils/ # Common utilities
├── hashing.py
├── time.py
└── bounded_text.py设计原则:
- 默认情况下为只读 -无模拟器控制,无伪影修改
- 架构优先 -每个响应都符合键入的合同
- 确定性的 -相同的输入→ 相同的输出(无LLM生成的字段)
- 基于证据的 -所有可追溯到源工件的事实
- 有界且安全 -自动编校、大小限制、路径沙盒
______________________________________________________________________
✨ 特性
🔒 安全第一
- 按设计只读 -无模拟触发器或工件写入
- 自动编校 -凭据、令牌、电子邮件、IP地址、路径
- 路径沙盒 -仅配置的工件根可访问
- 有界输出 -最大响应大小,最大证据摘录
- 来源追踪 -每个事实都包括可选的源引用
📊 丰富的验证数据
- 测试结果 -状态、持续时间、种子、模拟器信息、DUT配置
- UVM拓扑 -环境/代理/驾驶员/监视器/记分板层次结构
- 失效分析 -分类事件(断言/记分板/协议/超时)
- 断言智能 -SVA定义、运行时故障、意图映射
- 覆盖率指标 -功能/代码/断言/切换/FSM覆盖率
- 回归分析 -通过率、失败特征、运行差异
- 接口绑定 -协议映射(AXI/AHB/APB/PCIe/USB)
⚡ 性能和规模
- 高效索引 -DuckDB用于快速过滤和聚合
- 智能分页 -具有稳定排序的有界结果集
- 标准化存储 -去重、散列工件
- 选择性投影 -仅请求必填字段
🔌 模拟器不可知
- 使用 任何模拟器 (Synopsys VCS、Cadence Xcelium、Mentor Questa、Verilator)
- 适配器模式 -采用特定于工具的格式,输出统一的模式
- 预先计算的摘要 -运行时不依赖EDA工具
📋 模式驱动的合约
- 版本化架构 -具有兼容性保证的SemVer
- JSON模式验证 -确定性、可测试性
- 稳定的工具API -向后兼容的进化
- 自我记录 -模式定义了接口
______________________________________________________________________
🚀 快速开始
安装
# Clone the repository
git clone https://github.com/yourusername/sentinel-dv.git
cd sentinel-dv
# Install with development dependencies
pip install -e ".[dev]"
# Or production install
pip install sentinel-dv配置
创建 config.yaml:
# Artifact roots (read-only)
artifact_roots:
- /path/to/verification/regressions
- /path/to/uvm/logs
# Index storage
index:
type: duckdb # or sqlite, json
path: ./sentinel_dv.db
# Adapters (enable/disable)
adapters:
uvm: true
cocotb: true
assertions: true
coverage: true
waveform_summary: false
# Security & limits
security:
max_response_bytes: 2097152 # 2MB
max_page_size: 200
max_evidence_refs: 10
max_excerpt_length: 1024
# Redaction
redaction:
enabled: true
patterns:
- AKIA.* # AWS keys
- ghp_.* # GitHub tokens
- Bearer\s+\S+ # Bearer tokens
redact_emails: true
redact_paths: true运行服务器
# Start the MCP server
python -m sentinel_dv.server --config config.yaml
# Index artifacts (one-time or scheduled)
python -m sentinel_dv.indexing.indexer --config config.yaml --index-all
# Run with Claude Desktop
# Add to Claude config:
{
"mcpServers": {
"sentinel-dv": {
"command": "python",
"args": ["-m", "sentinel_dv.server", "--config", "/path/to/config.yaml"]
}
}
}查询示例
与Claude或任何MCP客户:
"Why did test axi_burst_test fail in the latest regression?"
→ Uses: tests.list, failures.list, tests.topology
"What assertions failed in the AXI agent?"
→ Uses: assertions.failures, assertions.get
"Compare coverage between runs R123 and R124"
→ Uses: runs.diff, coverage.summary
"Show me the failure signatures from the past week"
→ Uses: regressions.summary______________________________________________________________________
📖 文档
核心概念
指南
参考
______________________________________________________________________
🤝 贡献
我们欢迎捐款!看 贡献.md 用于:
- 行为准则
- 开发设置
- 测试指南
- 拉取请求流程
发展
# Install with dev dependencies
pip install -e ".[dev]"
# Run tests
pytest
# Run with coverage
pytest --cov=sentinel_dv --cov-report=html
# Lint and format
ruff check .
black .
mypy sentinel_dv/______________________________________________________________________
📊 项目状态
- ✅ 核心模式 -稳定v1.0
- ✅ MCP工具 -6个类别的14个工具
- ✅ 适配器 -UVM、cocotb、断言、覆盖范围
- ✅ 索引 -具有高效查询功能的DuckDB
- ✅ 安全 -重动作、沙盒、边界
- ✅ 测试覆盖率 -70%以上,经过单元和集成测试
- ✅ 文档 -完整指南和API参考
- 🚧 波形摘要 -实验性
- 🚧 插件生态系统 -即将推出
______________________________________________________________________
🎯 定位
什么哨兵DV 是
- A. 只读MCP服务器 用于验证生态系统
- A. 模式优先上下文提供程序 对于代理商和LLM
- A. 确定性翻译层 从噪声伪影到类型化数据
- A. 可组合的基础设施组件 用于调试工作流
什么哨兵DV 不是
- ❌ 确实如此 不 启动模拟或提交作业
- ❌ 确实如此 不 修改RTL/测试台代码
- ❌ 确实如此 不 需要任何特定的模拟器
- ❌ 它是 不 一个“会猜测的AI”;它返回有根据的、键入的事实
______________________________________________________________________
🙏 致谢
灵感来源:
______________________________________________________________________
📄 许可证
Apache许可证2.0-请参阅 许可证 了解详情。
______________________________________________________________________
🔗 链接
______________________________________________________________________
建于❤️ 对于验证社区
