Skip to content

Coding agents + agent runtimes

A coding agent or agent runtime is what actually runs an agent — loads its skills, manages its session, calls the LLM, executes tool calls, streams results back. It can be a CLI tool you launch (Claude Code, Pi Coding Agent, Codex) or a programmatic SDK you embed (Claude Agent SDK, OpenAI Agents SDK, LangGraph).

LIFEOSAI’s orchestration substrate doesn’t care which one you use. It needs an adapter contract — system prompt + working directory + tools + streaming response — and any runtime that meets it works.

What’s in production today

RuntimeShapeStatusNotes
Claude CodeCLI tool · embeds Claude Agent SDK✅ Production · defaultAll 40 production agents use it today. Long-form reasoning, careful editing, multi-file context, MCP, skills, sessions.
Claude Agent SDKTypeScript / Python SDK✅ ProductionSame backend as Claude Code; called programmatically from inside applications.
Pi Coding AgentCLI tool · open source✅ Production-readyCustom; supports local OSS models. Pluggable backend. Reaches MCP, skills, permissions same as Claude Code.

Where we are heading

RuntimeShapeWhy we plan to add it
OpenAI CodexCLI / SDKOpenAI’s coding agent — pairs with GPT-5 reasoning
Google Gemini agentCLI / SDKWhen Gemini’s agent surface stabilises and matches the contract
OpenAI Agents SDKSDKProgrammatic OpenAI-shaped agents
LangGraphSDKGraph-shaped multi-agent flows
OpenClawCLIAutonomous loops with tool use

Anything that meets the adapter contract lands here. The pillar is open — we add good runtimes as they ship.

CLI vs SDK — what’s the difference?

CLI coding agentSDK
Exampleclaude (Claude Code), pi-coding-agent@anthropic-ai/claude-agent-sdk, openai-agents
How you invokeSpawn a subprocess; pipe a prompt; read streamed outputImport a library; call a function; await a response
Where state livesFilesystem (sessions/, skills/, MCP servers)In your process memory + your DB
Best forInteractive sessions, long-running tasks, file-system workEmbedding agents inside your own product
LIFEOSAI’s useDefault for engineers working on casesUsed by orchestration internally to invoke runtimes

Both serve the same role: take a system prompt + tools + memory and run an agent session. The adapter pattern lets you mix them — one agent uses Claude Code, another uses an embedded Claude Agent SDK, a third uses Pi Coding Agent for OSS-model workloads.

The adapter contract

The orchestration substrate (LIFEOSAI’s agent-invoker) reads each agent’s adapterConfig.adapterType and dispatches to the right runtime:

type AdapterConfig = {
adapterType: 'claude-code' | 'pi-coding-agent' | 'codex' | ...;
model: string; // claude-sonnet-4-6 · gpt-5 · etc.
mcpServers: McpServer[];
systemPrompt: string;
workingDirectory: string;
// ...
};

For non-Claude runtimes (e.g. Pi Coding Agent), the Event Normalizer in the Runtime Tier converts their streams to a unified SDKMessage shape so downstream code sees one event format.

What an agent actually is

An agent is NOT an LLM. An agent is:

  • an LLM (the brain — see LLM provider freedom)
    • a coding agent / SDK (the runtime — this page)
    • skills (markdown instructions for specific work patterns)
    • tools (MCP servers — Gmail, Drive, ERP, your APIs)
    • memory (files, sessions, filesystem workspace)
    • a place in the org chart (reports to a manager, works in a project)

The runtime is one piece. The structure around it is what makes the agent useful for real work.