Framework for building AI agents with real-time adaptive learning capabilities.
Project description
pamiq-core
pamiq-core is a minimal machine learning framework for asynchronous execution of inference and training.
🎯 Design Philosophy
- Simplicity — Clean, intuitive APIs that just work
- Lightweight — Minimal dependencies, maximum performance
- Complete Thread Abstraction — Complex threading handled internally, simple interface externally
When you set out to build a dynamic continuous learning system, PAMIQ Core will be your steadfast foundation.
✨ Features
- 🔄 Parallel Architecture: Simultaneous inference and training in separate threads
- ⚡ Real-time Adaptation: Continuously update models during interaction
- 🧵 Thread-safe Design: Robust synchronization mechanisms for parameter sharing and data transfers
- 🔌 Modular Components: Easy-to-extend agent, environment, and model interfaces
- 🛠️ Comprehensive Tools: Built-in state persistence, time control, and monitoring
- 🏋️ Gymnasium Integration: Seamless compatibility with Gymnasium environments
- 🌍 Cross Platform: Linux is the primary focus, but Windows and macOS are also supported. (However, some older macOS and Windows systems may have significantly less accurate time control.)
📋 Requirements
- Python 3.12+
- PyTorch (optional, for torch integration)
🚀 Quick Start
Installation
# Install with pip
pip install pamiq-core
# Optional PyTorch integration
pip install pamiq-core[torch]
# Optional Gymnasium integration
pip install pamiq-core[gym]
Basic Example
from pamiq_core import launch, Interaction, LaunchConfig
from your_agent import YourAgent
from your_environment import YourEnvironment
# Create agent-environment interaction
interaction = Interaction(YourAgent(), YourEnvironment())
# Launch the system
launch(
interaction=interaction,
models=your_models,
buffers=your_data_buffers,
trainers=your_trainers,
config=LaunchConfig(
web_api_address=("localhost", 8391),
max_uptime=300.0, # 5 minutes
),
)
See the samples directory for complete examples.
Remote CLI Control
Once the system is running, you can connect and control it remotely via the terminal using pamiq-console:
# Connect to local system
pamiq-console --host localhost --port 8391
# Connect to remote system
pamiq-console --host 192.168.1.100 --port 8391
🧩 Architecture
pamiq-core implements a unique architecture that enables autonomous intelligence:
- Concurrent Threads: Separate threads for control, inference, and training
- Parameter Sharing: Thread-safe model parameter synchronization
- Experience Collection: Automatic buffering of data from environments, such as images and audio.
- Continuous Learning: Training models while simultaneously using them for decision making
- State Persistence: Saving and loading system state for resumable operation
🤝 Contributing
Contributions are welcome! Please see CONTRIBUTING.md for guidelines on how to contribute to pamiq-core.
📄 License
This project is licensed under the MIT License - see the LICENSE file for details.
🔗 Related Projects
- pamiq-recorder: Recording library for P-AMI<Q>
- pamiq-io: I/O library for P-AMI<Q>
Project details
Release history Release notifications | RSS feed
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 pamiq_core-0.6.0.tar.gz.
File metadata
- Download URL: pamiq_core-0.6.0.tar.gz
- Upload date:
- Size: 684.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6504ac930fc6ec743586dff015576b5dbe515d32ec0c65467d2f76f255632da4
|
|
| MD5 |
d8bd714373d3f36d429b02092701c434
|
|
| BLAKE2b-256 |
a6d7076a63ac8c7257018be340f41e938501475dd6df20514ac9e6e5c296fe33
|
Provenance
The following attestation bundles were made for pamiq_core-0.6.0.tar.gz:
Publisher:
publish-to-pypi.yml on MLShukai/pamiq-core
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pamiq_core-0.6.0.tar.gz -
Subject digest:
6504ac930fc6ec743586dff015576b5dbe515d32ec0c65467d2f76f255632da4 - Sigstore transparency entry: 553795176
- Sigstore integration time:
-
Permalink:
MLShukai/pamiq-core@001f8c9fbc8174bfef3ee6c61e1f2ce3854aa99d -
Branch / Tag:
refs/tags/0.6.0 - Owner: https://github.com/MLShukai
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-to-pypi.yml@001f8c9fbc8174bfef3ee6c61e1f2ce3854aa99d -
Trigger Event:
push
-
Statement type:
File details
Details for the file pamiq_core-0.6.0-py3-none-any.whl.
File metadata
- Download URL: pamiq_core-0.6.0-py3-none-any.whl
- Upload date:
- Size: 72.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ff69b4c53e6a643677b9c6fa7ebc481aed787bd0e08d0d92dd397016027b57a1
|
|
| MD5 |
00318dac83c59e78f77107e0e12c1ede
|
|
| BLAKE2b-256 |
29d0aeb717c10bf5a92522de16a8e947da2089dffb96622fc0a0b5d710c85277
|
Provenance
The following attestation bundles were made for pamiq_core-0.6.0-py3-none-any.whl:
Publisher:
publish-to-pypi.yml on MLShukai/pamiq-core
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pamiq_core-0.6.0-py3-none-any.whl -
Subject digest:
ff69b4c53e6a643677b9c6fa7ebc481aed787bd0e08d0d92dd397016027b57a1 - Sigstore transparency entry: 553795180
- Sigstore integration time:
-
Permalink:
MLShukai/pamiq-core@001f8c9fbc8174bfef3ee6c61e1f2ce3854aa99d -
Branch / Tag:
refs/tags/0.6.0 - Owner: https://github.com/MLShukai
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-to-pypi.yml@001f8c9fbc8174bfef3ee6c61e1f2ce3854aa99d -
Trigger Event:
push
-
Statement type: