https://github.com/kdeps/kdeps
Straightforward LLM dependency orchestration for multi-agent workflows. Compose chat, code, and data into declarative pipelines in YAML. Export AI workflows as a single binary, ISO, Docker or Kubernetes pods. Use ollama, llmfile, or any cloud AI providers.
https://github.com/kdeps/kdeps
agent llms orchestration workflow yaml
Last synced: about 1 month ago
JSON representation
Straightforward LLM dependency orchestration for multi-agent workflows. Compose chat, code, and data into declarative pipelines in YAML. Export AI workflows as a single binary, ISO, Docker or Kubernetes pods. Use ollama, llmfile, or any cloud AI providers.
- Host: GitHub
- URL: https://github.com/kdeps/kdeps
- Owner: kdeps
- License: apache-2.0
- Created: 2024-08-01T01:46:41.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2026-05-09T07:12:41.000Z (about 1 month ago)
- Last Synced: 2026-05-09T07:36:11.600Z (about 1 month ago)
- Topics: agent, llms, orchestration, workflow, yaml
- Language: Go
- Homepage: https://kdeps.com
- Size: 77 MB
- Stars: 32
- Watchers: 1
- Forks: 4
- Open Issues: 13
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Security: SECURITY.md
- Notice: NOTICE
Awesome Lists containing this project
README
# kdeps
**Straightforward LLM dependency orchestration for multi-agent workflows.** Compose chat, code, and data into declarative pipelines in YAML. Export AI workflows as a single binary, ISO, Docker, or Kubernetes pods. Use Ollama, llamafile, or any cloud AI provider.
> **Highly experimental.** APIs, YAML schemas, and CLI flags can change without notice. Do not use in production. [Report issues or give feedback](https://github.com/kdeps/kdeps/issues).
## Why kdeps?
Chat AIs and their MCP extensions are tools you operate. kdeps is for building **deployable AI workflows** — pipelines that chain LLM calls with code execution, data lookups, and API requests, then export as a binary, Docker, ISO, or Kubernetes pod.
| | Chat AI + MCP | kdeps |
|---|---|---|
| **Deployed as** | A chat session | Binary, Docker, ISO, Kubernetes |
| **Logic lives in** | Prompts | YAML — versioned, reviewed, tested |
| **Orchestration** | Model-driven | Explicit dependency pipelines |
| **Ships to production** | No | Yes |
## Install
```bash
curl -LsSf https://raw.githubusercontent.com/kdeps/kdeps/main/install.sh | sh
```
## Quick start
```bash
kdeps new # scaffold a project
kdeps run workflow.yaml --dev # hot-reload, no Docker needed
```
A minimal agent that answers questions via an LLM:
```yaml
# resources/chat.yaml
apiVersion: kdeps.io/v1
kind: Resource
metadata:
actionId: chat
run:
chat:
prompt: "{{ get('message') }}"
apiResponse:
response: "{{ output('chat') }}"
```
Wire resources into pipelines — outputs flow between steps via `requires:`:
```yaml
metadata:
actionId: fetch
run:
scraper:
url: "{{ get('url') }}"
---
metadata:
actionId: summarize
requires: [fetch]
run:
chat:
prompt: "Summarize: {{ output('fetch').content }}"
apiResponse:
response: "{{ output('summarize') }}"
```
## Build and deploy
```bash
kdeps bundle build # Docker image
kdeps export k8s # Kubernetes manifests
kdeps bundle export iso # bootable edge ISO
kdeps bundle prepackage # self-contained binary per arch
```
## Global config
```bash
kdeps edit # opens ~/.kdeps/config.yaml
kdeps doctor # check system health (config, Ollama, Python, agents)
```
Config is validated on load. Warnings are printed to stderr for:
- Typos in API key / field names
- Backend set without a corresponding API key
- Invalid routing strategy values
- Malformed duration strings
- Agent profiles not matching any installed workflow
- Empty agent profiles
Warnings and errors use structured JSON logging (via `log/slog`). Set `KDEPS_LOG_FORMAT=json` for production JSON output. Log level defaults to WARN; use `--verbose` for INFO or `--debug` for DEBUG.
```yaml
llm:
backend: ollama # ollama, openai, anthropic, groq, ...
# openai_api_key: sk-...
# anthropic_api_key: sk-ant-...
defaults:
timezone: UTC
python_version: "3.12"
resource_defaults:
chat:
timeout: "60s"
context_length: 4096
http:
timeout: "30s"
```
**Security** - set in `workflow.yaml` under `settings.apiServer`: `auth.token` requires a Bearer or `X-Api-Key` header on every request; `rateLimit` enforces per-IP throttling; `maxBodyBytes` caps request body size. Enable TLS via `settings.certFile` / `settings.keyFile`. See [Security](https://kdeps.com/configuration/advanced#security).
---
[Documentation](https://kdeps.com) | [Registry](https://kdeps.io) | Apache 2.0