HN 표시: Orloj – 코드형 에이전트 인프라(YAML 및 GitOps)

hackernews | | 📦 오픈소스
#ai 인프라 #anthropic #gitops #llama #openai #yaml #에이전트 #오케스트레이션
원문 출처: hackernews · Genesis Park에서 요약 및 분석

요약

Orloj는 600년 역사의 천문학적 시계에서 이름을 따온 멀티에이전트 AI 시스템을 위한 오케스트레이션 런타임으로, 에이전트와 도구, 정책을 YAML으로 선언하여 코드처럼 관리하는 '인프라스트럭처 코드화(IaC)'를 지원합니다. 현재의 AI 배포 환경이 겪는 거버넌스와 관찰 가능성 부족 문제를 해결하기 위해 DAG 기반 파이프라인과 모델 라우팅, 컨테이너 및 WASM 샌드박스를 통한 도구 격리, 실행 계층에서 강제되는 보안 정책 등 운영상의 엄격함을 제공합니다. 또한 임대 기반 작업 소유권과 재시도 메커니즘을 통해 안정성을 높였으며, 분산 작업자와 Postgres 지속성을 통해 확장이 가능한 아키텍처로 설계되었습니다.

본문

Named after the Prague Orloj, an astronomical clock that has coordinated complex mechanisms for over 600 years. An orchestration runtime for multi-agent AI systems. Declare your agents, tools, and policies as YAML. Orloj schedules, executes, routes, and governs them so you can run multi-agent systems in production with the same operational rigor you expect from infrastructure. Status: Orloj is under active development. APIs and resource schemas may change between minor versions before 1.0. Running AI agents in production today looks a lot like running containers before container orchestration: ad-hoc scripts, no governance, no observability, and no standard way to manage an agent fleet. Orloj provides: - Agents-as-Code -- declare agents, their models, tools, and constraints in version-controlled YAML manifests. - DAG-based orchestration -- pipeline, hierarchical, and swarm-loop topologies with fan-out/fan-in support. - Model routing -- bind agents to OpenAI, Anthropic, Azure OpenAI, Ollama, and other endpoints. Switch providers without changing agent definitions. - Tool isolation -- execute tools in containers, WASM sandboxes, or process isolation with configurable timeout and retry. - Governance built in -- policies, roles, and tool permissions enforced at the execution layer. Unauthorized tool calls fail closed. - Production reliability -- lease-based task ownership, idempotent replay, capped exponential retry with jitter, and dead-letter handling. - Web console -- built-in UI with topology views, task inspection, and live event streaming. Get started in 5 minutes — scaffold with orlojctl init , add your API key, apply manifests, and run a pipeline with orlojctl run . Install orlojctl (CLI) via Homebrew: brew tap OrlojHQ/orloj brew install orlojctl Formula versions follow Orloj releases. Or install all binaries (orlojd, orlojworker, orlojctl) with the install script: curl -sSfL https://raw.githubusercontent.com/OrlojHQ/orloj/main/scripts/install.sh | sh You can also download binaries manually from GitHub Releases. Then run: # Start the server with an embedded worker ./orlojd --storage-backend=memory --task-execution-mode=sequential --embedded-worker Open http://127.0.0.1:8080/ to explore the web console, then apply a starter blueprint. The example manifests live in this repo -- clone it or browse them on GitHub: # Apply a starter blueprint (pipeline: planner -> research -> writer) ./orlojctl apply -f examples/blueprints/pipeline/ --run # Check the result ./orlojctl get task bp-pipeline-task Or build from source (requires Go 1.25+): go build -o orlojd ./cmd/orlojd go build -o orlojctl ./cmd/orlojctl When you are ready to scale, switch to message-driven mode with distributed workers and Postgres persistence. See the Quickstart guide for details. Full walkthrough: 5-minute tutorial. ┌─────────────────────────────────────────────────────┐ │ Server (orlojd) │ │ │ │ ┌──────────────┐ ┌────────────────┐ │ │ │ API Server │──►│ Resource Store │ │ │ │ (REST) │ │ mem / postgres │ │ │ └──────┬───────┘ └────────────────┘ │ │ │ │ │ ▼ │ │ ┌──────────────┐ ┌────────────────┐ │ │ │ Services │──►│ Task Scheduler │ │ │ └──────────────┘ └───────┬────────┘ │ └─────────────────────────────┼───────────────────────┘ │ ▼ ┌─────────────────────────────────────────────────────┐ │ Workers (orlojworker) │ │ │ │ ┌──────────────┐ ┌───────────────┐ │ │ │ Task Worker │──►│ Model Gateway │ │ │ │ │ └───────────────┘ │ │ │ │──►┌───────────────┐ │ │ │ │ │ Tool Runtime │ │ │ │ │ └───────────────┘ │ │ │ ◄──────┼───┌───────────────┐ │ │ │ │──►│ Message Bus │ │ │ └──────────────┘ └───────────────┘ │ └─────────────────────────────────────────────────────┘ Server (orlojd ) -- API server, resource store (in-memory or Postgres), background services, and task scheduler. Workers (orlojworker ) -- claim tasks, execute agent graphs, route model requests, run tools, and handle inter-agent messaging. Governance -- AgentPolicy, AgentRole, and ToolPermission resources enforced inline during every tool call and model interaction. Persistence is backed by Postgres (or in-memory for local dev). Message-driven mode uses NATS JetStream for durable agent-to-agent messaging. The v1 REST API is described in openapi/openapi.yaml (OpenAPI 3.1, split schemas under openapi/schemas/). CI runs npx @redocly/cli lint openapi/openapi.yaml . To regenerate the root document from openapi/build_openapi.py, run python3 openapi/build_openapi.py from the repo root. Orloj manages 15 resource types, all defined as declarative YAML with apiVersion , kind , metadata , spec , and status fields: Core | Resource | Purpose | |---|---| | Agent | Unit of work backed by a language model | | AgentSystem | Directed graph composing multiple agents | | ModelEndpoint | Connection to a model provider | | Tool | External capability with isolation and retry | | Secret | Credential storage | | Memory | Vector-backed retrieval for agents | | McpServer | MCP server connection that discovers/syncs MCP to

Genesis Park 편집팀이 AI를 활용하여 작성한 분석입니다. 원문은 출처 링크를 통해 확인할 수 있습니다.

공유

관련 저널 읽기

전체 보기 →