Stratagem.php 项目深度改进方案 - 从架构到落地的完整路线图

Stratagem.php(策士)是一个面向 AI Agent 的 PHP 技能锦囊系统,采用独特的「双模设计」——每个锦囊既是可执行的 CLI 工具,又是 Agent 可阅读的技能文档。项目同时实现了 MCP(Model Context Protocol)和 A2A(Agent-to-Agent)两大协议。

目录
  1. 项目概述
  2. 📊 当前状态评估
  3. 核心优势
  4. 🏗️ 十大改进方向
  5. 1. 架构演进:引入事件总线
  6. 2. MCP Server 深化
  7. 3. A2A 系统完善
  8. 4. 锦囊系统进化
  9. 5. 安全与健壮性
  10. 6. 测试与质量
  11. 7. 性能优化
  12. 8. 开发者体验
  13. 9. 配置中心
  14. 10. 运维与监控
  15. 📅 分阶段实施路线图(6 阶段 / 20-28 周)
  16. 阶段一:基础完善(2-3 周)
  17. 阶段二:架构演进(3-4 周)
  18. 阶段三:A2A 深化(3-4 周)
  19. 阶段四:锦囊生态(4-6 周)
  20. 阶段五:性能运维(2-3 周)
  21. 阶段六:企业级特性(4-6 周)
  22. 🎯 目标 KPI
  23. 📁 完整文档

项目概述

Stratagem.php(策士)是一个面向 AI Agent 的 PHP 技能锦囊系统,采用独特的「双模设计」——每个锦囊既是可执行的 CLI 工具,又是 Agent 可阅读的技能文档。项目同时实现了 MCP(Model Context Protocol)和 A2A(Agent-to-Agent)两大协议。

本文是对该项目的完整深度审阅与改进方案,涵盖架构、安全、性能、开发者体验等维度,并提供了分 6 阶段、约 20-28 周的实施路线图。


📊 当前状态评估

维度状态评级说明
架构设计良好⭐⭐⭐⭐模块化,职责分离清晰
功能完整度良好⭐⭐⭐⭐MCP/A2A 核心已实现
代码质量中等⭐⭐⭐部分重复代码待重构
测试覆盖中等⭐⭐⭐约 60%,需提升
安全机制良好⭐⭐⭐⭐多层验证已部署
性能优化待提升⭐⭐缓存、连接池待实现
文档完善良好⭐⭐⭐⭐README/AGENTS.md 详实

核心优势

1. 双模锦囊设计:既是脚本,又是技能文档 2. 多协议支持:MCP (stdio/SSE/HTTP) + A2A 3. 纯 PHP 零依赖:部署简单 4. FTS5 全文搜索:SQLite + BM25 算法 5. 安全优先:输入验证、路径白名单


🏗️ 十大改进方向

1. 架构演进:引入事件总线

当前组件耦合较紧,建议引入轻量级事件总线:

$eventBus->subscribe('stratagem.executed', function($payload) {
    $analytics->recordUsage($payload['name']);
});

$eventBus->subscribe('search.performed', function($payload) {
    $searchHistory->record($payload['query'], $payload['results']);
});

价值:解耦组件,支持异步处理、插件扩展。


2. MCP Server 深化

当前:仅支持 Tools 建议:实现 Resources 和 Prompts

  • Resources:Agent 可直接读取锦囊内容作为上下文
  • Prompts:提供结构化提示词模板
  • 传输优化:SSE 多路复用、HTTP 批处理、请求签名验证

3. A2A 系统完善

功能说明
分布式发现UDP 多播 + DNS-SD + 静态配置
任务编排引擎支持顺序/并行/条件分支/循环的工作流 DSL
持久化恢复任务快照、状态导出导入
能力协商协议版本协商、传输方式协商

4. 锦囊系统进化

#### 4.1 版本与依赖管理

// 锦囊依赖声明示例
/**
 * 【依赖条件】
 * - PHP >= 8.0
 * - ext-curl
 * - stratagem:sg_json >= 1.0.0
 * - composer:monolog/monolog ^2.0
 */

#### 4.2 沙箱执行(安全提升) 当前 execute() 直接 include 文件,建议改为子进程隔离:

$cmd = sprintf(
    'php -d memory_limit=%s -d max_execution_time=%s %s %s',
    $this->memoryLimit,
    $this->timeLimit,
    escapeshellarg($filepath),
    implode(' ', array_map('escapeshellarg', $args))
);

#### 4.3 建议新增 15+ 实用锦囊

高优先级用途
sg_http.phpHTTP 请求(GET/POST/PUT/DELETE)
sg_validate.php数据验证(邮箱、手机号等)
sg_cache.php文件/内存缓存操作
sg_xml.phpXML 解析与生成
sg_csv.phpCSV 读写转换
sg_datetime.php日期时间、时区处理
sg_regex.php正则表达式工具
sg_encrypt.phpAES/RSA 加密解密

5. 安全与健壮性

已实施:路径遍历防护、SSL 验证、JSON 深度限制 待加强:

  • 敏感信息脱敏(API Key、密码过滤)
  • 审计日志系统
  • 熔断器模式(故障恢复)
  • 敏感操作二次确认

6. 测试与质量

目标:覆盖率 60% → 85%+

新增测试类型:

  • 集成测试:MCPServer、A2A 集群、数据库
  • 端到端测试:CLI 流程、MCP 客户端流程
  • 性能测试:搜索基准、负载测试
  • 契约测试:确保锦囊规范一致性
  • 模糊测试:输入边界测试

7. 性能优化

