mirror of
https://github.com/hanzoai/agents.git
synced 2026-10-30 18:48:36 +00:00
Transforms hanzoai/agents from a marketplace config repo into a full agent orchestration platform by merging the AgentField infrastructure: - Go control plane (K8s-like agent orchestration, service mesh, DAG workflows) - Python SDK (FastAPI-based agent framework, LiteLLM, memory, DID/VC) - TypeScript SDK (@hanzo/agents - Vercel AI SDK, MCP, workflows) - Go SDK (idiomatic agent builder + client) - React 19 embedded dashboard (XyFlow DAGs, Recharts, Radix UI) - Docker/K8s/Helm deployment configs - Examples: hello world, deep research, RAG, simulation, benchmarks - Functional test suite across Python/Go/TypeScript All references rebranded: AgentField → Hanzo Agents - Module: github.com/hanzoai/agents/control-plane - Python: hanzo_agents - TypeScript: @hanzo/agents - Go: github.com/hanzoai/agents/sdk/go - Env vars: HANZO_AGENTS_* - Config: hanzo-agents.yaml Previous marketplace configs moved to config/ directory.
104 lines
5.4 KiB
SQL
104 lines
5.4 KiB
SQL
-- Migration: Add Performance Indexes for Workflow Executions
|
|
-- Description: Add missing indexes for frequently queried workflow execution fields
|
|
-- Created: 2025-01-21
|
|
|
|
-- =============================================================================
|
|
-- WORKFLOW_EXECUTIONS TABLE PERFORMANCE INDEXES
|
|
-- =============================================================================
|
|
|
|
-- Index on workflow_id for workflow-based queries
|
|
-- Optimizes: SELECT * FROM workflow_executions WHERE workflow_id = ?
|
|
CREATE INDEX IF NOT EXISTS idx_workflow_executions_workflow_id ON workflow_executions(workflow_id);
|
|
|
|
-- Index on execution_id for fast execution lookups (already unique, but explicit index helps)
|
|
-- Optimizes: SELECT * FROM workflow_executions WHERE execution_id = ?
|
|
CREATE INDEX IF NOT EXISTS idx_workflow_executions_execution_id ON workflow_executions(execution_id);
|
|
|
|
-- Index on parent_workflow_id for parent-child relationship queries
|
|
-- Optimizes: SELECT * FROM workflow_executions WHERE parent_workflow_id = ?
|
|
CREATE INDEX IF NOT EXISTS idx_workflow_executions_parent_workflow_id ON workflow_executions(parent_workflow_id);
|
|
|
|
-- Index on parent_execution_id for execution hierarchy queries
|
|
-- Optimizes: SELECT * FROM workflow_executions WHERE parent_execution_id = ?
|
|
CREATE INDEX IF NOT EXISTS idx_workflow_executions_parent_execution_id ON workflow_executions(parent_execution_id);
|
|
|
|
-- Index on root_workflow_id for root workflow queries
|
|
-- Optimizes: SELECT * FROM workflow_executions WHERE root_workflow_id = ?
|
|
CREATE INDEX IF NOT EXISTS idx_workflow_executions_root_workflow_id ON workflow_executions(root_workflow_id);
|
|
|
|
-- Index on status for status-based filtering
|
|
-- Optimizes: SELECT * FROM workflow_executions WHERE status = ?
|
|
CREATE INDEX IF NOT EXISTS idx_workflow_executions_status ON workflow_executions(status);
|
|
|
|
-- Index on agent_node_id for agent-specific queries
|
|
-- Optimizes: SELECT * FROM workflow_executions WHERE agent_node_id = ?
|
|
CREATE INDEX IF NOT EXISTS idx_workflow_executions_agent_node_id ON workflow_executions(agent_node_id);
|
|
|
|
-- Index on reasoner_id for reasoner-specific queries
|
|
-- Optimizes: SELECT * FROM workflow_executions WHERE reasoner_id = ?
|
|
CREATE INDEX IF NOT EXISTS idx_workflow_executions_reasoner_id ON workflow_executions(reasoner_id);
|
|
|
|
-- Composite index for workflow + status queries (common pattern)
|
|
-- Optimizes: SELECT * FROM workflow_executions WHERE workflow_id = ? AND status = ?
|
|
CREATE INDEX IF NOT EXISTS idx_workflow_executions_workflow_status ON workflow_executions(workflow_id, status);
|
|
|
|
-- Composite index for parent workflow + status queries
|
|
-- Optimizes: SELECT * FROM workflow_executions WHERE parent_workflow_id = ? AND status = ?
|
|
CREATE INDEX IF NOT EXISTS idx_workflow_executions_parent_workflow_status ON workflow_executions(parent_workflow_id, status);
|
|
|
|
-- Composite index for root workflow + status queries
|
|
-- Optimizes: SELECT * FROM workflow_executions WHERE root_workflow_id = ? AND status = ?
|
|
CREATE INDEX IF NOT EXISTS idx_workflow_executions_root_workflow_status ON workflow_executions(root_workflow_id, status);
|
|
|
|
-- Temporal index for time-based queries
|
|
-- Optimizes: SELECT * FROM workflow_executions WHERE started_at >= ? ORDER BY started_at
|
|
CREATE INDEX IF NOT EXISTS idx_workflow_executions_started_at ON workflow_executions(started_at);
|
|
|
|
-- Composite index for workflow + temporal queries
|
|
-- Optimizes: SELECT * FROM workflow_executions WHERE workflow_id = ? ORDER BY started_at
|
|
CREATE INDEX IF NOT EXISTS idx_workflow_executions_workflow_started_at ON workflow_executions(workflow_id, started_at);
|
|
|
|
-- =============================================================================
|
|
-- QUERY PATTERN OPTIMIZATION SUMMARY
|
|
-- =============================================================================
|
|
--
|
|
-- These indexes are designed to optimize the following common query patterns:
|
|
--
|
|
-- 1. Single execution lookups:
|
|
-- SELECT * FROM workflow_executions WHERE execution_id = ?
|
|
-- → Optimized by idx_workflow_executions_execution_id
|
|
--
|
|
-- 2. Workflow-based queries:
|
|
-- SELECT * FROM workflow_executions WHERE workflow_id = ?
|
|
-- → Optimized by idx_workflow_executions_workflow_id
|
|
--
|
|
-- 3. Parent-child relationship queries:
|
|
-- SELECT * FROM workflow_executions WHERE parent_workflow_id = ?
|
|
-- SELECT * FROM workflow_executions WHERE parent_execution_id = ?
|
|
-- → Optimized by respective parent indexes
|
|
--
|
|
-- 4. Root workflow queries:
|
|
-- SELECT * FROM workflow_executions WHERE root_workflow_id = ?
|
|
-- → Optimized by idx_workflow_executions_root_workflow_id
|
|
--
|
|
-- 5. Status filtering:
|
|
-- SELECT * FROM workflow_executions WHERE status = ?
|
|
-- → Optimized by idx_workflow_executions_status
|
|
--
|
|
-- 6. Agent/Reasoner specific queries:
|
|
-- SELECT * FROM workflow_executions WHERE agent_node_id = ?
|
|
-- SELECT * FROM workflow_executions WHERE reasoner_id = ?
|
|
-- → Optimized by respective indexes
|
|
--
|
|
-- 7. Combined workflow + status queries:
|
|
-- SELECT * FROM workflow_executions WHERE workflow_id = ? AND status = ?
|
|
-- → Optimized by idx_workflow_executions_workflow_status
|
|
--
|
|
-- 8. Temporal queries:
|
|
-- SELECT * FROM workflow_executions WHERE started_at >= ? ORDER BY started_at
|
|
-- → Optimized by idx_workflow_executions_started_at
|
|
--
|
|
-- These indexes significantly improve query performance for the workflow update
|
|
-- handler and related operations, especially for parent-child relationship
|
|
-- traversal and status-based filtering.
|