LLM Tools
aria.llmtools is ARIA’s provider and routing layer for LLM inference across
online and local backends. It is also used by verification workflows such as the
LLM4Inv engine, but it is no longer nested under aria.efmc.
Package layout
The current package structure is:
aria/llmtools/
├── __init__.py
├── client.py
├── local_client.py
├── routing.py
├── tooling.py
├── core/
└── providers/
Key modules:
client.py: routedLLMclientlocal_client.py: local-provider client helpersrouting.py: provider/model resolutiontooling.py: abstract base classes for LLM-backed toolscore/: shared types, logging, retry logic, and client flowproviders/: online and local provider adapters
Public API
The package exports:
from aria.llmtools import LLM, LLMLocal, Logger, resolve_provider
Example
from aria.llmtools import LLM, Logger
logger = Logger()
llm = LLM(
model_name="gpt-4o-mini",
logger=logger,
temperature=0.1,
)
The concrete provider is selected by resolve_provider() based on the model
name and optional provider hint.
LLM-backed tool base classes
aria.llmtools.tooling defines reusable abstractions for higher-level tools:
from aria.llmtools.tooling import LLMTool, LLMToolInput, LLMToolOutput
These classes provide:
a typed input/output boundary for tool wrappers
retry-aware invocation through the routed
LLMclientprompt construction and response parsing hooks
simple caching keyed by tool input
Relationship to EFMC
Verification engines may consume aria.llmtools, but the LLM infrastructure
is shared repo-wide and should be documented at the top-level package location.