adachsoft/open-api-reader-tool 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

adachsoft/open-api-reader-tool

Composer 安装命令:

composer require adachsoft/open-api-reader-tool

包简介

OpenAPI 3 reader tool for the adachsoft/ai-tool-call ecosystem with sandboxed filesystem access.

README 文档

README

OpenAPI reader tool for the adachsoft/ai-tool-call ecosystem.

This library exposes an AI tool that can read an OpenAPI 3 specification and provide high‑level information about available endpoints, detailed endpoint descriptions, schemas and simple search capabilities. Local specification files are always accessed through a filesystem sandbox defined by configuration.

Installation

composer require adachsoft/open-api-reader-tool

This will also install its runtime dependencies:

  • adachsoft/open-api-reader – low‑level OpenAPI 3 parser
  • adachsoft/ai-tool-call – SPI for tool definition and execution
  • guzzlehttp/guzzle – HTTP client for fetching remote OpenAPI documents
  • adachsoft/sandbox-contracts – filesystem sandbox contracts used to scope file access

Configuration

The tool is created via OpenApiToolFactory and expects a configuration map (ConfigMap) that contains at least the base_path key:

use AdachSoft\AiToolCall\SPI\Collection\ConfigMap;
use AdachSoft\OpenApiReaderTool\OpenApiToolFactory;

$factory = new OpenApiToolFactory();

$config = new ConfigMap([
    'base_path' => __DIR__ . '/specs', // sandbox root for local OpenAPI files
]);

$tool = $factory->create($config);

The base_path value is used to build a sandbox (SandboxPath) coming from adachsoft/sandbox-contracts. Every local file path passed to the tool is resolved within this sandbox; attempts to escape it (e.g. using ..) are rejected.

Tool definition

The exported tool is named openapi_reader and exposes one required parameter action plus a set of optional parameters depending on the chosen action.

Parameters

  • spec_path_or_url (string, optional)
    • Path to a local OpenAPI file inside the sandbox base_path, or an absolute URL to an OpenAPI document.
  • action (string, required)
    • One of:
      • list_endpoints – list endpoints in a paginated way
      • endpoint_details – show details for a specific endpoint
      • schema – fetch a schema definition from components
      • search – perform a simple text search over endpoints
  • page (integer, optional)
    • Page number for list_endpoints (default is 1).
  • limit (integer, optional)
    • Page size for list_endpoints (default is 10, maximum is 100).
  • path (string, optional)
    • OpenAPI path of the endpoint (e.g. /users/{id}), used with endpoint_details.
  • method (string, optional)
    • HTTP method of the endpoint (e.g. GET, POST), used with endpoint_details.
  • schema_name (string, optional)
    • Name of the schema in OpenAPI components, used with schema.
  • query (string, optional)
    • Free‑text search query, used with search.

Basic usage example

The exact integration depends on how you wire tools in your AI orchestration. Below is a minimal, framework‑agnostic example of a single tool call:

use AdachSoft\AiToolCall\SPI\Collection\KeyValueMap;
use AdachSoft\AiToolCall\SPI\Dto\ToolCallRequestDto;
use AdachSoft\OpenApiReaderTool\OpenApiTool;
use AdachSoft\OpenApiReaderTool\OpenApiToolFactory;

$factory = new OpenApiToolFactory();
$tool = $factory->create(new ConfigMap([
    'base_path' => __DIR__ . '/specs',
]));

$request = new ToolCallRequestDto(
    'openapi_reader',
    new KeyValueMap([
        'spec_path_or_url' => 'openapi.yaml',
        'action' => 'list_endpoints',
        'page' => 1,
        'limit' => 10,
    ]),
);

$result = $tool->callTool($request);

// $result->result is a KeyValueMap with key "data" holding the returned array
$endpoints = $result->result->get('data');

Security and sandboxing

All local file accesses are performed relative to the configured base_path using adachsoft/sandbox-contracts. This means:

  • the tool cannot read files outside the sandbox root,
  • invalid or escaping paths result in clear InvalidToolCallException errors,
  • remote documents are fetched only via HTTP(S) using Guzzle.

License

This library is released under the MIT License.

adachsoft/open-api-reader-tool 适用场景与选型建议

adachsoft/open-api-reader-tool 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 7 次下载、GitHub Stars 达 0, 最近一次更新时间为 2026 年 04 月 08 日, 在 PHP 生态内属于活跃度较高的组件。

它主要适用于以下技术方向: 「documentation」 「filesystem」 「api」 「sandbox」 「tool」 「openapi」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。

我们在过去多个企业项目中使用过 adachsoft/open-api-reader-tool 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。

围绕 adachsoft/open-api-reader-tool 我们能提供哪些服务?
定制开发 / 二次开发

基于 adachsoft/open-api-reader-tool 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。

BUG 修复 & 性能优化

线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。

项目外包 & 长期维护

承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。

yvsm@zunyunkeji.com QQ:316430983 微信:yvsm316 西安尊云信息科技 · 专注 PHP / Go / 分布式系统研发

统计信息

  • 总下载量: 7
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 37
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 0
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2026-04-08