Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
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
8 changes: 8 additions & 0 deletions .github/release-please-config.json
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,14 @@
"changelog-path": "CHANGELOG.md",
"release-type": "simple",
"package-name": "file-api"
},
"execution-engines/langchain-executor": {
"changelog-path": "CHANGELOG.md",
"release-type": "helm",
"package-name": "langchain-executor",
"extra-files": [
"chart/Chart.yaml"
]
}
}
}
3 changes: 2 additions & 1 deletion .github/release-please-manifest.json
Original file line number Diff line number Diff line change
Expand Up @@ -8,5 +8,6 @@
"services/ark-sandbox": "0.1.2",
"agents/noah": "0.1.8",
"services/file-gateway": "0.1.3",
"services/file-gateway/services/file-api": "0.1.1"
"services/file-gateway/services/file-api": "0.1.1",
"execution-engines/langchain-executor": "0.1.0"
}
5 changes: 5 additions & 0 deletions .github/workflows/main-push.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ jobs:
- { name: noah, path: agents/noah }
- { name: ark-sandbox, path: services/ark-sandbox }
- { name: file-api, path: services/file-gateway/services/file-api }
- { name: langchain-executor, path: execution-engines/langchain-executor }
uses: ./.github/workflows/_reusable-docker-cicd.yaml
with:
service-name: ${{ matrix.service.name }}
Expand All @@ -52,6 +53,8 @@ jobs:
- { name: noah, path: agents/noah, namespace: noah, run-deployment-test: false }
# disable file-gateway deployment tests for PRs to avoid hitting 5m limit
- { name: file-gateway, path: services/file-gateway, namespace: default, run-deployment-test: false }
# disable langchain-executor deployment tests for PRs to avoid hitting 5m limit
- { name: langchain-executor, path: execution-engines/langchain-executor, namespace: default, run-deployment-test: false }
uses: ./.github/workflows/_reusable-charts-cicd.yaml
with:
chart-name: ${{ matrix.chart.name }}
Expand Down Expand Up @@ -138,6 +141,7 @@ jobs:
- { name: noah, path: agents/noah }
- { name: ark-sandbox, path: services/ark-sandbox }
- { name: file-api, path: services/file-gateway/services/file-api }
- { name: langchain-executor, path: execution-engines/langchain-executor }
uses: ./.github/workflows/_reusable-docker-cicd.yaml
with:
service-name: ${{ matrix.service.name }}
Expand All @@ -159,6 +163,7 @@ jobs:
- { name: ark-sandbox, path: services/ark-sandbox, namespace: default }
- { name: noah, path: agents/noah, namespace: noah }
- { name: file-gateway, path: services/file-gateway, namespace: default }
- { name: langchain-executor, path: execution-engines/langchain-executor, namespace: default }
uses: ./.github/workflows/_reusable-charts-cicd.yaml
with:
chart-name: ${{ matrix.chart.name }}
Expand Down
3 changes: 3 additions & 0 deletions .github/workflows/pull-request.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ jobs:
- { name: noah, path: agents/noah }
- { name: ark-sandbox, path: services/ark-sandbox }
- { name: file-api, path: services/file-gateway/services/file-api }
- { name: langchain-executor, path: execution-engines/langchain-executor }
uses: ./.github/workflows/_reusable-docker-cicd.yaml
with:
service-name: ${{ matrix.service.name }}
Expand All @@ -50,6 +51,8 @@ jobs:
- { name: noah, path: agents/noah, namespace: noah, run-deployment-test: false }
# disable file-gateway deployment tests for PRs to avoid hitting 5m limit
- { name: file-gateway, path: services/file-gateway, namespace: default, run-deployment-test: false }
# disable langchain-executor deployment tests for PRs to avoid hitting 5m limit
- { name: langchain-executor, path: execution-engines/langchain-executor, namespace: default, run-deployment-test: false }
uses: ./.github/workflows/_reusable-charts-cicd.yaml
with:
chart-name: ${{ matrix.chart.name }}
Expand Down
12 changes: 12 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,14 @@ Services are designed to integrate seamlessly with the [ARK platform](https://gi
| [`mcp-inspector`](./services/mcp-inspector) | Developer tool for testing and debugging MCP servers | [Chart](./services/mcp-inspector/chart) |
| [`phoenix`](./services/phoenix) | AI/ML observability and evaluation platform with OpenTelemetry integration | [Chart](./services/phoenix/chart) |

## Execution Engines

Alternative execution engines for running Ark agents with different frameworks.

| Execution Engine | Description | Chart |
| ------------------------------------------------------------- | ----------------------------------------------------------------- | ------------------------------------------------------ |
| [`langchain-executor`](./execution-engines/langchain-executor) | LangChain-based execution engine with RAG support | [Chart](./execution-engines/langchain-executor/chart) |

## Agents

Pre-built agents that can be deployed to your ARK cluster for various operational tasks.
Expand All @@ -62,6 +70,9 @@ ark install marketplace/services/langfuse
ark install marketplace/services/mcp-inspector
ark install marketplace/services/phoenix

# Install execution engines
ark install marketplace/execution-engines/langchain-executor

# Install agents
ark install marketplace/agents/noah
```
Expand Down Expand Up @@ -130,6 +141,7 @@ This marketplace will include:

- Additional observability services
- Pre-built agents and agent templates
- Additional execution engines (AutoGen, CrewAI, etc.)
- Reusable tools and utilities

## Related Projects
Expand Down
1 change: 1 addition & 0 deletions docs/content/_meta.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
export default {
index: 'Introduction',
services: 'Services',
'execution-engines': 'Execution Engines',
agents: 'Agents',
contributors: 'Contributors',
}
3 changes: 3 additions & 0 deletions docs/content/execution-engines/_meta.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
export default {
'langchain-executor': 'LangChain Executor'
}
107 changes: 107 additions & 0 deletions docs/content/execution-engines/langchain-executor.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,107 @@
---
title: LangChain Executor
description: Reference implementation of a LangChain-based execution engine for Ark agents
---

# LangChain Executor

A reference implementation demonstrating how to build an execution engine for Ark using the LangChain framework.

## Overview

This execution engine serves as an example of how to run Ark agents with an alternative framework. It demonstrates:

- **LangChain Integration**: Using LangChain to process agent queries
- **RAG Support**: Optional retrieval-augmented generation with embeddings
- **Model Compatibility**: Works with Azure OpenAI, OpenAI, and Ollama

Use this as a starting point for building custom execution engines or for workloads that benefit from LangChain's capabilities.

## Installation

**Using ARK CLI (Recommended):**
```bash
ark install marketplace/execution-engines/langchain-executor
```

**Using Helm:**
```bash
cd execution-engines/langchain-executor
helm dependency update chart/
helm install langchain-executor ./chart --create-namespace
```

**Using DevSpace:**
```bash
cd execution-engines/langchain-executor
devspace deploy
```

### Uninstallation

**Using Helm:**
```bash
helm uninstall langchain-executor
```

**Using DevSpace:**
```bash
cd execution-engines/langchain-executor
devspace purge
```

## Usage

### Basic Agent

Reference the execution engine in your Agent:

```yaml
apiVersion: ark.mckinsey.com/v1alpha1
kind: Agent
metadata:
name: langchain-agent
spec:
executionEngine:
name: langchain-executor
modelRef:
name: default
prompt: |
You are a helpful AI assistant.
```

### RAG-Enabled Agent

Enable RAG by adding the `langchain: rag` label:

```yaml
apiVersion: ark.mckinsey.com/v1alpha1
kind: Agent
metadata:
name: rag-agent
labels:
langchain: rag
spec:
executionEngine:
name: langchain-executor
modelRef:
name: default
prompt: |
You are a code expert. Use the provided context to answer questions.
```

### Custom Embeddings Model

Specify a custom embeddings model:

```yaml
metadata:
labels:
langchain: rag
langchain-embeddings-model: text-embedding-3-small
```

## Resources

- [README](https://github.com/mckinsey/agents-at-scale-marketplace/tree/main/execution-engines/langchain-executor) - Technical details, configuration options, and development setup
- [Ark Documentation](https://mckinsey.github.io/agents-at-scale-ark/) - Complete platform documentation
13 changes: 13 additions & 0 deletions execution-engines/langchain-executor/.dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
.venv/
__pycache__/
*.pyc
*.pyo
*.pyd
.pytest_cache/
.coverage
htmlcov/
coverage/
*.egg-info/
build/
dist/
.DS_Store
Loading