Skip to content

Project AI For Devs (chat-sdlc) - AI agents running containerized tools

License

Notifications You must be signed in to change notification settings

docker/labs-ai-tools-for-devs

Repository files navigation

This README is an agentic workflow

AI Tools for Developers

Agentic AI workflows enabled by Docker containers.

Just Docker. Just Markdown. BYOLLM.

overall architecture diagram preview

Source for many experiments in our LinkedIn newsletter

VSCode Extension

Docs

What is this?

This is a simple Docker image which enables infinite possibilities for novel workflows by combining Dockerized Tools, Markdown, and the LLM of your choice.

Markdown is the language

Humans already speak it. So do LLM's. This software allows you to write complex workflows in a markdown files, and then run them with your own LLM in your editor or terminal...or any environment, thanks to Docker.

Dockerized Tools

dockerized tools

OpenAI API compatiable LLM's already support tool calling. We believe these tools could just be Docker images. Some of the benefits using Docker based on our research are enabling the LLM to:

  • take more complex actions
  • get more context with fewer tokens
  • work across a wider range of environments
  • operate in a sandboxed environment

Conversation Loop

The conversation loop is the core of each workflow. Tool results, agent responses, and of course, the markdown prompts, are all passed through the loop. If an agent sees an error, it will try running the tool with different parameters, or even different tools until it gets the right result.

Multi-Model Agents

Each prompt can be configured to be run with different LLM models, or even different model families. This allows you to use the best tool for the job. When you combine these tools, you can create multi-agent workflows where each agent runs with the model best suited for that task.

With Docker, it is possible to have frontier models plan, while lightweight local models execute.

Project-First Design

To get help from an assistant in your software development loop, the only context necessary is the project you are working on.

Extracting project context

extractor architecture

An extractor is a Docker image that runs against a project and extracts information into a JSON context.

Prompts as a trackable artifact

prompts as a trackable artifact

Prompts are stored in a git repo and can be versioned, tracked, and shared for anyone to run in their own environment.

Get Started

We highly recommend using the VSCode extension to get started. It will help you create prompts, and run them with your own LLM.

Running your first loop

VSCode

Install Extension

Recommended: Download our auto-installer extension from Docker Hub: https://hub.docker.com/extensions/docker/labs-vscode-installer

or

Manually install the latest release with

code --install-extension 'labs-ai-tools-vscode-<version>.vsix'

Running:

  1. Open an existing markdown file, or create a new markdown file in VSCode.

You can even run this markdown file directly!

  1. Run command >Docker AI: Set OpenAI API Key to set an OpenAI API key, or use a dummy value for local models.

  2. Run command >Docker AI: Select target project to select a project to run the prompt against.

  3. Run command >Docker AI: Run Prompt to start the conversation loop.

CLI

Instructions assume you have a terminal open, and Docker Desktop running.

  1. Set OpenAI key
echo $OPENAI_API_KEY > $HOME/.openai-api-key

Note: we assume this file exists, so you must set a dummy value for local models.

  1. Run the container in your project directory
docker run 
  --rm \
  --pull=always \
  -it \
  -v /var/run/docker.sock:/var/run/docker.sock \
  --mount type=volume,source=docker-prompts,target=/prompts \
  --mount type=bind,source=$HOME/.openai-api-key,target=/root/.openai-api-key \
  vonwig/prompts:latest \
    run \
    --host-dir $PWD \
    --user $USER \
    --platform "$(uname -o)" \
    --prompts "github:docker/labs-githooks?ref=main&path=prompts/git_hooks"

See docs for more details on how to run the conversation loop.

Building

#docker:command=build

docker build -t vonwig/prompts:local -f Dockerfile .

Now, for the agentic workflow...

prompt system

You are an expert at reading readmes.

Read the readme for https://github.com/docker/labs-ai-tools-for-devs before answering the following questions.

prompt user

What is this project?