docker model runnerยท

Inviting Docker Agent into Sidekicks

Add a Docker Agent, powered by a small local model, to Sidekicks: configuration, the add-agent wizard, tool permissions, files, terminal, channels and settings.

As I explained in the previous blog post (Sidekicks: AI agents for citizen users/developers), Sidekicks is an ACP (Agent Client Protocol) client that lets you chat with several AI agents, as long as they know how to "speak ACP". And it turns out that one of my favorite agents, Docker Agent, speaks ACP perfectly ๐ŸŽ‰. So it's the perfect opportunity to make it our first guest in Sidekicks.

Let's start by creating our agent's configuration.

Docker Agent configuration

In a locutus folder, I created an agent.yaml file with the following content:

yaml
providers:
  dmr:
    api_type: openai_chatcompletions
    base_url: http://127.0.0.1:12434/v1

agents:

  root:
    model: mellum
    description: A local code agent, powered by a small LLM.
    instruction: |
      Your name is Locutus. You are a developer expert.
      You act as a mentor and coding partner. 

      # Tool discipline

      Built-in tools:
      - shell: use the `shell` tool to explore the project, read files, or run commands.
        Chain commands as long as it is useful, then give a clear final answer.

      # Style

      Be concise. Prefer a small, correct, compilable example over prose.

    toolsets:
      - type: shell

models:
  mellum:
    provider: dmr
    model: huggingface.co/jetbrains/mellum2-12b-a2.5b-instruct-gguf-q4_k_m:Q4_K_M

For this agent, I use Docker Model Runner to serve the mellum2-12b-a2.5b-instruct-gguf-q4_k_m model. But Docker Agent knows plenty of other providers, so I'll let you adapt the configuration to your needs.

Adding the Docker Agent to Sidekicks

Once Sidekicks is running, click the "+ Add an agent" button at the bottom of the left sidebar, then select "On this computer" in the central panel. In the "Program" text field, pick docker-agent:

Add agent
Add agent

Then, if you drag'n drop the agent.yaml file onto the "The agent's configuration file" area (or use the "Choose a file" button), the rest of the settings will be filled in automatically:

Settings
Settings

And finally, click "Add the Agent", and Locutus will show up in the left sidebar:

Locutus
Locutus

Now, you can interact with your agent:

Completion
Completion

If the agent has been configured for it, you'll have to confirm every tool execution:

Allow tool execution
Allow tool execution

You can also browse the files in the agent's workspace:

Files
Files

Or even open a terminal in the same place:

Terminal
Terminal

Using channels

You can also talk to several agents "in the same place" thanks to channels. Just look up your agent with the @ key:

Channels
Channels

And then send it a question:

Channels
Channels

โœ‹ Important: the agents in a channel share the conversation history ๐Ÿค“

And finally, the settings

If you click the "Settings" button, at the bottom right of the Sidekicks window, you can edit your agents' settings:

Settings
Settings

You can also use the settings editor to add agents manually instead of going through the wizard we saw at the beginning of this post.

That's it for this first contact. Next time, we'll see how to use our agents in a similar way, but more securely, first with a container, and then, fully secured, with Docker sbx.