You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+91-15Lines changed: 91 additions & 15 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,11 +1,7 @@
1
1
The Security Lab Taskflow Agent is an MCP enabled multi-Agent framework.
2
2
3
-
While the [Security Lab Copilot Extensions Framework](https://github.com/github/seclab-copilot-extensions) was created for team-internal prototyping and exploring various Agentic workflow ideas and approaches, the Taskflow Agent is intended as a "production" implementation.
4
-
5
3
The Taskflow Agent is built on top of the [OpenAI Agents SDK](https://openai.github.io/openai-agents-python/) in contrast to the largely custom backend implementations of our original Copilot extensions framework.
6
4
7
-
As such the Taskflow Agent provides a more future-proof CLI focused Agent tool as we leverage the SDK for keeping pace with e.g. evolving MCP protocol specifications.
8
-
9
5
While the Taskflow Agent does not integrate into the dotcom Copilot UX, it does operate using the Copilot API (CAPI) as its backend.
Provide a Copilot entitled GitHub PAT via the `COPILOT_TOKEN` environment variable.
34
30
31
+
## Source
32
+
35
33
Run `python main.py` for help.
36
34
37
35
Example: deploying a prompt to an Agent Personality:
38
36
39
-
```
37
+
```sh
40
38
python main.py -p assistant 'explain modems to me please'
41
39
```
42
40
43
41
Example: deploying a Taskflow:
44
42
45
-
```
43
+
```sh
46
44
python main.py -t example
47
45
```
48
46
49
-
## Configuration
47
+
## Docker
48
+
49
+
Alternatively you can deploy the Agent via it's accompanying Docker image using `docker/run.sh`.
50
+
51
+
The image entrypoint is `main.py` and thus it operates the same as invoking the Agent from source directly.
52
+
53
+
You can find the Docker image for the Seclab Taskflow Agent [here](https://github.com/GitHubSecurityLab/seclab-taskflow-agent/pkgs/container/seclab-taskflow-agent) and how it is built [here](release_tools/).
54
+
55
+
Note that this image is based on a public release of the Taskflow Agent, and you will have to mount any custom taskflows, personalities, or prompts into the image for them to be available to the Agent.
56
+
57
+
See [docker/run.sh](docker/run.sh) for configuration details.
- Custom personalities via `MY_PERSONALITIES` environment variable
74
+
- Custom taskflows via `MY_TASKFLOWS` environment variable
75
+
- Custom prompts via `MY_PROMPTS` environment variable
76
+
- Custom toolboxes via `MY_TOOLBOXES` environment variable
50
77
51
-
Set environment variables via an `.env` file in the project root as required.
78
+
For more advanced scenarios like e.g. making custom MCP server code available, you can alter the run script to mount your custom code into the image and configure your toolboxes to use said code accordingly.
79
+
80
+
Example: custom MCP server deployment via Docker image:
Our default run script makes the Docker socket available to the image, which contains the Docker cli, so 3rd party Docker based stdio MCP servers also function as normal.
107
+
108
+
Example: a toolbox configuration for the official GitHub MCP Server:
Set environment variables via an `.env` file in the project root.
122
+
123
+
Example: a persistent Agent configuration with various MCP server environment variables set:
124
+
125
+
```sh
126
+
# Tokens
127
+
COPILOT_TOKEN=...
128
+
# Docker config, MY_DATA is mounted to /app/my_data
129
+
MY_DATA="/home/user/my_data""
130
+
# MCP configs
131
+
GITHUB_PERSONAL_ACCESS_TOKEN=...
132
+
CODEQL_DBS_BASE_PATH="/app/my_data/"
133
+
```
52
134
53
135
# Personalities
54
136
@@ -164,9 +246,3 @@ taskflow:
164
246
Taskflows support [Agent handoffs](https://openai.github.io/openai-agents-python/handoffs/). Handoffs are useful for implementing triage patterns where the primary Agent can decide to handoff a task to any subsequent Agents in the `Agents` list.
165
247
166
248
See the [taskflow examples](taskflows/examples) for other useful Taskflow patterns such as repeatable and asynchronous templated prompts.
167
-
168
-
# Docker based deployments
169
-
170
-
You can find a Docker image for the Seclab Taskflow Agent [here](https://github.com/GitHubSecurityLab/seclab-taskflow-agent/pkgs/container/seclab-taskflow-agent)
171
-
172
-
Note that this image is based on the public release of the Taskflow Agent, and you will have to mount any custom taskflows, personalities, or prompts into the image for them to be available to the Agent. See [docker/run.sh](docker/run.sh) for examples of use.
0 commit comments