{"id":50886041,"url":"https://github.com/dmatrix/omnigent_examples","last_synced_at":"2026-06-15T17:02:20.979Z","repository":{"id":364673301,"uuid":"1256464577","full_name":"dmatrix/omnigent_examples","owner":"dmatrix","description":"Example of Omniagents","archived":false,"fork":false,"pushed_at":"2026-06-14T00:46:26.000Z","size":329,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-14T02:22:23.971Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dmatrix.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-06-01T20:00:23.000Z","updated_at":"2026-06-14T00:46:30.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/dmatrix/omnigent_examples","commit_stats":null,"previous_names":["dmatrix/omnigent_examples"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/dmatrix/omnigent_examples","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dmatrix%2Fomnigent_examples","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dmatrix%2Fomnigent_examples/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dmatrix%2Fomnigent_examples/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dmatrix%2Fomnigent_examples/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dmatrix","download_url":"https://codeload.github.com/dmatrix/omnigent_examples/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dmatrix%2Fomnigent_examples/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34372130,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-15T02:00:07.085Z","response_time":63,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-06-15T17:02:20.139Z","updated_at":"2026-06-15T17:02:20.966Z","avatar_url":"https://github.com/dmatrix.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# Omnigent Examples\n\n**YAML-defined AI agents for the Omnigent Meta Harness -- from single-tool assistants to multi-tool disaster response agents, telco customer support, and secure code assistants.**\n\nThese examples help you get started and learn the nuances of what omnigent offers. Both\nversions can run locally or with a Databricks hosted Omnigent Server. \n\n[![omnigent.ai](https://img.shields.io/badge/omnigent.ai-Visit-00C853)](https://omnigent.ai)\n![License: Apache-2.0](https://img.shields.io/badge/License-Apache%202.0-blue.svg)\n![Databricks](https://img.shields.io/badge/Databricks-FF3621?logo=databricks\u0026logoColor=white)\n![Claude](https://img.shields.io/badge/Claude-Anthropic-6B4FBB)\n![Python](https://img.shields.io/badge/Python-3.12+-3776AB?logo=python\u0026logoColor=white)\n\n---\n\n## Overview\n\nThis repository contains example agent configurations for the [Omnigent](https://github.com/omnigent) meta-harness. Each example defines an AI agent in YAML -- specifying the executor, system prompt, and tools. Four flagship examples demonstrate different patterns:\n\n1. **[Secure Code Assistant](examples/secure_code_assistant/)** -- information flow control blocks web search after private code read, blocks file writes after web content reads, and enforces ALLOW, DENY, ASK policy guardrails, and budget control costs at session level. \n2. **[Telco Customer Agent](examples/telco_customer_agent/)** -- multi-tool customer data agent with PII/financial policy labels and control\n3. **[FEMA Disaster Agent](examples/fema_supervisor/)** -- multi-tool routing (text-to-SQL + semantic policy search)\n4. **[MLflow Docs RAG Agent](examples/rag_mlflow_docs/)** -- self-building RAG pipeline (embeds documents, then searches them)\n---\n\n## Get Started\n\n### Prerequisites\n\n- Python 3.12+\n- The `omnigent` CLI installed (`pip install omnigent`)\n- `OPENAI_API_KEY` in a `.env` file at the repo root (needed for embeddings in the FEMA and RAG agents)\n\n```bash\necho 'ANTHROPIC_API_KEY=\"sk-...\"' \u003e .env\n```\n\n### First-time setup\n\nRun the interactive setup to configure your model credentials:\n\n```bash\nomnigent setup\n```\n\nThis walks you through choosing providers for each harness (Claude, OpenAI, Ollama, etc.) and stores configurations in `~/.omnigent/config.yaml`. View your configuration at any time with `omnigent config list`.\n\n### Set up databases\n\n```bash\npython examples/tools/create_fema_db.py    # FEMA agent (80 disaster records)\npython examples/tools/create_telco_db.py   # Telco agent (5 tables, 125 records)\n# MLflow RAG agent builds its own DB on first query -- no setup needed\n```\n\n---\n\n## Run on Databricks\n\nConnect to a Databricks-hosted Omnigent server. Override the model to route through Databricks AI Gateway:\n\n```bash\n# Authenticate with the remote server\nomnigent login https://omnigent-\u003cid\u003e.aws.databricksapps.com\n\n# FEMA disaster agent\nomnigent run examples/fema_supervisor/ --model databricks-claude-sonnet-4-6 --server https://omnigent-\u003cid\u003e.aws.databricksapps.com\n\n# MLflow docs RAG agent\nomnigent run examples/rag_mlflow_docs/ --model databricks-gpt-5-5 --server https://omnigent-\u003cid\u003e.aws.databricksapps.com\n\n# Telco customer agent\nomnigent run examples/telco_customer_agent/ --model databricks-claude-sonnet-4-6 --server https://omnigent-\u003cid\u003e.aws.databricksapps.com\n```\n\nThe CLI opens an interactive REPL. A Web UI is also available at the Databricks Apps URL.\n\nTo avoid repeating `--server`, set it as a default:\n\n```bash\nomnigent config set --global server=https://omnigent-\u003cid\u003e.aws.databricksapps.com\n```\n\n---\n\n## Run Locally\n\nAll example configs default to direct API models (Anthropic or OpenAI). Runs fully on your machine with no Databricks dependency. The CLI auto-spawns a local background server.\n\n### 1. Configure credentials (one-time)\n\n```bash\nomnigent setup\n```\n\nChoose your providers (Claude subscription, OpenAI API key, Ollama local, etc.). Omnigent auto-detects credentials already in your environment and offers them as defaults.\n\n### 2. Export your API keys\n\n```bash\n# Always needed (embeddings use OpenAI regardless of LLM)\nexport $(grep OPENAI_API_KEY .env | tr -d '\"')\n\n# Only needed for Claude models via direct API\nexport $(grep ANTHROPIC_API_KEY .env | tr -d '\"')\n```\n\n### 3. Run an agent\n\n```bash\n# Secure Code Assistant -- information flow policies (Claude)\nomnigent run examples/secure_code_assistant/\n\n# Secure Code Assistant -- override model\nomnigent run examples/secure_code_assistant/ --model claude-sonnet-4-6 --harness claude-sdk\n\n# Telco -- uses credentials configured in setup\nomnigent run examples/telco_customer_agent/\n\n# Telco -- OpenAI\nomnigent run examples/telco_customer_agent/ --model gpt-4o --harness openai-agents\n\n# Fresh session (no persistence)\nomnigent run examples/telco_customer_agent/ --no-session\n\n# FEMA -- uses credentials configured in setup\nomnigent run examples/fema_supervisor/\n\n# Override model and harness at the command line\nomnigent run examples/fema_supervisor/ --model gpt-4o --harness openai-agents\n\n# Anthropic Claude\nomnigent run examples/fema_supervisor/ --model claude-sonnet-4-6 --harness claude-sdk\n```\n\nEach example README has detailed local setup instructions -- see [Secure Code Assistant](examples/secure_code_assistant/), [Telco](examples/telco_customer_agent/), [FEMA](examples/fema_supervisor/), [RAG](examples/rag_mlflow_docs/).\n\n### Local Web UI\n\nThe Web UI is built into the server. Start the server and register your machine as a host:\n\n```bash\n# Start the server in the background (serves Web UI at http://localhost:8000)\nomnigent server start\n\n# Register this machine as a host (separate terminal)\nomnigent host\n\n# Open http://localhost:8000/\n```\n\n### Manage the background server\n\n```bash\nomnigent server status    # is the background server running?\nomnigent server stop      # stop server and local host daemon\n```\n\n---\n\nEach example README has a full list of queries:\n- [Secure Code Assistant queries](examples/secure_code_assistant/#example-queries)\n- [Telco Customer Agent queries](examples/telco_customer_agent/#example-queries)\n- [FEMA Disaster Agent queries](examples/fema_supervisor/#example-queries)\n- [MLflow Docs RAG queries](examples/rag_mlflow_docs/#example-queries)\n\n---\n\n## Alternative LLM Providers\n\nBy default each agent uses a direct API model (Anthropic or OpenAI). You can swap the LLM provider while keeping the same tools and prompts.\n\n**Note:** When using a Databricks-hosted server (`--server` flag), `databricks auth login` is required. Without `--server`, the CLI runs fully locally -- see [Run Locally](#run-locally) above.\n\nTo use a different model, change the `executor` block in `config.yaml`:\n\n**Direct Anthropic API** (requires `ANTHROPIC_API_KEY` in `.env`):\n```yaml\nexecutor:\n  type: omnigent\n  model: claude-sonnet-4-6\n  config:\n    harness: claude-sdk\n```\n\n**Direct OpenAI API** (requires `OPENAI_API_KEY` in `.env`):\n```yaml\nexecutor:\n  type: omnigent\n  model: gpt-5\n  config:\n    harness: openai-agents\n```\n\n**Local model via Ollama** (no API key needed):\n```yaml\nexecutor:\n  type: omnigent\n  model: ollama/llama-3\n  config:\n    harness: openai-agents\n    connection:\n      base_url: http://localhost:11434/v1\n```\n\n**Codex harness** (requires `OPENAI_API_KEY` in `.env`):\n```yaml\nexecutor:\n  type: omnigent\n  model: gpt-4o\n  config:\n    harness: codex\n```\n\n**Pi harness** (requires Pi CLI: `npm i -g @earendil-works/pi-coding-agent`):\n```yaml\nexecutor:\n  type: omnigent\n  model: databricks-claude-sonnet-4-6\n  config:\n    harness: pi\n```\n\nOr override at the command line without editing the YAML:\n```bash\nomnigent run examples/fema_supervisor/ --model claude-sonnet-4-6 --harness claude-sdk\nomnigent run examples/fema_supervisor/ --model gpt-5 --harness openai-agents\nomnigent run examples/fema_supervisor/ --model gpt-4o --harness codex\nomnigent run examples/fema_supervisor/ --harness pi\n```\n\n### Supported models\n\n| Provider | Model | Harness | Additional Auth |\n|---|---|---|---|\n| **Databricks AI Gateway** | `databricks-claude-sonnet-4-6` | `claude-sdk` | -- (Databricks auth only) |\n| | `databricks-claude-opus-4-7` | `claude-sdk` | -- |\n| | `databricks-claude-opus-4-8` | `claude-sdk` | -- |\n| | `databricks-gpt-5-5` | `openai-agents` or `codex` | -- |\n| | `databricks-gpt-5-4` | `openai-agents` or `codex` | -- |\n| | `databricks-gpt-5-4-mini` | `openai-agents` or `codex` | -- |\n| | `databricks-kimi-k2-6` | `openai-agents` | -- |\n| | `databricks-meta-llama-3.3-70b-instruct` | `openai-agents` | -- |\n| | `databricks-claude-sonnet-4-6` | `pi` | -- |\n| **Anthropic (direct)** | `claude-sonnet-4-6` | `claude-sdk` | `ANTHROPIC_API_KEY` in `.env` |\n| | `claude-opus-4-7` | `claude-sdk` | `ANTHROPIC_API_KEY` in `.env` |\n| | `claude-haiku-4-5` | `claude-sdk` | `ANTHROPIC_API_KEY` in `.env` |\n| **OpenAI (direct)** | `gpt-4o` | `openai-agents` or `codex` | `OPENAI_API_KEY` in `.env` |\n| | `gpt-5.3-codex` | `openai-agents` or `codex` | `OPENAI_API_KEY` in `.env` |\n| | `gpt-5.4` | `openai-agents` or `codex` | `OPENAI_API_KEY` in `.env` |\n| | `gpt-5.4-mini` | `openai-agents` or `codex` | `OPENAI_API_KEY` in `.env` |\n| **Gateway** | Any model via OpenRouter, LiteLLM, vLLM, Azure | `openai-agents`, `claude-sdk`, `codex`, or `pi` | Gateway `base_url` + key |\n| **Pi** | Claude or OpenAI models via Pi agent | `pi` | Pi CLI (`@earendil-works/pi-coding-agent`) |\n| **Ollama (local)** | `ollama/llama-3` | `openai-agents` | None |\n\nDatabricks AI Gateway models require `databricks auth login` and `--server`. Non-Databricks models (Anthropic, OpenAI, Ollama) run fully locally -- see [Run Locally](#run-locally). `OPENAI_API_KEY` is always required regardless of LLM provider (the `search_policies` tool uses it for embeddings).\n\nNo Python tool code changes are needed -- the tools are provider-independent.\n\n---\n\n## Architecture\n\nEach flagship agent has its own architecture diagram in its README:\n\n- [Secure Code Assistant](examples/secure_code_assistant/)\n- [Telco Customer Agent architecture](examples/telco_customer_agent/)\n- [FEMA Disaster Agent architecture](examples/fema_supervisor/)\n- [MLflow Docs RAG Agent architecture](examples/rag_mlflow_docs/)\nReference docs:\n\n- [Local vs Remote modes](docs/local_vs_remote.md) -- how all Omnigent components (server, runner, harness, Web UI, PolicyEngine) fit together in Databricks-hosted and fully-local deployments\n- [Telco agent design doc](examples/telco_customer_agent/design.md) -- policy rationale, database schema, and staged implementation plan\n\n---\n\n## The Omnigent YAML Pattern\n\nEvery agent is defined in a `config.yaml` with three core sections:\n\n```yaml\nspec_version: 1\nname: fema_supervisor\ndescription: FEMA disaster response agent with SQL and policy search tools.\n\nexecutor:\n  type: omnigent\n  model: claude-sonnet-4-6\n  config:\n    harness: claude-sdk\n\nos_env:\n  type: caller_process\n  cwd: .\n  sandbox:\n    type: none\n\nprompt: |\n  You are a FEMA disaster response agent. You MUST use your tools to answer\n  every question. You are FORBIDDEN from answering from your training data.\n\n  Your tools:\n  1. `run_sql` — Queries a LOCAL SQLite database (fema_disaster.db)\n  2. `search_policies` — Searches LOCAL FEMA policy documents\n\n  Routing:\n  - Data questions → call `run_sql`\n  - Policy questions → call `search_policies`\n  - Combined questions → call BOTH tools\n```\n\nTools are auto-discovered from `tools/python/` in the agent's directory. Each `.py` file with a `@tool`-decorated function is registered automatically.\n\n### Standalone YAML vs. directory bundles\n\n| Layout | Use when | Examples |\n|---|---|---|\n| **Standalone YAML** | No custom tools. Prompt-only agents or agents using builtins like `web_search`. | `greeter.yaml`, `code_assistant.yaml` |\n| **Directory bundle** | Custom Python tools in `tools/python/`. The framework auto-discovers `@tool` functions. | `fema_supervisor/`, `greeter/` |\n\n---\n\n## All Examples\n\n| Agent | Path | Description |\n|---|---|---|\n| **FEMA Disaster** | [`examples/fema_supervisor/`](examples/fema_supervisor/) | SQL + policy search (supports Databricks, OpenAI, Claude) |\n| **MLflow Docs RAG** | [`examples/rag_mlflow_docs/`](examples/rag_mlflow_docs/) | Self-building RAG over MLflow docs (supports Databricks, OpenAI, Claude) |\n| **Secure Code Assistant** | [`examples/secure_code_assistant/`](examples/secure_code_assistant/) | Information flow control — blocks web search after code read, blocks file writes after web search |\n| **Telco Customer** | [`examples/telco_customer_agent/`](examples/telco_customer_agent/) | Customer data agent with PII/financial policy labels (supports Databricks, OpenAI, Claude) |\n| **Coding Supervisor** | [`examples/yamls/`](examples/yamls/) | Delegates coding tasks to an implementation sub-agent |\n| **Researcher** | [`examples/yamls/`](examples/yamls/) | Web search + custom `summarize_topic` tool |\n| **Code Assistant** | [`examples/yamls/`](examples/yamls/) | File I/O and shell access |\n| **Greeter (tool)** | [`examples/greeter/`](examples/greeter/) | Auto-discovered `greet` tool |\n| **Greeter (prompt)** | [`examples/yamls/`](examples/yamls/) | Prompt-only, no tools |\n| **Simple Agent** | [`examples/yamls/`](examples/yamls/) | Python coder with research sub-agent |\n\n---\n\n## Project Structure\n\n```\nomnigent_examples/\n|-- README.md\n|-- CLAUDE.md\n|-- LICENSE                                  # Apache-2.0\n|-- .env                                     # OPENAI_API_KEY (not committed)\n|-- pyproject.toml\n|-- docs/\n|   +-- local_vs_remote.md                   # Omnigent local vs remote architecture\n|-- examples/\n|   |-- fema_supervisor/                     # FEMA disaster agent\n|   |   |-- README.md\n|   |   |-- config.yaml                      #   Agent config with prompt-driven routing\n|   |   +-- tools/python/\n|   |       |-- run_sql.py                   #   SQLite query tool (auto-discovered)\n|   |       +-- search_policies.py           #   Policy search tool (auto-discovered)\n|   |-- rag_mlflow_docs/                     # MLflow docs RAG agent\n|   |   |-- README.md\n|   |   |-- config.yaml\n|   |   +-- tools/python/\n|   |       |-- build_docs_db.py             #   Builds SQLite DB with docs + embeddings\n|   |       +-- search_docs.py               #   Semantic search over embedded docs\n|   |-- secure_code_assistant/               # Secure code assistant (information flow policies)\n|   |   |-- README.md\n|   |   |-- config.yaml                      #   harness: claude-sdk, model: claude-sonnet-4-6\n|   |   +-- tools/python/\n|   |       |-- read_source.py               #   File reader (triggers has_proprietary_code)\n|   |       +-- search_docs.py               #   Doc search stub (triggers has_external_content)\n|   |-- telco_customer_agent/                # Telco customer data agent (PII/financial policies)\n|   |   |-- README.md\n|   |   |-- config.yaml\n|   |   |-- design.md                        #   Policy rationale + staged implementation plan\n|   |   |-- tools/python/\n|   |   |   |-- query_plans.py               #   Public plan/pricing data (no labels)\n|   |   |   |-- query_customers.py           #   Customer PII + devices (triggers has_pii)\n|   |   |   +-- query_billing.py             #   Billing + subscriptions (triggers has_financial)\n|   |   +-- skills/customer-report/\n|   |       +-- SKILL.md                     #   On-demand report template with PII redaction\n|   |-- greeter/                             # Tool-based greeter\n|   |   |-- README.md\n|   |   |-- config.yaml\n|   |   +-- tools/python/greet.py\n|   |-- tools/                               # Shared utilities\n|   |   |-- create_fema_db.py                #   FEMA database setup script\n|   |   |-- create_telco_db.py               #   Telco database setup script\n|   |   |-- data/fema_disaster.db            #   Pre-built FEMA database (80 records)\n|   |   |-- data/telco.db                    #   Pre-built telco database (5 tables, 125 records)\n|   |   +-- python/                          #   Shared tool library\n|   |       |-- greet.py                     #   Greeting tool (used by simple.yaml)\n|   |       +-- summarize.py                 #   Summarization tool (used by researcher.yaml)\n|   +-- yamls/                               # Standalone YAML agents\n|       |-- README.md\n|       |-- greeter.yaml, researcher.yaml, code_assistant.yaml,\n|       |-- supervisor.yaml, simple.yaml\n|       +-- agents/impl_worker/config.yaml\n+-- images/\n    |-- fema_supervisor_architecture.svg\n    |-- rag_mlflow_docs_architecture.svg\n    |-- telco_customer_agent_architecture.svg\n    |-- omnigent_local_architecture.svg\n    +-- omnigent_remote_architecture.svg\n```\n\n---\n\n## License\n\n[Apache License 2.0](LICENSE)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdmatrix%2Fomnigent_examples","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdmatrix%2Fomnigent_examples","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdmatrix%2Fomnigent_examples/lists"}