Getting Started¶
1. Install¶
pip install -r requirements.txt
pip install -e .
If the epsilon command is not on your PATH, use python -m epsilon ....
2. Set a Model Key¶
Required for built-in topologies (dag, pipeline, supervisor, tree):
export OPENAI_API_KEY=...
# or
export ANTHROPIC_API_KEY=...
3. Create Your First Run¶
epsilon runs create \
--topology dag \
--task "Create a file named hello.txt containing exactly: hello world"
4. Inspect the Run¶
epsilon runs list
epsilon runs get <run_id>
epsilon artifacts list <run_id>
epsilon logs tail <run_id>
5. Use Your Own Implementation¶
Point any run at your own Python function:
epsilon runs create \
--topology dag \
--task "Write hello.txt with hello world" \
--implementation python:examples/epsilon_sdk/function_adapter_example.py:run
Register an implementation to reuse it by name:
epsilon implementations register hello-worker \
--from python:examples/epsilon_sdk/function_adapter_example.py:run \
--description "Function-based starter adapter"
epsilon runs create \
--topology dag \
--task "Write hello.txt with hello world" \
--implementation hello-worker
6. Other Topologies¶
epsilon runs create --topology pipeline --task "Write a short markdown report"
epsilon runs create --topology supervisor --task "Create a file named result.txt with exact content"
epsilon runs create --topology sharded_queue --task-manifest manifests/large-job.json
Where Files Go¶
- Runs are recorded under
runs/<run_id>/. - Each run includes
epsilon_run.json,run.log, and usuallyrun_summary.json. - SDK adapters should write files inside
input["workspace"].
Next¶
- Topologies — choosing the right pattern
- Epsilon SDK — plugging in your own implementation
- LangChain / LlamaIndex — framework-specific guides