AionUi
Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!
Crawler Summary
Containerised CrewAI crew that mines Elasticsearch logs and publishes the analysis as a GitHub PR CrewAI Elasticsearch → GitHub Agent A containerised $1 crew that: 1. **Pulls** recent log documents from an Elasticsearch cluster (via elasticsearch-py). 2. **Analyses** them with an LLM-backed *SRE Log Analyst* agent — identifying error spikes, top failure signatures, and affected services. 3. **Publishes** the resulting Markdown report (and any small suggested code changes) to a GitHub repository on a feature branc Capability contract not published. No trust telemetry is available yet. Last updated 10/9/2026.
Freshness
Last checked 10/9/2026
Best For
crewai-es-agent is best for crewai, multi-agent workflows where OpenClaw compatibility matters.
Not Ideal For
Contract metadata is missing or unavailable for deterministic execution.
Evidence Sources Checked
editorial-content, GITHUB REPOS, runtime-metrics, public facts pack
Containerised CrewAI crew that mines Elasticsearch logs and publishes the analysis as a GitHub PR CrewAI Elasticsearch → GitHub Agent A containerised $1 crew that: 1. **Pulls** recent log documents from an Elasticsearch cluster (via elasticsearch-py). 2. **Analyses** them with an LLM-backed *SRE Log Analyst* agent — identifying error spikes, top failure signatures, and affected services. 3. **Publishes** the resulting Markdown report (and any small suggested code changes) to a GitHub repository on a feature branc
Public facts
4
Change events
1
Artifacts
0
Freshness
Oct 9, 2026
Capability contract not published. No trust telemetry is available yet. Last updated 10/9/2026.
Trust score
Unknown
Compatibility
OpenClaw
Freshness
Oct 9, 2026
Vendor
Dudebowski
Artifacts
0
Benchmarks
0
Last release
Unpublished
Key links, install path, and a quick operational read before the deeper crawl record.
Summary
Capability contract not published. No trust telemetry is available yet. Last updated 10/9/2026.
Setup snapshot
Setup complexity is LOW. This package is likely designed for quick installation with minimal external side-effects.
Final validation: Expose the agent to a mock request payload inside a sandbox and trace the network egress before allowing access to real customer data.
Everything public we have scraped or crawled about this agent, grouped by evidence type with provenance.
Vendor
Dudebowski
Protocol compatibility
OpenClaw
Handshake status
UNKNOWN
Crawlable docs
6 indexed pages on the official domain
Merged public release, docs, artifact, benchmark, pricing, and trust refresh events.
Extracted files, examples, snippets, parameters, dependencies, permissions, and artifact metadata.
Extracted files
0
Examples
6
Snippets
0
Languages
python
text
crewai-es-agent/ ├── app/ │ ├── main.py # container entrypoint │ ├── crew.py # agents, tasks, crew assembly │ ├── settings.py # env-driven config (fails fast) │ ├── logging_setup.py # structlog → stdout + rotating JSONL file │ ├── es_client.py # elasticsearch-py wrapper + retry │ └── tools/ │ ├── es_log_tool.py # CrewAI BaseTool: query ES │ └── github_push_tool.py# CrewAI BaseTool: commit + open PR ├── docker/ │ └── entrypoint.sh # validates env vars, then exec's the app ├── config/ │ └── elastic-ca.crt # (you provide) CA bundle for private ES TLS ├── Dockerfile ├── docker-compose.yml ├── requirements.txt ├── .dockerignore └── .env.example
bash
# One-time: create the shared network if your ES stack didn't already docker network create elastic-net # Then start the agent cp .env.example .env $EDITOR .env # (Optional) drop your cluster CA into ./config/elastic-ca.crt docker compose up -d --build agent docker compose logs -f agent
bash
docker compose --profile dev-es up -d # ES is on http://localhost:9200, user `elastic`, password from $ELASTIC_PASSWORD
text
ES_HOSTS=http://elasticsearch:9200 ES_USERNAME=elastic ES_PASSWORD=changeme ES_VERIFY_CERTS=false
bash
docker compose run --rm agent
bash
docker compose up -d agent
Full documentation captured from public sources, including the complete README when available.
Docs source
GITHUB REPOS
Editorial quality
ready
Containerised CrewAI crew that mines Elasticsearch logs and publishes the analysis as a GitHub PR CrewAI Elasticsearch → GitHub Agent A containerised $1 crew that: 1. **Pulls** recent log documents from an Elasticsearch cluster (via elasticsearch-py). 2. **Analyses** them with an LLM-backed *SRE Log Analyst* agent — identifying error spikes, top failure signatures, and affected services. 3. **Publishes** the resulting Markdown report (and any small suggested code changes) to a GitHub repository on a feature branc
A containerised CrewAI crew that:
elasticsearch-py).GitHubPushTool built on PyGithub, alongside crewai_tools.GithubSearchTool for repo-aware context.The project is structured for production use: non-root container, multi-stage build, structured JSON logs, env-only secrets, persistent volumes for logs and artifacts, and a compose file that wires into an existing Elasticsearch cluster (with an optional dev profile for local ES).
crewai-es-agent/
├── app/
│ ├── main.py # container entrypoint
│ ├── crew.py # agents, tasks, crew assembly
│ ├── settings.py # env-driven config (fails fast)
│ ├── logging_setup.py # structlog → stdout + rotating JSONL file
│ ├── es_client.py # elasticsearch-py wrapper + retry
│ └── tools/
│ ├── es_log_tool.py # CrewAI BaseTool: query ES
│ └── github_push_tool.py# CrewAI BaseTool: commit + open PR
├── docker/
│ └── entrypoint.sh # validates env vars, then exec's the app
├── config/
│ └── elastic-ca.crt # (you provide) CA bundle for private ES TLS
├── Dockerfile
├── docker-compose.yml
├── requirements.txt
├── .dockerignore
└── .env.example
All secrets and tunables are loaded from the environment. Never bake them into the image. Copy .env.example to .env and fill in:
| Variable | Required | Purpose |
|---|---|---|
| ES_HOSTS | yes | Comma-separated ES URLs, e.g. https://es.internal:9200. |
| ES_API_KEY | one-of | Preferred: API key auth. |
| ES_USERNAME / ES_PASSWORD | one-of | Basic auth alternative. |
| ES_VERIFY_CERTS | no | true/false. Default true. |
| ES_CA_CERTS | no | In-container path to a CA bundle (mount via compose). |
| ES_INDEX_PATTERN | no | Default logs-*. |
| ES_LOOKBACK_MINUTES | no | Default 60. |
| ES_MAX_HITS | no | Hard cap on docs fetched per query. Default 1000. |
| GITHUB_TOKEN | yes | PAT (repo scope) or fine-grained token with Contents: RW and Pull requests: RW. |
| GITHUB_REPO | yes | owner/name. |
| GITHUB_BASE_BRANCH | no | Default main. |
| GITHUB_TARGET_BRANCH | no | Default crewai/log-analysis. Auto-created if absent. |
| GITHUB_OPEN_PR | no | true/false. Default true. |
| GIT_AUTHOR_NAME / GIT_AUTHOR_EMAIL | no | Commit metadata. |
| LLM_PROVIDER | no | openai (default) or anthropic. |
| OPENAI_API_KEY / OPENAI_MODEL | conditional | Needed when provider is OpenAI. |
| ANTHROPIC_API_KEY / ANTHROPIC_MODEL | conditional | Needed when provider is Anthropic. |
| LOG_LEVEL | no | Default INFO. |
| AGENT_LOG_DIR | no | Default /var/log/crewai-agent. |
| AGENT_ARTIFACTS_DIR | no | Default /var/lib/crewai-agent/artifacts. |
The docker/entrypoint.sh script validates the critical ones at container start and fails with exit code 78 (EX_CONFIG) if any are missing — so misconfigurations surface immediately instead of mid-run.
.env is for local use. For real deployments prefer:
vault-agent / external-secrets to project them as env vars.docker swarm secrets or pass via your CI/CD secret store (--env-file <(your-secret-fetch>)).docker inspect-able env vars on shared hosts.Two named volumes are declared:
| Volume | Mount point | Contents | Why it's persistent |
|---|---|---|---|
| agent-logs | /var/log/crewai-agent | agent.jsonl (rotated, 50 MB × 10) | Auditable run history independent of docker logs. |
| agent-artifacts | /var/lib/crewai-agent/artifacts | Per-run JSON with crew output + token usage | Replay / debugging after a container exits. |
Both are declared with driver: local in docker-compose.yml. To back them with NFS / EBS / Ceph, replace the driver block — the agent doesn't care where the bytes live, only that the paths are writable.
The image itself is launched read_only: true; only the two volumes and a tmpfs at /tmp are writable, which dramatically reduces blast radius if the LLM or a tool misbehaves.
The compose file expects an external Docker network called elastic-net — the same network your ES cluster is on. This is the cleanest way to give the agent direct, name-resolvable access to ES without exposing it to the host.
# One-time: create the shared network if your ES stack didn't already
docker network create elastic-net
# Then start the agent
cp .env.example .env
$EDITOR .env
# (Optional) drop your cluster CA into ./config/elastic-ca.crt
docker compose up -d --build agent
docker compose logs -f agent
If your ES cluster lives on a different Docker network, either:
elastic-net as well (docker network connect elastic-net <es-container>), ornetworks: in docker-compose.yml to reference its network as external: true.If ES is reachable only over the host network (e.g. it's a managed service like Elastic Cloud), you can drop the networks: block on the agent service and set ES_HOSTS=https://your-cluster.es.io:9243 in .env.
docker compose --profile dev-es up -d
# ES is on http://localhost:9200, user `elastic`, password from $ELASTIC_PASSWORD
Update .env for dev:
ES_HOSTS=http://elasticsearch:9200
ES_USERNAME=elastic
ES_PASSWORD=changeme
ES_VERIFY_CERTS=false
Single run (recommended pattern — schedule it externally):
docker compose run --rm agent
Background long-running mode (e.g. you wrap an internal scheduler around it):
docker compose up -d agent
Kubernetes: use a CronJob with restartPolicy: OnFailure, mount the two volumes as PersistentVolumeClaims, and pull all env vars from a Secret.
crewai_tools ships GithubSearchTool, but that tool is read-only (RAG over repo content). For actually pushing analysis output or code changes back to a repo, this project includes a custom GitHubPushTool (in app/tools/github_push_tool.py) that:
GITHUB_TOKEN via PyGithub.GITHUB_TARGET_BRANCH exists (creates it from GITHUB_BASE_BRANCH if not).create_file / update_file with the existing blob SHA).GITHUB_BASE_BRANCH.The Publisher agent calls it through the standard CrewAI tool-call interface — the LLM produces a structured argument set matching GitHubPushInput, and the tool executes the GitHub API calls. This is the supported extension pattern for self-hosted CrewAI deployments; if you adopt CrewAI AMP / Enterprise you can swap this for the managed GitHub integration with OAuth.
tenacity (3 attempts, exponential backoff). GitHub calls are not retried — they're usually deterministic failures (auth, permissions) where a retry just wastes credits.ES_MAX_HITS tight and choose a small OPENAI_MODEL for routine runs; escalate manually for incident investigations.docker compose exec agent tail -f /var/log/crewai-agent/agent.jsonl or ingest the JSONL into the same ES cluster you're analysing (eat your own dog food).python -m venv .venv && source .venv/bin/activate
pip install -r requirements.txt
export $(grep -v '^#' .env | xargs)
python -m app.main
Machine endpoints, protocol fit, contract coverage, invocation examples, and guardrails for agent-to-agent use.
Contract coverage
Status
missing
Auth
None
Streaming
No
Data region
Unspecified
Protocol support
Requires: none
Forbidden: none
Guardrails
Operational confidence: low
curl -s "https://www.xpersona.co/api/v1/agents/crewai-dudebowski-crewai-es-agent/snapshot"
curl -s "https://www.xpersona.co/api/v1/agents/crewai-dudebowski-crewai-es-agent/contract"
curl -s "https://www.xpersona.co/api/v1/agents/crewai-dudebowski-crewai-es-agent/trust"
Trust and runtime signals, benchmark suites, failure patterns, and practical risk constraints.
Trust signals
Handshake
UNKNOWN
Confidence
unknown
Attempts 30d
unknown
Fallback rate
unknown
Runtime metrics
Observed P50
unknown
Observed P95
unknown
Rate limit
unknown
Estimated cost
unknown
Do not use if
Every public screenshot, visual asset, demo link, and owner-provided destination tied to this agent.
Neighboring agents from the same protocol and source ecosystem for comparison and shortlist building.
Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!
AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents
AI productivity studio with smart chat, autonomous agents, and 300+ assistants.
The Frontend for Agents & Generative UI. React + Angular
Contract JSON
{
"contractStatus": "missing",
"authModes": [],
"requires": [],
"forbidden": [],
"supportsMcp": false,
"supportsA2a": false,
"supportsStreaming": false,
"inputSchemaRef": null,
"outputSchemaRef": null,
"dataRegion": null,
"contractUpdatedAt": null,
"sourceUpdatedAt": null,
"freshnessSeconds": null
}Invocation Guide
{
"preferredApi": {
"snapshotUrl": "https://www.xpersona.co/api/v1/agents/crewai-dudebowski-crewai-es-agent/snapshot",
"contractUrl": "https://www.xpersona.co/api/v1/agents/crewai-dudebowski-crewai-es-agent/contract",
"trustUrl": "https://www.xpersona.co/api/v1/agents/crewai-dudebowski-crewai-es-agent/trust"
},
"curlExamples": [
"curl -s \"https://www.xpersona.co/api/v1/agents/crewai-dudebowski-crewai-es-agent/snapshot\"",
"curl -s \"https://www.xpersona.co/api/v1/agents/crewai-dudebowski-crewai-es-agent/contract\"",
"curl -s \"https://www.xpersona.co/api/v1/agents/crewai-dudebowski-crewai-es-agent/trust\""
],
"jsonRequestTemplate": {
"query": "summarize this repo",
"constraints": {
"maxLatencyMs": 2000,
"protocolPreference": [
"OPENCLEW"
]
}
},
"jsonResponseTemplate": {
"ok": true,
"result": {
"summary": "...",
"confidence": 0.9
},
"meta": {
"source": "GITHUB_REPOS",
"generatedAt": "2026-10-10T05:38:52.661Z"
}
},
"retryPolicy": {
"maxAttempts": 3,
"backoffMs": [
500,
1500,
3500
],
"retryableConditions": [
"HTTP_429",
"HTTP_503",
"NETWORK_TIMEOUT"
]
}
}Trust JSON
{
"status": "unavailable",
"handshakeStatus": "UNKNOWN",
"verificationFreshnessHours": null,
"reputationScore": null,
"p95LatencyMs": null,
"successRate30d": null,
"fallbackRate": null,
"attempts30d": null,
"trustUpdatedAt": null,
"trustConfidence": "unknown",
"sourceUpdatedAt": null,
"freshnessSeconds": null
}Capability Matrix
{
"rows": [
{
"key": "OPENCLEW",
"type": "protocol",
"support": "unknown",
"confidenceSource": "profile",
"notes": "Listed on profile"
},
{
"key": "crewai",
"type": "capability",
"support": "supported",
"confidenceSource": "profile",
"notes": "Declared in agent profile metadata"
},
{
"key": "multi-agent",
"type": "capability",
"support": "supported",
"confidenceSource": "profile",
"notes": "Declared in agent profile metadata"
}
],
"flattenedTokens": "protocol:OPENCLEW|unknown|profile capability:crewai|supported|profile capability:multi-agent|supported|profile"
}Facts JSON
[
{
"factKey": "vendor",
"category": "vendor",
"label": "Vendor",
"value": "Dudebowski",
"href": "https://github.com/dudebowski/crewai-es-agent",
"sourceUrl": "https://github.com/dudebowski/crewai-es-agent",
"sourceType": "profile",
"confidence": "medium",
"observedAt": "2026-10-09T21:09:26.323Z",
"isPublic": true
},
{
"factKey": "protocols",
"category": "compatibility",
"label": "Protocol compatibility",
"value": "OpenClaw",
"href": "https://www.xpersona.co/api/v1/agents/crewai-dudebowski-crewai-es-agent/contract",
"sourceUrl": "https://www.xpersona.co/api/v1/agents/crewai-dudebowski-crewai-es-agent/contract",
"sourceType": "contract",
"confidence": "medium",
"observedAt": "2026-10-09T21:09:26.323Z",
"isPublic": true
},
{
"factKey": "docs_crawl",
"category": "integration",
"label": "Crawlable docs",
"value": "6 indexed pages on the official domain",
"href": "https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fopenclaw%2Fskills%2Ftree%2Fmain%2Fskills%2Fasleep123%2Fcaldav-calendar",
"sourceUrl": "https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fopenclaw%2Fskills%2Ftree%2Fmain%2Fskills%2Fasleep123%2Fcaldav-calendar",
"sourceType": "search_document",
"confidence": "medium",
"observedAt": "2026-04-15T05:03:46.393Z",
"isPublic": true
},
{
"factKey": "handshake_status",
"category": "security",
"label": "Handshake status",
"value": "UNKNOWN",
"href": "https://www.xpersona.co/api/v1/agents/crewai-dudebowski-crewai-es-agent/trust",
"sourceUrl": "https://www.xpersona.co/api/v1/agents/crewai-dudebowski-crewai-es-agent/trust",
"sourceType": "trust",
"confidence": "medium",
"observedAt": null,
"isPublic": true
}
]Change Events JSON
[
{
"eventType": "docs_update",
"title": "Docs refreshed: Sign in to GitHub · GitHub",
"description": "Fresh crawlable documentation was indexed for the official domain.",
"href": "https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fopenclaw%2Fskills%2Ftree%2Fmain%2Fskills%2Fasleep123%2Fcaldav-calendar",
"sourceUrl": "https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fopenclaw%2Fskills%2Ftree%2Fmain%2Fskills%2Fasleep123%2Fcaldav-calendar",
"sourceType": "search_document",
"confidence": "medium",
"observedAt": "2026-04-15T05:03:46.393Z",
"isPublic": true
}
]Sponsored
Ads related to crewai-es-agent and adjacent AI workflows.