Skip to content

Agent SDKs — programmatic agent runtimes

This page is the SDK angle of Pillar 01 · Coding agents + agent runtimes. The two pages cover the same pillar:

  • /system/harnesses/ — the runtime view (CLI tools + SDKs together, with the adapter contract)
  • /system/agent-sdks/ (this page) — the SDK view (embedded library interfaces, when you build an app around an agent rather than running it as a CLI)

If you’re choosing between a CLI like Claude Code and an embedded SDK like Claude Agent SDK, start at harnesses. If you’re already committed to embedding an SDK and want to know which one, read on.

When an SDK (rather than a CLI)

You embed an SDK when:

  • You want agent capabilities inside your own application or service — not a separate CLI process
  • You need fine-grained control of session lifecycle, streaming, and tool registration
  • You’re building a custom front-end on top of the orchestration substrate
  • You’re writing agents that other agents invoke programmatically

You’d use a CLI like Claude Code when:

  • The agent runs against a filesystem (a repo, a casefile folder)
  • You want a unified session/skill/MCP model you don’t have to reinvent
  • You’re invoked by the orchestration runner as a subprocess

Both shapes plug into the same LIFEOSAI adapter contract. The choice depends on where your agent’s work happens.

SDK options today

SDKStatusStrengths
Claude Agent SDK (TS + Python)✅ ProductionThe SDK behind Claude Code. Mature MCP, skills, sessions, hooks. Long-context reasoning.
Pi Agent SDK✅ Production-readyThe SDK behind Pi Coding Agent. Open-source, OSS-model friendly, custom permissions model.

SDK options planned

SDKWhy we plan to add it
OpenAI Agents SDKOpenAI-shaped agents with function calling. Pairs with GPT-5.
LangGraphGraph-shaped multi-agent flows when the structure matters more than the SDK choice.
CustomWhen none of the above fit, the contract is open — implement the adapter interface and you’re in.

What an SDK provides

ConcernWhat the SDK exposes
Tool definitionsA way to declare functions or MCP servers an agent can call
Streaming protocolHow tokens, tool calls, and results stream back to your code
Session shapeWhat “conversation state” looks like + how it serialises
Hook pointsSessionStart, PreCompact, UserPromptSubmit, PostCompact
Skill loadingHow .md skill files get discovered and injected
PermissionsWhat tools can be invoked without explicit user approval

How LIFEOSAI invokes any SDK

The orchestration substrate doesn’t import any specific SDK. Each agent’s adapterConfig tells the engine which runtime to dispatch to. The agent-invoker resolves the adapter, spawns or imports the right runtime, streams events back through the Event Normalizer (which unifies non-Claude streams to a single SDKMessage shape), and persists the run.

This is what “any SDK” means at the code level — the orchestration code doesn’t change when you swap which SDK an agent uses.