Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
33 commits
Select commit Hold shift + click to select a range
0232c21
feat(providers): add Hermes Agent provider via hermes-agent Python li…
tima-110 May 28, 2026
d23ffdd
feat(providers): add auth_token and base_url support to Claude provider
tima-110 May 28, 2026
56c5ab9
fix: external workflow friction - minimal evidence-anchored fixes (#232)
lucioctinoco May 28, 2026
6d7735d
chore: release 0.1.18 (#233)
jrob5756 May 28, 2026
b20470f
feat(providers): add claude-agent-sdk provider (#104)
lesandiz Jun 2, 2026
d98693b
fix(human_gate): nest prompt_for collected values under additional_in…
ldavidgomez Jun 2, 2026
4bd0c4e
feat(providers): experimental provider tier + claude-agent-sdk follow…
jrob5756 Jun 3, 2026
5d6e4d3
chore(deps): Bump starlette from 0.52.1 to 1.0.1 (#246)
dependabot[bot] Jun 4, 2026
33c6e32
fix(context): support nested explicit input projection (#239)
ldavidgomez Jun 5, 2026
f804757
feat(providers): add Hermes Agent provider via hermes-agent Python li…
tima-110 May 28, 2026
cace079
docs(providers): add Hermes provider docs, example, and skills refere…
tima-110 May 28, 2026
1e38638
fix(providers): hermes smoke-test fixes — system_prompt, toolsets, ma…
tima-110 May 28, 2026
80a9706
fix(skills): update yaml-schema reference — hermes allows base_url/ap…
tima-110 May 28, 2026
5c11cf3
docs(providers): sync hermes docs and skills with smoke-test fixes
tima-110 May 28, 2026
6d9a1d4
docs(readme): add Hermes as a first-class provider
tima-110 May 28, 2026
55d2df1
docs: add Hermes to provider enumerations across configuration, CLI, …
tima-110 May 28, 2026
99753dd
feat(providers): declare Hermes as experimental provider with Provide…
tima-110 Jun 4, 2026
040b539
fix(providers): address PR review blockers for Hermes provider
tima-110 Jun 4, 2026
93f4879
fix(providers): address PR review should-fix items for Hermes provider
tima-110 Jun 4, 2026
bd713b2
feat(providers): wire hermes streaming + reasoning callbacks, enable …
tima-110 Jun 4, 2026
001fe51
feat(providers): add checkpoint_resume support to Hermes via conversa…
tima-110 Jun 4, 2026
6a2215a
feat(providers): wire reasoning_effort through to hermes via reasonin…
tima-110 Jun 4, 2026
0969bc8
feat(providers): enable cooperative interrupt for Hermes via agent.in…
tima-110 Jun 4, 2026
c738e96
feat(providers): add hermes_home profile support to ProviderSettings
tima-110 Jun 5, 2026
0d6bb2d
feat(providers): align Hermes structured output with Copilot pattern
tima-110 Jun 5, 2026
2d2e335
feat(providers): set workflow_tools_passthrough=False and add hermes_…
tima-110 Jun 5, 2026
61a3954
fix(providers): route hermes temperature through request_overrides
tima-110 Jun 6, 2026
2305a0b
docs(skills): sync conductor skill with Hermes provider and nested in…
tima-110 Jun 8, 2026
d4e9c3a
test(examples): add Hermes provider functional test workflows
tima-110 Jun 8, 2026
dd0ac83
fix(providers): stop forcing skip_memory/skip_context_files in Hermes…
tima-110 Jun 8, 2026
bead6d7
fix(providers): expand tilde in hermes_home before passing to SDK
tima-110 Jun 8, 2026
ae1ba1c
Merge origin/main into feat/hermes-provider
jrob5756 Jun 17, 2026
fc47f6f
fix(providers): address remaining PR review items for Hermes provider
tima-110 Jun 24, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 15 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,21 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

## [Unreleased](https://github.com/microsoft/conductor/compare/v0.1.19...HEAD)

### Added

- **Hermes provider (experimental)** — optional third provider built on the
NousResearch [`hermes-agent`](https://github.com/NousResearch/hermes-agent)
library, which manages its own tool ecosystem (no MCP configuration). Install
separately with `pip install hermes-agent`; Conductor works without it.
Declared in the experimental provider tier with documented capability
carve-outs (no MCP servers, no per-agent workflow `tools:` allowlist,
structured output via prompt injection). Supports custom endpoints via
structured `runtime.provider` (`base_url` / `api_key`), `hermes_home`
profiles, `hermes_toolsets`, streaming + reasoning event callbacks,
cooperative interrupt, session-history resume, and `max_session_seconds`.
See [`docs/providers/hermes.md`](docs/providers/hermes.md).
([#235](https://github.com/microsoft/conductor/pull/235))

## [0.1.19](https://github.com/microsoft/conductor/compare/v0.1.18...v0.1.19) - 2026-06-16

### Added
Expand Down
33 changes: 23 additions & 10 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ Conductor makes multi-agent workflows — code review pipelines, research-then-s
## Features

- **YAML-based workflows** - Define multi-agent workflows in readable YAML
- **Multiple providers** - GitHub Copilot, Anthropic Claude, or Claude Agent SDK with seamless switching
- **Multiple providers** - GitHub Copilot, Anthropic Claude, Claude Agent SDK, or NousResearch Hermes (experimental) with seamless switching
- **Parallel execution** - Run agents concurrently (static groups or dynamic for-each)
- **Sub-workflow composition** - Reusable sub-workflows with templated `input_mapping`, usable inside `for_each` groups for dynamic fan-out
- **Script steps** - Run shell commands and route on exit code or parsed JSON stdout
Expand Down Expand Up @@ -211,13 +211,14 @@ conductor stop

Conductor supports multiple AI providers. Choose based on your needs:

| Feature | Copilot | Claude | Claude Agent SDK |
|---------|---------|--------|------------------|
| **Pricing** | Subscription ($10-39/mo) | Pay-per-token | Via Claude Code CLI |
| **Context Window** | 8K-128K tokens | 200K tokens | 200K tokens |
| **Tool Support (MCP)** | Yes | Planned | Yes (built-in) |
| **Streaming** | Yes | Planned | Yes |
| **Best For** | Heavy usage, tools | Large context, pay-per-use | Full Claude Code toolset |
| Feature | Copilot | Claude | Claude Agent SDK | Hermes |
|---------|---------|--------|------------------|--------|
| **Tier** | Stable | Stable | Experimental | Experimental |
| **Pricing** | Subscription ($10-39/mo) | Pay-per-token | Via Claude Code CLI | Pay-per-token (via hermes) |
| **Context Window** | 8K-128K tokens | 200K tokens | 200K tokens | Per-model |
| **Tool Support (MCP)** | Yes | Planned | Yes (built-in) | No (hermes internal tools) |
| **Streaming** | Yes | Planned | Yes | No |
| **Best For** | Heavy usage, tools | Large context, pay-per-use | Full Claude Code toolset | Multi-provider model access |

### Using Claude

Expand All @@ -243,7 +244,18 @@ Requires the `claude` CLI to be installed and authenticated. Install the SDK: `u

> **Note:** The `claude-agent-sdk` provider delegates tool and MCP server management to the `claude` CLI. Workflow-level `tools` and `runtime.mcp_servers` fields are ignored — configure these through your Claude Code settings instead.

**See also:** [Claude Documentation](docs/providers/claude.md) | [Provider Comparison](docs/providers/comparison.md) | [Migration Guide](docs/providers/migration.md)
### Using Hermes (Experimental)

```yaml
workflow:
runtime:
provider: hermes
default_model: anthropic/claude-sonnet-4
```

Install the library: `pip install hermes-agent`

**See also:** [Claude Documentation](docs/providers/claude.md) | [Hermes Documentation](docs/providers/hermes.md) | [Provider Comparison](docs/providers/comparison.md) | [Migration Guide](docs/providers/migration.md)

### Using a Local / Custom LLM Endpoint (Ollama, vLLM, Azure OpenAI, ...)

Expand Down Expand Up @@ -357,7 +369,8 @@ See the [`examples/`](./examples/) directory for complete workflows:
| [Parallel Execution](./docs/parallel-execution.md) | Static parallel groups |
| [Dynamic Parallel](./docs/dynamic-parallel.md) | For-each groups and array processing |
| [Claude Provider](./docs/providers/claude.md) | Claude setup and configuration |
| [Provider Comparison](./docs/providers/comparison.md) | Copilot vs Claude decision guide |
| [Hermes Provider](./docs/providers/hermes.md) | Hermes setup and configuration |
| [Provider Comparison](./docs/providers/comparison.md) | Copilot vs Claude vs Hermes decision guide |

## Development

Expand Down
2 changes: 1 addition & 1 deletion docs/cli-reference.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ conductor run <workflow.yaml> [OPTIONS]
| `--metadata KEY=VALUE` | `-m` | Workflow metadata (repeatable). Merged on top of YAML `metadata:` and surfaced in the `workflow_started` event. |
| `--workspace-instructions` | | Auto-discover convention files (`AGENTS.md`, `CLAUDE.md`, `.github/copilot-instructions.md`, and `.github/instructions/**/*.instructions.md`) by walking from CWD up to the git root. Concatenated and prepended to every agent's prompt. See [Workspace Instructions](#workspace-instructions) below for details on the `.github/instructions/` directory convention. |
| `--instructions PATH` | | Explicit path to an instructions file (repeatable). Combines with auto-discovered files when both flags are used. |
| `--provider PROVIDER` | `-p` | Override provider (copilot, claude, claude-agent-sdk) |
| `--provider PROVIDER` | `-p` | Override provider (copilot, claude, claude-agent-sdk, hermes) |
| `--dry-run` | | Show execution plan without running |
| `--skip-gates` | | Auto-select first option at human gates |
| `--quiet` | `-q` | Minimal output (agent lifecycle and routing only) |
Expand Down
27 changes: 26 additions & 1 deletion docs/configuration.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ The `runtime` section of your workflow defines provider settings and global defa
```yaml
workflow:
runtime:
provider: copilot # or 'claude' or 'claude-agent-sdk'
provider: copilot # or 'claude', 'claude-agent-sdk', 'hermes'
default_model: gpt-5.2
temperature: 0.7
max_tokens: 4096
Expand Down Expand Up @@ -77,6 +77,31 @@ workflow:

**See**: [Claude Provider Documentation](providers/claude.md)

### Hermes Provider (Experimental)

> **Experimental** — see [Experimental Providers](providers/experimental.md) for stability policy.

Uses the NousResearch hermes-agent library for agent execution. Supports any OpenRouter-style model identifier.

```yaml
workflow:
runtime:
provider: hermes
default_model: anthropic/claude-sonnet-4
max_agent_iterations: 25
max_tokens: 4096
temperature: 0.7
```

**Features**:
- Access to Anthropic, OpenAI, and OpenRouter models via one provider
- Built-in hermes tool ecosystem (no MCP config required)
- Custom endpoint routing via structured `provider:` config

**Models**: `anthropic/claude-sonnet-4`, `openai/gpt-4o`, any OpenRouter `provider/model` string

**See**: [Hermes Provider Documentation](providers/hermes.md)

### Custom Provider Routing (Ollama / vLLM / Azure OpenAI)

`runtime.provider` accepts either the bare string shorthand
Expand Down
Loading