Work in Progress
Agents and model clients as Wasm components that run on composable-runtime. The WIT they implement is in components/agents.
AgentService handles [model] and [agent] definitions. Each becomes a
component with the definition's name.
[model.local]
provider = "ollama"
name = "gpt-oss:20b"| Property | Required | Description |
|---|---|---|
provider |
yes | anthropic, ollama or openai (more to come) |
name |
yes | the provider's model name |
max-tokens |
no | the default limit on output tokens per call, overridden by the agent's settings or request |
[agent.assistant]
model = "local"
description = "Answers questions concisely"
version = "0.1.0"
instructions = "Answer in one or two sentences."| Property | Required | Description |
|---|---|---|
model |
yes | the name of a [model] |
description |
yes | the agent's description, in its metadata |
version |
yes | the agent's version, in its metadata |
instructions |
no | the model's system instructions |
The agents CLI lists and invokes the agents in one or more definition files.
cargo install --path crates/cliagents list prints each agent's metadata as JSON, keyed by component name:
agents list config.tomlagents invoke sends a message to an agent as a new task. The message is the
argument after the agent's name (or stdin if none is given). The artifact text
streams to stdout, and the task's status, finish reason and usage go to
stderr. It exits successfully only when the task completes.
agents invoke config.toml -- assistant "Why is the sky blue?"See examples/chat-agent.
Copyright (c) 2026 Modulewise Inc and the Composable Agents contributors.
Apache License v2.0: see LICENSE for details.