Lightweight launcher for local AI agent workflows
Project description
aop_launcher
Agent Orchestration Platform Launcher.
aop_launcher is a tiny terminal runner for local AI agent workflows. It reads
a YAML file, runs agents in sequence, optionally runs local shell tools for each
agent, sends the prompt to either a local command or an OpenAI-compatible chat
completion endpoint, and streams the result to the terminal.
This first 0.0.1.dev0 release is intentionally small. It does not provide
remote execution, scheduling, retries, memory stores, or a hosted service.
Install
This package is published as a source distribution only. The example workflows
are downloaded from https://aopexamples.assetone.workers.dev/latest_examples.zip
during the source build.
Install from PyPI (forces a source build):
pip install --no-binary aop-launcher aop-launcher
Install from a local checkout:
pip install .
To skip the examples download (for example, in an offline or locked-down environment), set:
export AOP_LAUNCHER_SKIP_EXAMPLES_DOWNLOAD=1
pip install --no-binary aop-launcher aop-launcher
To pin the downloaded archive to a known SHA256 digest:
export AOP_LAUNCHER_EXAMPLES_SHA256="<sha256-digest>"
pip install --no-binary aop-launcher aop-launcher
OpenAI-compatible workflow
Use this with local or hosted inference servers that expose
/v1/chat/completions:
llm:
provider: openai-compatible
base_url: "https://api.openai.com/v1"
api_key_env: "OPENAI_API_KEY"
model: "gpt-5.4-mini"
temperature: 0.2
max_completion_tokens: 800
agents:
- name: assistant
system: "You are a concise, practical assistant."
prompt: |
Answer this request:
{input}
Run it:
aop-launcher workflow.yml "Draft a release checklist"
Common endpoint settings can be overridden from the terminal:
aop-launcher workflow.yml "hello" \
--base-url https://api.openai.com/v1 \
--model gpt-5.4-mini \
--api-key-env OPENAI_API_KEY
If neither api_key nor api_key_env is configured, no Authorization header
is sent.
Command workflow
llm:
command: "ollama run llama3.2"
tools:
now: "date"
agents:
- name: planner
tools: ["now"]
prompt: |
Create a short plan for this task:
{input}
Tool results:
{tool_results}
- name: writer
prompt: |
Write the final answer from this plan:
{input}
Run it:
aop-launcher workflow.yml "Draft a release checklist"
You can also pass the LLM command from the terminal:
aop-launcher workflow.yml "hello" --llm-command "ollama run llama3.2"
Prompt variables
Agent system and prompt templates can use:
{input}: previous agent output, or the initial terminal input for the first agent.{initial_input}: original terminal input.{tool_results}: output from shell tools configured on the current agent.{history}: prior agent outputs with agent names.
JSON output
Set output_format: json on an agent to require valid JSON output:
agents:
- name: classifier
output_format: json
prompt: |
Return valid JSON with keys: severity, summary.
{input}
The JSON text is passed to the next agent unchanged.
Fanout
Use fanout to run several sub-agents against the same input and join their
outputs:
agents:
- name: review_pack
fanout:
- name: correctness
prompt: "Review for correctness: {input}"
- name: tests
prompt: "Review for missing tests: {input}"
Fanout children run sequentially. This is a small fanout/join helper, not a DAG engine.
Conditions
Use condition.input_contains to skip an agent unless the previous output
contains a string:
agents:
- name: refine
condition:
input_contains: "NEEDS_REFINEMENT"
prompt: "Refine this: {input}"
Add negate: true to run only when the previous output does not contain the
string.
Examples
Sample workflows are downloaded during the source build and installed at
aop_launcher/examples/ inside the package. They include:
adr_writer.ymlbug_triage.ymlopenai_basic.ymlcommit_message.ymlconditional_refine.ymlresearch_brief.ymlcode_review.ymldependency_risk_review.ymlincident_postmortem.ymljson_output.ymlparallel_review.ymlpull_request_review.ymlrelease_notes.ymlshell_tools.ymltest_plan.yml
Tool safety
Workflow tools are raw local shell commands. Only run workflows you trust.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file aop_launcher-1.0.0.tar.gz.
File metadata
- Download URL: aop_launcher-1.0.0.tar.gz
- Upload date:
- Size: 10.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.15
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a12868b0846862ff39a960868ca1780fe466a35caed5f71b6cedb2df74c959ed
|
|
| MD5 |
d20d68d05adbb2a6bbba42dec19e70bf
|
|
| BLAKE2b-256 |
0bf1e163790b30368f03da72fa7fc58270601d36ea21ccace67781fad0c4b1cb
|