🔮 SRA — Skill Runtime Advisor

让 AI Agent 知道自己有什么能力,以及什么时候该用什么能力
v1.4.0-dev 290 tests MIT License
生成于 2026-05-11 19:34 | 由 generate-project-report.py 数据驱动自动生成

📋 项目概览

名称
SRA Agent
sra-agent
版本
1.4.0-dev
MIT License
Python
≥ 3.8
依赖: pyyaml

SRA — Skill Runtime Advisor 是一个运行在 AI Agent 旁的守护进程,在 Agent 收到用户消息时自动分析语义、推荐最匹配的 Hermes Skill,并通过 pre_tool_call 钩子系统在校验工具调用前检查技能遵循度。

⚠️ 版本由 setuptools-scm 从 git tag 自动推导(__init__.py 含多级 fallback,静态 regex 不可靠)。当前 dev 版,正式版见 git tag。


属性
作者Emma (SRA Team), Kei
仓库github.com/JackSmith111977/Hermes-Skill-View
入口 CLIsra / srad
守护端口HTTP :8536 + Unix Socket ~/.sra/srad.sock
技能来源~/.hermes/skills/**/SKILL.md (YAML frontmatter)
数据持久化~/.sra/data/

🏗️ 三层架构

Layer 3 — 接口层 Interface
CLI (sra)HTTP API (:8536)Unix Socket (~/.sra/srad.sock)
⬇ 委托 ⬇
Layer 2 — 业务逻辑层 Service
SRaDDaemon (daemon.py)SkillAdvisor (advisor.py)SkillMatcher (matcher.py)SkillIndexer (indexer.py)ForceLevelManager (force.py)SceneMemory (memory.py)Synonyms (synonyms.py)
⬇ 读写 ⬇
Layer 1 — 数据层 Data
~/.hermes/skills/~/.sra/data/~/.sra/config.json

核心模块职责

模块文件职责关键方法
SkillAdvisoradvisor.py推荐引擎主入口,Facade 封装recommend(), recheck(), record_view/use/skip(), analyze_coverage(), build_contract()
SRaDDaemonruntime/daemon.py守护进程,HTTP + Socket 双协议start(), stop(), _handle_request(), get_stats()
SkillMatchermatcher.py四维匹配引擎(词法/语义/场景/类别)score()
SkillIndexerindexer.py技能扫描、索引构建、关键词提取build(), load_or_build(), get_skills(), extract_keywords()
SceneMemorymemory.py场景记忆 + 技能轨迹追踪 + 遵循率统计record_view/use/skip(), get_compliance_stats()
ForceLevelManagerruntime/force.py力度等级引擎 🆕 v1.3.0get_level(), set_level(), is_injection_point_active()
Validateruntime/endpoints/validate.py工具调用前技能校验handle_validate()
SkillMapskill_map.py文件扩展名→技能映射注册表get_required_skills()
CLIcli.py命令行接口 + 降级策略cmd_*() + _socket_request()
Lockruntime/lock.pyOS 级文件锁(fcntl.flock 单例保障)acquire_lock()

🔌 全部 API 端点

HTTP API (port 8536)

方法路径说明Sprint
GET/health健康检查 + 基本统计v1.x
GET/status引擎状态 + 配置 + 力度等级v1.x
GET/stats运行统计详情v1.x
GET/stats/compliance技能遵循率统计Sprint 2 🆕
GET/recommend?q=...技能推荐(GET 方式)v1.x
POST/recommend技能推荐(POST + rag_context + contract)v1.x
POST/record记录使用/查看/跳过Sprint 2 🆕
POST/refresh刷新技能索引v1.x
POST/validate工具调用前技能校验Sprint 1 🆕
POST/force运行时力度管理(查看/切换等级)v1.3.0 🆕
POST/recheck长任务上下文漂移重检Sprint 2 🆕

Unix Socket API (~/.sra/srad.sock)

