- Bootable System Installation & Auto-Configuration:
- Goal: Create a slimmed-down, bootable Debian ISO and enhance
bootstrap.shto auto-detect hardware resources. - Tasks:
- Update
bootstrap.shto profile system resources (CPU cores, RAM). - Dynamically configure
--role(controller, worker, all) and model settings based on available hardware (e.g., fallback to external models on 4GB machines). - Create a
live-buildconfiguration to generate a custom, headless Debian bootable ISO that includes the project source and dependencies.
- Update
- Goal: Create a slimmed-down, bootable Debian ISO and enhance
- Migrate to Hybrid Architecture (Phase 1):
- Goal: Allow the application to choose between running tools in-process (Monolith) or via the Tool Server (Distributed).
- Reference:
docs/TODO_Hybrid_Architecture.md
- Implement Active Vault Workflow (Phase 1):
- Goal: Support 3D spatial properties in nodes and implement
CanvasConverter. - Reference:
docs/OBSIDIAN_WORKFLOW_DESIGN.md
- Goal: Support 3D spatial properties in nodes and implement
- Train and Configure LLMRouter:
- Goal: Replace the heuristic PoC logic in
LLMRouterNodewith a fully trainedLLMRouterinstance. - Tasks:
- Generate a training dataset of queries and optimal models using
LLMRouter's data generation tools. - Train the router to map queries to our specific local experts.
- Update
LLMRouterNodeto load the trained config/model.
- Generate a training dataset of queries and optimal models using
- Goal: Replace the heuristic PoC logic in
- Implement Technician Agent:
- Create a 3-phase agent (Plan, Execute, Reflect) in
pipecatapp/technician_agent.py. - Update
SwarmToolto support spawning technician agents.
- Create a 3-phase agent (Plan, Execute, Reflect) in
- Swarm Orchestration (Map-Reduce):
- Goal: Implement the "Swarm Migration" pattern where a manager agent splits a large task into chunks and dispatches them to multiple Technician Agents.
- Tasks:
- Create a
ManagerAgentor updateTechnicianAgentto have a "Manager Mode". - Implement the "Map" phase: Analysis of the task and generation of sub-task definitions.
- Implement the "Dispatch" phase: Using
SwarmToolto spawn multipletechnicianagents. - Implement the "Reduce" phase: Aggregating results from the spawned workers.
- Create a
- Durable Execution Integration:
- Goal: Ensure
TechnicianAgentcan resume execution after a crash or restart. - Tasks:
- Update
TechnicianAgentto usepipecatapp.durable_execution.DurableExecutionEngine. - Decorate the
execute_stepmethod with@durable_step. - Ensure state (messages list, current plan) is checkpointed.
- Update
- Goal: Ensure
- Skill Library (Knowledge Persistence):
- Goal: Allow agents to save successful tool usage patterns for future use.
- Tasks:
- Create a simple file-based or database-backed Skill Library service (or use the existing Memory service).
- Add a
save_skilltool to the agent's toolkit. - Add a
search_skillstool to the agent's toolkit. - Update the
TechnicianAgentreflection phase to optionally suggest saving a new skill if the task was novel and successful.
- Implement Automated Testing for
prompt_engineering:- Create a new test suite (e.g.,
tests/unit/test_prompt_engineering.py). - Add unit tests for the core logic in
run_campaign.py,visualize_archive.py, andpromote_agent.py. - Mock the
subprocesscalls toevolve.pyto test the campaign loop without running the full, slow evolution process. - Create a small, temporary mock archive to test the analysis, visualization, and promotion scripts against a known, controlled dataset.
- Create a new test suite (e.g.,
- Improve Parent Selection Algorithm:
- Research alternative selection strategies from evolutionary computation (e.g., tournament selection, novelty search).
- Add a new command-line argument to
evolve.pyto allow the user to choose the selection strategy (e.g.,--selection-method tournament). - Implement the new selection logic in the
select_parent_from_archivefunction.
- Web-Based UI for Campaign Analysis:
- Create a new script
archive_server.pyusing a lightweight web framework like Flask or FastAPI. - The server should have an endpoint that reads the entire
archive/directory and constructs a JSON representation of the evolutionary tree. - Create a simple, single-page HTML/JavaScript frontend that fetches this JSON and uses a library (like D3.js or vis.js) to render an interactive evolutionary tree.
- The UI should allow clicking on a node to display the agent's full details (code, rationale, fitness, parent) in a side panel.
- Create a new script
- Build a Visual Workflow Editor:
- Integrate a library like
litegraph.jsor extend the existing Cytoscape UI to allow drag-and-drop creation and modification of workflows. - Create a backend API endpoint (
/api/workflows/save) to receive the new graph definition from the UI and save it as a YAML file.
- Integrate a library like
- Convert all configuration files to templates: Any file that contains a variable should be a Jinja2 template (
.j2). - Establish a clear variable hierarchy: Use
group_vars/all.yamlfor system-wide defaults and considerhost_vars/<hostname>.yamlfor machine-specific overrides.
- Add a flag to
bootstrap.sh: Add a--run-localor similar flag to the bootstrap script to allow switching between a Docker-based deployment and the oldraw_execmethod for debugging. - Create a
Dockerfilefor thepipecatappapplication. - Build and push the image to a registry as part of the development process.
- Simplify the Nomad job to use the
dockerdriver with the pre-built image.
- Implement Ansible Molecule tests: Create a Molecule test scenario for at least one critical role (e.g.,
nomadordocker). - Expand end-to-end tests: Add a new test case to
e2e-tests.yamlthat verifies a core function of the agent. - Increase unit test coverage: Write unit tests for the remaining Python tools in the
tools/directory. (Completed: added tests forarchivist_tool.pyandswarm_tool.py)
- Replace ASCII art: Create a more dynamic and expressive animated character or graphic.
- Add a "Clear Terminal" button: Provide a simple way for the user to clear the log history in the UI.
- Improve status display: Format the status display into a more readable table or list.
- Frontend for Real-Time Steering (UI Integration):
- Goal: Expose the
PersonalityToolcapabilities in the web interface. - Tasks:
- Add a "Personality" or "Brain" tab to
cluster.htmlormonitor.html. - Create sliders or controls to adjust specific axis vectors (e.g., "Assistant <-> Creative").
- Connect the frontend controls to the
llama.cpp/control-vectorsAPI (possibly proxied throughweb_server.py).
- Add a "Personality" or "Brain" tab to
- Goal: Expose the
- Implement Graceful LLM Failover: Enhance the
llama-expert.nomadjob to include a final, lightweight fallback model. - Re-evaluate Consul Connect Service Mesh: Create a new feature branch to attempt to re-enable
sidecar_servicein the Nomad job files and document the process. - Add Pre-flight System Health Checks: Create a new Ansible role to perform non-destructive checks at the beginning of
playbook.yaml. - Investigate Advanced Power Management: Research and prototype a more advanced version that uses Wake-on-LAN.
- Expand the Model Collection: Systematically test and add the remaining LiquidAI nano models to
group_vars/models.yaml. - Security Hardening:
- Remove passwordless sudo: Modify the sudoers file configuration to require a password for the
target_user. - Run services as non-root users: Audit all services and ensure they are running as dedicated, non-privileged users where possible.
- Remove passwordless sudo: Modify the sudoers file configuration to require a password for the
- Robust Remote Node Recovery: Add mechanism to recover remote nodes even if network stack is completely broken (possibly via serial console or IPMI automation).
- Monitoring and Observability: Deploy a monitoring stack like Prometheus and Grafana.
- Add a
wait_forto thehome_assistantrole to ensure themqttservice is running before starting thehome-assistantservice. - Create a new integration test file for home assistant.
- Add the new test to
e2e-tests.yaml. - Modify
start_services.shto include the home assistant job. - Investigate https://github.com/microsoft/agent-lightning as a possible agent improvement method.
- Investigate RPC Provider Monitoring: Research how to expose or scrape metrics from
llamacpp-rpcproviders to aggregate backend performance data. - Evaluate Ouro/LoopLM Support in llama.cpp: In 3 months, check if the upstream
llama.cppproject has added support for the Ouro LoopLM architecture. If so, create a plan to integrate it as a native model option.
This section tracks identified placeholder files, corrupted binaries, and code that needs to be fixed or removed.
-
Remove or Implement Empty Handler:
ansible/roles/bootstrap_agent/handlers/main.yamlis currently empty.
-
Reconcile Stale Artifacts:
pipecatapp/app.pycontains code and TODOs (e.g., vision model failover). Determine if these changes should be merged or if the artifact should be regenerated.
-
Vision Model Failover: Implement failover or selection logic for vision models (see
pipecatapp/app.py). -
Refactor Vision Role: The
visionrole is currently minimal (only installslibgl1) and does not deploy Frigate as implied by thefrigate_portvariable. It needs to be refactored to actually deploy the service. -
Review Hardcoded Network References:
- Goal: Align Ansible roles with the "Provisioning Underlay" vs. "Cluster Overlay" architecture.
- Tasks:
- Audit
ansible/roles/power_manager/tasks/main.yamlfor hardcoded10.0.0.0/24subnet references. - Ensure that firewall rules (UFW/iptables) correctly handle both the provisioning underlay and the Tailscale overlay.
- Verify that
group_vars/all.yamlvariables are consistently used instead of hardcoded IPs.
- Audit
- Read and evaluate VLLM project findings
- Implement LLMRouter Integration (Proof of Concept)
- Fix Memory Service networking (Port 8000 conflict).
- Implement real LLM calls in
worker_agent.py(replace mock). - Connect
PlannerToolto real LLM for robust plan generation. - Refactor
pipecatapprole to use Docker image for memory service in production. - Frontier Agent Roadmap Phase 1-4.
- Add
frontend_verification_instructionsfor UI changes. - Implement SEAL-Inspired Self-Adaptation Loop.
- Phase 2: Implement the OpenAI-Compatible MoE Gateway.
- Harden the Core System: Phase 3 Documentation and Cleanup.
- Harden the Core System: Phase 4 Workflow Engine (Steps 1-3).
- Refactor for Strict Idempotency in Ansible.
- Maintenance & Clean Up (Empty Handler, Corrupted Files, etc.).
- Real-time Steering for llama.cpp:
- Implemented
POST /control-vectorsendpoint inllama.cpp. - Added
PersonalityToolfor dynamic steering. - Included automation scripts for vector generation.
- Implemented
- Optimize ExperimentTool Sandbox Creation:
- Replaced
shutil.copytreewithtarsnapshotting to reduce syscall overhead.
- Replaced
- Optimize ProjectMapperTool Scanning:
- Implemented
git ls-filesstrategy for faster file listing in git repositories.
- Implemented
- Review Codebase for I/O Inefficiencies:
- Goal: Identify and optimize other areas with heavy syscall usage (e.g., logging, data processing).
- Strategy: Look for repeated file opens/closes in loops, inefficient directory traversals, and opportunities to batch I/O or use
tar/sqlitestrategies.
- Audit and remove hardcoded secrets:
- Audit frontend code (
pipecatapp/static/js), workflows (workflows/), and tools (pipecatapp/tools/) for hardcoded secrets, API keys, or tokens. - Remove any found secrets and replace them with secure environment variable loading.
- Audit frontend code (
- Audit unauthenticated API endpoints:
- Review
pipecatapp/web_server.pyand other API definitions to ensure sensitive data endpoints are authenticated. - Specifically check endpoints returning user data or configuration.
- Review
- Audit WebSocket security:
- Verify that WebSocket connections enforce strict Origin checks to prevent Cross-Site WebSocket Hijacking (CSWSH).
- Consider implementing authentication for WebSocket connections.
- Audit write access controls:
- Ensure that all state-changing endpoints (POST, PUT, PATCH) require authentication and authorization.
- Verify that unauthenticated users cannot modify workflows or agent state.
- Audit rate limiting configuration:
- Review rate limiting settings in
pipecatapp/rate_limiter.pyandpipecatapp/web_server.py. - Ensure critical endpoints have stricter limits to prevent abuse.
- Review rate limiting settings in
- Audit data storage security:
- Check how sensitive data (e.g., in
pipecatapp/memory.pyor database integrations) is stored. - Ensure encryption at rest is considered or implemented for sensitive fields.
- Check how sensitive data (e.g., in