How didntfindmyname/btp works
This repository is a research system for task-aware cloud-service selection: a user supplies a task and candidate services, then an agent infers QoS weights, chooses a deterministic ranking strategy, and returns ranked services with an auditable decision. Data preparation supports QWS and two distinct WS-DREAM releases; task profiles and static baselines enable comparisons. Separate evaluation capabilities cover stable selection, controlled drift, and real time-slice validation, with reports and an interactive Streamlit demo. The controller excerpt is partial, so links reflect only documented or sampled orchestration.
Main entry points: controller.py Agent controller · protocol.py Evaluation protocol · streamlit_demo.py Streamlit demo · llm_backends.py LLM backends
Components 24
User interface
- Streamlit demo
app/streamlit_demo.py
Agent decision
- Agent controller
src/agentic_selection/agent/controller.py - Pool perception
src/agentic_selection/agent/perception.py - LLM reasoning
src/agentic_selection/agent/reasoning.py - LLM backends
src/agentic_selection/agent/llm_backends.py - Decision validation
src/agentic_selection/agent/validation.py - Decision memory
src/agentic_selection/agent/memory.py - LLM cache
src/agentic_selection/agent/controller.py - Selection result
src/agentic_selection/agent/controller.py
Data and profiles
- Task profiles
src/agentic_selection/tasks/profiles.py - WS-DREAM profiles
src/agentic_selection/tasks/wsdream_profiles.py - QWS loader
src/agentic_selection/data/qws_loader.py - WS-DREAM loader
src/agentic_selection/data/wsdream_loader.py - Pool preprocessing
src/agentic_selection/data/preprocessing.py
Ranking methods
- Static baselines
src/agentic_selection/baselines/lookup_table.py - MCDM ranking
src/agentic_selection/baselines
Evaluation and analysis
- Experiment runner
src/agentic_selection/evaluation/runner.py - Evaluation protocol
src/agentic_selection/evaluation/protocol.py - Evaluation metrics
src/agentic_selection/evaluation/metrics.py - Trial storage
src/agentic_selection/evaluation/storage.py - Drift simulation
src/agentic_selection/drift/simulate.py - Analysis reports
src/agentic_selection/evaluation/report.py
Other components
- Task requester
- LLM provider
Connections 25
- Task requester → Streamlit demo: provides task
- Streamlit demo → Agent controller: requests decision
- Streamlit demo → QWS loader: loads QWS
- QWS loader → Pool preprocessing: supplies data
- WS-DREAM loader → Pool preprocessing: supplies data
- Task profiles → Streamlit demo: offers tasks
- WS-DREAM profiles → Streamlit demo: offers tasks
- Agent controller → Pool perception: summarizes pool
- Agent controller → LLM reasoning: requests decision
- LLM reasoning → LLM backends: prompts backend
- LLM backends → LLM provider: sends prompt
- LLM provider → LLM backends: returns completion
- Agent controller → LLM cache: checks and stores
- Agent controller → Decision validation: validates choice
- Agent controller → MCDM ranking: dispatches strategy
- Agent controller → Decision memory: records decision
- Agent controller → Selection result: returns ranking
- Experiment runner → Evaluation protocol: runs protocol
- Evaluation protocol → Agent controller: evaluates agent
- Evaluation protocol → Static baselines: compares methods
- Evaluation protocol → Trial storage: records trials
- Evaluation protocol → Evaluation metrics: computes measures
- Drift simulation → Evaluation protocol: provides drift sequence
- Analysis reports → Trial storage: reads trials
- Experiment runner → WS-DREAM loader: uses time-slice data