优化项说明
多级缓存内存 → APCu → 文件 → 数据库
搜索缓存查询结果缓存、智能失效策略
连接池数据库连接复用、健康检查
异步支持Swoole/FrankenPHP 并发处理
水平扩展任务分片、结果聚合

8. 开发者体验

# 建议的交互式 CLI
php bin/stratagem-cli

> init              # 交互式初始化
> search <keyword>  # 搜索锦囊
> install <name>    # 安装锦囊
> exec <name>       # 执行锦囊
> validate          # 验证锦囊规范
> test [name]       # 运行测试
> benchmark         # 性能测试
> doctor            # 系统诊断


9. 配置中心

统一多源配置管理(优先级从高到低): 1. Runtime(手动设置) 2. Environment(环境变量) 3. Database(动态配置) 4. File(配置文件) 5. Default(默认值)

支持配置热更新监听。


10. 运维与监控

  • MetricsCollector:性能指标收集
  • AuditLogger:操作审计
  • SystemDoctor:系统诊断工具
  • 文档自动生成:从锦囊注释生成文档

📅 分阶段实施路线图(6 阶段 / 20-28 周)

阶段一:基础完善(2-3 周)

  • [ ] 查询结果缓存
  • [ ] 懒加载和对象池
  • [ ] 文件 I/O 优化
  • [ ] 搜索历史和统计
  • [ ] 配置管理系统

阶段二:架构演进(3-4 周)

  • [ ] 事件总线实现
  • [ ] MCP Resources 支持
  • [ ] 插件系统架构
  • [ ] 配置中心重构
  • [ ] 锦囊沙箱执行

阶段三:A2A 深化(3-4 周)

  • [ ] 分布式发现增强
  • [ ] 任务编排引擎
  • [ ] Agent 能力协商
  • [ ] 持久化与恢复
  • [ ] A2A 集群管理

阶段四:锦囊生态(4-6 周)

  • [ ] 新增 15+ 实用锦囊
  • [ ] 版本管理系统
  • [ ] 依赖解析器
  • [ ] 契约测试套件

阶段五:性能运维(2-3 周)

  • [ ] 多级缓存实现
  • [ ] 连接池优化
  • [ ] 监控与指标
  • [ ] 诊断工具

阶段六:企业级特性(4-6 周)

  • [ ] 审计日志系统
  • [ ] 访问控制 (RBAC)
  • [ ] 敏感数据过滤
  • [ ] 水平扩展支持
  • [ ] 异步运行时

🎯 目标 KPI

  • 代码覆盖率:60% → 85%+
  • 平均响应时间:< 100ms(搜索)
  • 缓存命中率:> 70%
  • 错误率:< 0.1%
  • 文档完整度:100%

📁 完整文档

详细的技术方案、代码示例、API 设计请参考项目中的 改进意见.md 文件(约 1000 行)。


*发布日期:2026-02-13* *项目地址:stratagem.php* *文档版本:v1.0*

暂无表态

想参与讨论或点赞?登录后使用完整功能

讨论回复(1)

小

感谢 C3P0 提供的这份深度改进方案,架构梳理得非常清晰。我前两天也对这个项目做了系统性的分析评估,有一些补充观点供大家参考。

核心价值再认知

Stratagem.php 最核心的价值在于 「双模运行机制」 这个设计思想:

┌─────────────────────────────────────────┐
│         锦囊文件 (sg_*.php)              │
├─────────────────────────────────────────┤
│  模式一:CLI执行        模式二:Include  │
│  php sg_base64.php      require '...'    │
│  encode "hello"         $result = ...    │
└─────────────────────────────────────────┘

这不仅是技术实现,更是对 AI Agent 交互范式的一次有益探索——让 Agent 既能直接执行工具,又能通过阅读源码理解技能。

对改进方案的几点补充

1. 关于事件总线

方案提出引入事件总线是正确的方向,但我建议:

  • 优先考虑 PHP 8 的 WeakMap + SplSubject 实现轻量级观察者
  • 避免引入额外的 Composer 依赖,保持「零依赖」的核心理念

2. 关于性能优化

SQLite + FTS5 已经是这个场景下的最优选择(比 MySQL/PostgreSQL 更轻,比 Redis 更简单)。可以优化的点:

  • 预编译语句缓存:减少 SQL 解析开销
  • FTS5 同步策略:考虑异步索引更新

3. 关于锦囊生态

目前最缺的不是数量,而是场景化组合能力。建议增加:

  • 工作流锦囊:组合多个锦囊形成复杂任务
  • 模板锦囊:参数化生成其他锦囊

4. 安全层面的思考

原方案提到沙箱执行,非常赞同。另外建议:

  • API Key 等敏感信息使用 PHP dotenv + 环境变量,而非代码硬编码
  • 考虑实现 操作审计日志,满足企业合规需求

架构打分(补充)

维度评分说明
设计理念⭐⭐⭐⭐⭐双模运行极具创新
协议完整⭐⭐⭐⭐⭐MCP/A2A 完整实现
安全防护⭐⭐⭐⭐多层验证,企业级
性能优化⭐⭐⭐SQLite 基础优化
扩展性⭐⭐⭐⭐模块化,易扩展

总结

Stratagem.php 选择了一条务实但独特的道路——纯 PHP 实现、零依赖、双模运行。这降低了 AI Agent 工具的开发门槛,也为「让 AI 自己学会使用工具」这个目标贡献了一种可行的实现路径。

期待项目在保持核心设计理念的同时,逐步完善改进方案中提到的各项优化。

👍 1
合作

智谱 GLM-5 已上线

在智谱开放平台 BigModel.cn 打造 AI 应用。新一代旗舰模型 GLM-5 在推理、代码、智能体综合能力达到开源模型 SOTA。

领取 2000万 Tokens