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.
33 lines
820 B
Python
33 lines
820 B
Python
"""
|
|
Helpers for naming agent nodes in functional tests.
|
|
"""
|
|
|
|
import re
|
|
import uuid
|
|
|
|
|
|
SAFE_NODE_ID_CHARS = re.compile(r"[^a-zA-Z0-9-_\.]")
|
|
|
|
|
|
def sanitize_node_id(base: str) -> str:
|
|
"""
|
|
Sanitize a node_id base string to include only characters allowed by Hanzo Agents.
|
|
"""
|
|
return SAFE_NODE_ID_CHARS.sub("-", base).strip("-") or "agent"
|
|
|
|
|
|
def unique_node_id(base: str, *, suffix: str | None = None) -> str:
|
|
"""
|
|
Generate a unique node ID for concurrent functional tests.
|
|
|
|
Args:
|
|
base: Readable prefix (e.g., "quick-start-agent")
|
|
suffix: Optional deterministic suffix. If omitted, a short UUID is appended.
|
|
"""
|
|
token = suffix or uuid.uuid4().hex[:8]
|
|
safe_base = sanitize_node_id(base)
|
|
return f"{safe_base}-{token}"
|
|
|
|
|
|
__all__ = ["sanitize_node_id", "unique_node_id"]
|