Production-ready AI agent framework for FIPS/OpenShift environments
Project description
fipsagents
Production-ready AI agent framework for FIPS/OpenShift environments. Provides BaseAgent — a pure Python, async-first base class that handles LLM communication, tool dispatch, MCP connections, prompt loading, skill management, configuration, and lifecycle so your agent subclass stays small.
Install
pip install fipsagents[server]
With optional MemoryHub support:
pip install fipsagents[server,memory]
Or vendor the source directly into your project for full control:
fips-agents vendor
See VENDORED marker in src/fipsagents/ for provenance tracking.
Quick start
from fipsagents.baseagent import BaseAgent, StepResult
class MyAgent(BaseAgent):
async def step(self) -> StepResult:
response = await self.call_model()
response = await self.run_tool_calls(response)
return StepResult.done(response.content)
if __name__ == "__main__":
from fipsagents.server import OpenAIChatServer
server = OpenAIChatServer(agent_class=MyAgent, config_path="agent.yaml")
server.run()
What's included
- LLM client via the openai async SDK — connects to any OpenAI-compatible endpoint (vLLM, LlamaStack, llm-d)
- Two-plane tool system —
@tooldecorator withagent_only,llm_only, orbothvisibility - MCP client via FastMCP v3 — connect to remote servers (tools, prompts, and resources)
- Prompt loading — Markdown with YAML frontmatter
- Skills — agentskills.io progressive disclosure
- Configuration — YAML with
${VAR:-default}env var substitution - MemoryHub — optional persistent memory (dual-path: MCP for LLM, SDK for agent code)
- Protective patterns — max iterations, exponential backoff, rate limiting
- HTTP server — OpenAI-compatible
/v1/chat/completionsendpoint with streaming run_tool_calls()— one-line tool dispatch loop for non-streaming agents- Agent identity — name, description, version exposed via
/v1/agent-info
Key methods
| Method | Purpose |
|---|---|
call_model() |
LLM completion with auto-included tool schemas |
run_tool_calls(response) |
Execute tool calls and loop until the model stops |
call_model_json(schema) |
Structured output with Pydantic validation |
call_model_validated(fn) |
Call, validate, retry with backoff |
use_tool(name, **kw) |
Agent-code tool call (plane 1) |
connect_mcp(target) |
Connect to an MCP server |
get_mcp_prompt(name) |
Render an MCP-provided prompt |
read_resource(uri) |
Read an MCP-provided resource |
Used by
This package is the shared framework for templates scaffolded by the fips-agents CLI:
- agent-loop — single-agent loop (
step()in a loop) - workflow — directed graph of nodes with typed state
License
Apache 2.0
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file fipsagents-0.8.0.tar.gz.
File metadata
- Download URL: fipsagents-0.8.0.tar.gz
- Upload date:
- Size: 123.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ee3bfc921449cc020793de3550e1861c77e372c6406392faba837b590e80e128
|
|
| MD5 |
758141bf4a8b81fa8972200676e0d5a6
|
|
| BLAKE2b-256 |
3a545a79bff3122fa7fea5c099040ec5662554317e74a967e945cc0fd34a1776
|
Provenance
The following attestation bundles were made for fipsagents-0.8.0.tar.gz:
Publisher:
publish.yml on fips-agents/agent-template
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
fipsagents-0.8.0.tar.gz -
Subject digest:
ee3bfc921449cc020793de3550e1861c77e372c6406392faba837b590e80e128 - Sigstore transparency entry: 1355793833
- Sigstore integration time:
-
Permalink:
fips-agents/agent-template@2593d1a8731ef43a3b9b5a60546c0a6ad5463fa0 -
Branch / Tag:
refs/tags/fipsagents-v0.8.0 - Owner: https://github.com/fips-agents
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@2593d1a8731ef43a3b9b5a60546c0a6ad5463fa0 -
Trigger Event:
push
-
Statement type:
File details
Details for the file fipsagents-0.8.0-py3-none-any.whl.
File metadata
- Download URL: fipsagents-0.8.0-py3-none-any.whl
- Upload date:
- Size: 91.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
01e9d1ee0af0875dfc5a3e9a28caf4e16920b297a5c58d9d2cdd4804edebd0cb
|
|
| MD5 |
43d09b9c775f87d60836203f0183ffb0
|
|
| BLAKE2b-256 |
87090bdc32abeca2f09a9266fa976807e364208ab58942916b5be4bf52d6580b
|
Provenance
The following attestation bundles were made for fipsagents-0.8.0-py3-none-any.whl:
Publisher:
publish.yml on fips-agents/agent-template
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
fipsagents-0.8.0-py3-none-any.whl -
Subject digest:
01e9d1ee0af0875dfc5a3e9a28caf4e16920b297a5c58d9d2cdd4804edebd0cb - Sigstore transparency entry: 1355793843
- Sigstore integration time:
-
Permalink:
fips-agents/agent-template@2593d1a8731ef43a3b9b5a60546c0a6ad5463fa0 -
Branch / Tag:
refs/tags/fipsagents-v0.8.0 - Owner: https://github.com/fips-agents
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@2593d1a8731ef43a3b9b5a60546c0a6ad5463fa0 -
Trigger Event:
push
-
Statement type: