adachsoft / ai-agent-config-repository-json
File-based JSON and Markdown implementations for AI agent configuration repositories.
Package info
gitlab.com/a.adach/ai-agent-config-repository-json
pkg:composer/adachsoft/ai-agent-config-repository-json
Requires
- php: ^8.3
- adachsoft/ai-agent-config-repository: ^0.6
- adachsoft/prompt-template-lib: ^0.3
Requires (Dev)
- adachsoft/php-code-style: ^0.7
- friendsofphp/php-cs-fixer: ^3.95
- phpstan/phpstan: ^2.2
- phpunit/phpunit: ^12.5
- rector/rector: ^2.6
- symplify/phpstan-rules: ~14.9.0
Suggests
None
Provides
None
Conflicts
None
Replaces
None
This package is not auto-updated.
Last update: 2026-10-01 06:10:16 UTC
README
File-based implementations of the SPI repositories from adachsoft/ai-agent-config-repository.
The package stores agent configurations and tool groups as JSON, system prompts as Markdown, and conversation context profiles as JSON.
Installation
composer require adachsoft/ai-agent-config-repository-json
Usage
All implementations are created through JsonFileRepositoryFactory:
use AdachSoft\AiAgentConfigRepositoryJson\JsonFileRepositoryFactory;
$factory = new JsonFileRepositoryFactory();
$agentGroups = $factory->createAgentGroupRepository(__DIR__ . '/config/agent-groups.json');
$toolGroups = $factory->createToolGroupRepository(__DIR__ . '/config/tool-groups');
$profiles = $factory->createConversationContextProfileRepository(__DIR__ . '/config/profiles');
$prompts = $factory->createDefaultSystemPromptRepository(__DIR__ . '/prompts', [
'support' => 'support/system.md',
]);
$agents = $factory->createAgentConfigRepository(
__DIR__ . '/config/agents',
$prompts,
$toolGroups,
$agentGroups,
$profiles,
);
A custom prompt engine can be supplied when prompt rendering needs custom functions:
$prompts = $factory->createSystemPromptRepository(__DIR__ . '/prompts', $promptEngine, $promptMap);
The factory exposes repository creators for agent groups, tool groups, conversation context profiles, system prompts, default system prompts, and agent configurations. Concrete repository classes are internal implementation details.
File formats
Agent files are named <agent-id>.json and contain name, description, provider_id, model_id, prompt_id, parameters, timeout_seconds, tool_ids, and policies.
Optional tool_group_ids and agent_group_ids reference group repositories.
Conversation context can be configured inline with conversation_context_strategy_id and conversation_context_strategy_params, or by using conversation_context_strategy_profile_id.
Tool group files are named <group-id>.json and contain optional name, optional description, and a tool_ids array.
Agent groups are stored in one JSON object keyed by group identifier; each definition contains name and description.
Conversation context profile files contain optional extends, strategy_id, and params fields.
System prompts are Markdown files. Their identifier is the relative path without the .md suffix; a prompt map can provide explicit identifiers and file paths.
Prompt templates are rendered by the injected prompt engine.