ActionParams说明Sprint
recommend{query, top_k?}技能推荐v1.x
record{skill, action?, input?}记录使用/查看/跳过Sprint 2 🆕
refresh{}刷新索引v1.x
stats{}获取统计v1.x
stats/compliance{}遵循率统计Sprint 2 🆕
coverage{}覆盖率分析v1.x
validate{tool, args, loaded_skills?}工具调用校验Sprint 1 🆕
force{level?}查看/设置力度等级v1.3.0 🆕
recheck{conversation_summary, loaded_skills?}漂移重检Sprint 2 🆕
ping{}心跳检测v1.x
stop{}远程停止守护进程v1.x

💻 CLI 命令全集

守护进程管理

命令说明
sra start启动守护进程(后台)
sra stop停止守护进程
sra restart重启守护进程
sra status查看运行状态
sra attach前台运行(调试用)

查询命令

命令说明
sra recommend 技能推荐
sra query 同 recommend
sra stats查看统计
sra coverage覆盖率分析
sra compliance技能遵循率统计
sra refresh刷新索引

管理命令

命令说明
sra record 记录使用
sra force [set |list]运行时力度管理
sra config [show|set|reset]配置管理
sra install 安装到 Agent
sra upgrade [-V ]升级 SRA
sra uninstall [--all]卸载 SRA
sra dep-check检查 Gateway 依赖链健康度
sra version版本信息
sra adapters列出 Agent 适配器
sra help帮助信息

📊 EPIC & Story 状态

EPIC-003: v2.0 Enforcement Layer (17/19)

IDStory优先级Sprint
SRA-003-01✅ Tool 层 SRA 校验P0Sprint 1
SRA-003-02✅ 文件类型技能映射P0Sprint 1
SRA-003-10✅ systemd 自启动部署P2Sprint 1
SRA-003-11✅ 安装脚本自动配置P2Sprint 1
SRA-003-12✅ Daemon 单例守护P0Sprint 1
SRA-003-13✅ HTTP 架构 + 异常处理P0Sprint 1
SRA-003-03✅ 技能使用轨迹记录P1Sprint 2
SRA-003-04✅ 长任务上下文漂移保护P1Sprint 2
SRA-003-14✅ 测试覆盖增强P1Sprint 2
SRA-003-05✅ SRA 契约机制P1v1.3.0
SRA-003-06✅ 运行时力度体系P1v1.3.0
SRA-003-17✅ Drop-in 生命周期管理P1Sprint 2
SRA-003-18✅ 质量修复 Sprint 1P0Sprint 2
SRA-003-19✅ 质量修复 Sprint 2P1Sprint 2
SRA-003-20✅ 质量修复 Sprint 3P1Sprint 2
SRA-003-15📋 质量增强(Schema/日志/魔法数字)P1
SRA-003-16📋 架构优化(并发安全/路由统一)P1
SRA-003-21✅ 分支同步与 v1.3.0 发布P0Sprint 3
SRA-003-22✅ os.fork()→subprocess.Popen (A-8)P0Sprint 3

🧪 测试覆盖

290
通过测试
290
总测试
25s
运行时间
测试文件: test_matcher.py, test_indexer.py, test_coverage.py, test_benchmark.py, test_daemon.py, test_cli.py, test_api_integration.py, test_dropin.py, test_adapters.py, test_singleton.py, test_skill_map.py, test_contract.py, test_force.py, test_validate.py, test_daemon_http.py, test_memory.py

🏃 Sprint 历史

Sprint版本日期完成的 Story测试增长
Sprint 1v2.0-alpha2026-05-09738→103
Sprint 2v1.3.02026-05-1111174→290
Sprint 3 (in-progress)v1.4.0-dev2026-05-110290→290

🔮 SRA — Skill Runtime Advisor v1.4.0-dev

generate-project-report.py 于 2026-05-11 19:34 生成