Stratagem.php(策士)是一个面向 AI Agent 的 PHP 技能锦囊系统,采用独特的「双模设计」——每个锦囊既是可执行的 CLI 工具,又是 Agent 可阅读的技能文档。项目同时实现了 MCP(Model Context Protocol)和 A2A(Agent-to-Agent)两大协议。
本文是对该项目的完整深度审阅与改进方案,涵盖架构、安全、性能、开发者体验等维度,并提供了分 6 阶段、约 20-28 周的实施路线图。
| 维度 | 状态 | 评级 | 说明 |
|---|---|---|---|
| 架构设计 | 良好 | ⭐⭐⭐⭐ | 模块化,职责分离清晰 |
| 功能完整度 | 良好 | ⭐⭐⭐⭐ | MCP/A2A 核心已实现 |
| 代码质量 | 中等 | ⭐⭐⭐ | 部分重复代码待重构 |
| 测试覆盖 | 中等 | ⭐⭐⭐ | 约 60%,需提升 |
| 安全机制 | 良好 | ⭐⭐⭐⭐ | 多层验证已部署 |
| 性能优化 | 待提升 | ⭐⭐ | 缓存、连接池待实现 |
| 文档完善 | 良好 | ⭐⭐⭐⭐ | README/AGENTS.md 详实 |
当前组件耦合较紧,建议引入轻量级事件总线:
$eventBus->subscribe('stratagem.executed', function($payload) {
$analytics->recordUsage($payload['name']);
});
$eventBus->subscribe('search.performed', function($payload) {
$searchHistory->record($payload['query'], $payload['results']);
});
价值:解耦组件,支持异步处理、插件扩展。
当前:仅支持 Tools
建议:实现 Resources 和 Prompts
| 功能 | 说明 |
|---|---|
| 分布式发现 | UDP 多播 + DNS-SD + 静态配置 |
| 任务编排引擎 | 支持顺序/并行/条件分支/循环的工作流 DSL |
| 持久化恢复 | 任务快照、状态导出导入 |
| 能力协商 | 协议版本协商、传输方式协商 |
// 锦囊依赖声明示例
/**
* 【依赖条件】
* - PHP >= 8.0
* - ext-curl
* - stratagem:sg_json >= 1.0.0
* - composer:monolog/monolog ^2.0
*/
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))
);
| 高优先级 | 用途 |
|---|---|
| sg_http.php | HTTP 请求(GET/POST/PUT/DELETE) |
| sg_validate.php | 数据验证(邮箱、手机号等) |
| sg_cache.php | 文件/内存缓存操作 |
| sg_xml.php | XML 解析与生成 |
| sg_csv.php | CSV 读写转换 |
| sg_datetime.php | 日期时间、时区处理 |
| sg_regex.php | 正则表达式工具 |
| sg_encrypt.php | AES/RSA 加密解密 |
已实施:路径遍历防护、SSL 验证、JSON 深度限制
待加强:
目标:覆盖率 60% → 85%+
新增测试类型:
| 优化项 | 说明 |
|---|---|
| 多级缓存 | 内存 → APCu → 文件 → 数据库 |
| 搜索缓存 | 查询结果缓存、智能失效策略 |
| 连接池 | 数据库连接复用、健康检查 |
| 异步支持 | Swoole/FrankenPHP 并发处理 |
| 水平扩展 | 任务分片、结果聚合 |
# 建议的交互式 CLI
php bin/stratagem-cli
> init # 交互式初始化
> search <keyword> # 搜索锦囊
> install <name> # 安装锦囊
> exec <name> # 执行锦囊
> validate # 验证锦囊规范
> test [name] # 运行测试
> benchmark # 性能测试
> doctor # 系统诊断
统一多源配置管理(优先级从高到低):
详细的技术方案、代码示例、API 设计请参考项目中的 改进意见.md 文件(约 1000 行)。
发布日期:2026-02-13
项目地址:stratagem.php
文档版本:v1.0
还没有人回复