I'm a lawyer. I write contracts, not Python — except I also write Python, because the legal mindset turns out to be surprisingly useful for building AI agents that don't run wild.

This is about OpenSymphony, an agent framework I built and open-sourced under MIT. It's on PyPI (pip install opensymphony), has 395 passing tests, and runs on a Mac mini.

The thesis is simple. Most agent frameworks solve orchestration — how to chain LLM calls together. Almost none solve the harder problem: who is the agent, what rules does it follow, and who stops it when it's wrong.

The Problem

You've used LangChain agents. They're good at calling tools in sequence. They're bad at: