-
Notifications
You must be signed in to change notification settings - Fork 107
docs: document OrcaRouter as a named hermes provider for wiki and skillify workers #345
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -116,6 +116,17 @@ The skillify worker calls each agent's own headless CLI for the gate prompt — | |
|
|
||
| For hermes via OpenRouter (the default), set `OPENROUTER_API_KEY` in the environment; the worker inherits the parent process env. Other providers (anthropic, openai, etc.) need their respective API keys. | ||
|
|
||
| To route the hermes gate calls through [OrcaRouter](https://www.orcarouter.ai) instead, set `HIVEMIND_HERMES_PROVIDER=orcarouter` (plus a matching `HIVEMIND_HERMES_MODEL`, e.g. `anthropic/claude-haiku-4.5`) and register OrcaRouter as a named provider in `~/.hermes/config.yaml` so hermes knows its base URL and API key env var: | ||
|
|
||
| ```yaml | ||
| providers: | ||
| orcarouter: | ||
| base_url: https://api.orcarouter.ai/v1 | ||
| key_env: ORCAROUTER_API_KEY | ||
| ``` | ||
|
|
||
| OrcaRouter is an OpenAI-compatible gateway, so hermes talks to it like any other custom endpoint; set `ORCAROUTER_API_KEY` in the environment and the worker inherits it. It also runs gateway-level, zero-trust security for AI agents on the same endpoint — screening every prompt/response and governing every tool call on a default-deny basis, with no application code changes. | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🔒 Security & Privacy | 🟠 Major | ⚡ Quick win 🧩 Analysis chain🌐 Web query:
💡 Result: The OrcaRouter agent firewall is a workspace-scoped policy that evaluates every tool call and MCP invocation before execution [1][2]. It operates as an action-layer plane, governing which tools, servers, and hosts an agent may access [1][3]. Policy Structure and Default Verdict A firewall policy is a named, workspace-scoped entity [1]. Each policy includes a default_verdict, which determines the action taken when no specific rule matches a tool call [1]. The available options for the default_verdict are allow, audit, or deny; the system default is audit [1][3]. Policies can also be configured with a shadow_mode flag, which logs enforced verdicts as if they were executed without actually blocking the action [1][4]. Attachment to Keys Firewall policies are attached to API keys via the firewall_policy_id field, which is configured within the OrcaRouter console [1][5]. When a firewall policy is attached to an API key: - If the attached policy is enabled, it evaluates all tool calls made by that key [5][4]. - If the attached policy is disabled, the key falls back to the workspace's default firewall policy rather than disabling enforcement entirely [5][4]. - To use the firewall features, the API key must be a firewall-gateway-scoped key (is_firewall_gateway = true) [1]. Workspaces and Autonomy Levels Firewall policies are managed at the workspace level [1][6]. To simplify configuration, users can apply autonomy levels (such as tight, balanced, or permissive) in the Firewall Posture settings [3][4][6]. These levels automatically configure the firewall and guardrails, with balanced being the recommended starting posture as it defaults to audit for all calls while blocking known destructive shell tools [3][6]. Citations:
Security Misconfiguration (CWE-16) Reachability: External · Exploitability: Moderate Qualify the default-deny security guarantee in both guides. OrcaRouter uses 📍 Affects 2 files
🤖 Prompt for AI AgentsSource: MCP tools |
||
|
|
||
| ## Logs | ||
|
|
||
| Worker activity logs to `~/.claude/hooks/skillify.log`. Each line shows which session pool was mined, what the gate decided, and whether a file was written. | ||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🎯 Functional Correctness | 🟠 Major | ⚡ Quick win
🔎 Supported by static analysis
🏁 Script executed:
Repository: activeloopai/hivemind
Length of output: 20511
🌐 Web query:
Hermes agent CLI --ignore-user-config config.yaml --provider named provider documentation💡 Result:
To use the Hermes Agent CLI with the
--ignore-user-configflag and a specific provider, you can use the following command structure: hermes chat --ignore-user-config --provider <provider_name> The--ignore-user-configflag instructs Hermes to skip loading the user configuration file located at ~/.hermes/config.yaml [1][2]. Instead, it will fall back to built-in default settings, though credentials stored in your.env file will still be loaded [1][3][2]. This flag is particularly useful for isolated CI runs, reproduction of issues, or third-party integrations [3]. Regarding providers: 1. Provider Selection: The--providerflag allows you to explicitly choose which provider to use for the session [4][5]. Common providers include nous, openrouter, and others configured via your setup [4][6]. 2. Provider Setup: The--providerflag accepts the provider ID [5]. To view or add available providers and their respective models, use the command hermes model, which launches an interactive setup wizard [7][6]. 3. Precedence: Provider resolution typically follows this priority: explicit CLI/runtime requests, then config.yaml settings, then environment variables, and finally provider-specific defaults [8]. Using the --provider flag on the command line will override settings in your config files [8]. If you need to bypass additional behavioral rules (such as AGENTS.md, SOUL.md, or.cursorrules auto-injection), you can also add the --ignore-rules flag [1][3]. Combining --ignore-user-config and --ignore-rules provides a fully isolated environment [3].Citations:
🌐 Web query:
OrcaRouter default deny policy audit verdict tool calls documentation💡 Result:
In OrcaRouter, the default deny policy and tool call audit verdicts are managed through the Agent Firewall, which evaluates every tool call and Model Context Protocol (MCP) invocation before execution [1][2]. Policy and Default Verdicts A firewall policy is an ordered list of rules [1]. The engine processes these rules in priority order (first match wins); if no rules match a specific tool call, the system falls back to the policy's default_verdict [1][3]. The default_verdict can be configured as one of the following [1]: - allow: The tool call is permitted and logged. - audit: The tool call is permitted and recorded for review (this is the standard system default) [1]. - deny: The tool call is blocked, returning an HTTP 400 firewall_blocked error for inbound requests or a tool error for MCP [1]. - sanitize: Redacts matched substrings from tool arguments before forwarding [1]. - pending_approval: Holds the call for human approval, returning an HTTP 400 firewall_approval_pending [1]. - cap_cost: Permits the call until a per-rule spending cap is reached [1]. Autonomy Levels and Pre-configured Postures OrcaRouter provides predefined autonomy levels that adjust these firewall settings automatically [1][4]: - tight: Uses a default-deny posture and blocks destructive tools (e.g., shell/exec) and SSRF-prone tools (e.g., http_fetch) [1][5]. - balanced: Uses a default-audit posture (default_verdict set to audit) while still denying the most destructive class of shell commands. This is the recommended starting configuration [1][5][4]. - permissive: No enforcement is applied, though activity is still observed [1][5]. Audit and Enforcement Every decision, including matches, verdicts, and approvals, is logged in the audit trail [4][6]. Users can monitor events via the Firewall → Events log in the console, which tracks every tool-call verdict [5][6]. For testing purposes, policies can also run in shadow_mode, where the firewall logs what would have happened without actually blocking the calls [1][6].
Citations:
Make the Hermes OrcaRouter setup match the runtime.
src/skillify/gate-runner.tspasses--ignore-user-config, so Hermes skips~/.hermes/config.yaml. The documentedproviders.orcarouterentry is therefore unavailable. Remove this flag for named providers or use a supported explicit endpoint configuration.docs/SKILLIFY.md:128must not claim default-deny enforcement without selecting an enforcing OrcaRouter policy. OrcaRouter defaults toaudit; default-deny requires the appropriate policy posture.🤖 Prompt for AI Agents
Source: MCP tools