Agentspan
A durable runtime that keeps AI agents running through crashes, long waits, and human approvals.
- Source repo
- agentspan-ai/agentspan
- Stars
- ★ 499
- Last updated
- 29d ago
- License
- MIT
- Primary language
- TypeScript
- FA score
- 62/100 · Some gaps
At a glance
- How it runs
- Works with
- Universal · cross-platformOpenAI API · Claude API
- Cost
- Free software; you pay for model usage
- Setup effort
- Medium · a few setup steps
- You'll need
- Typical use
- A platform team running agents for minutes or hours—or pausing for approval for days—needs automatic continuation after a worker process fails.
- Not a fit if
- Teams expecting ongoing updates and support in this repo, which is archived and moved to conductor-oss/conductor
- Solo developers unwilling to run a server, containers, or a cluster, since durability depends on a Conductor server
- Source review
- 62/100 · Some gaps
What does this agent do, and when should you use it?
Agentspan is a durable AI-agent runtime built on Conductor and is now part of Orkes Conductor; its original repository became read-only on August 17, 2026. The repository contains a Go CLI, a Java/Spring Boot and Conductor server, a React execution UI, and Python and TypeScript SDKs, while the README also supplies a C#/.NET SDK installation command. Developers define work with Agent, AgentRuntime, and tool, then submit server-side executions that can continue after a client or worker exits and resume from the last completed step. It covers plan-execute agents, multi-agent strategies, human approval, event triggers, distributed tools, HTTP/OpenAPI/MCP integrations, code sandboxes, structured results, streaming events, and execution history. It can run locally with SQLite or be deployed through Docker, Docker Compose, Kubernetes, or Helm; new adopters should use the Conductor Agent SDK and Conductor quickstart rather than expect further development in the archived repository.
A developer describes a model, instructions, tools, sub-agents, guardrails, and output type with Agent, then submits it through AgentRuntime.run(), start(), or stream(). Python functions become executable tools through @tool, with optional credentials and approval_required=True; the runtime can also expose OpenAPI/Swagger/Postman operations, individual HTTP endpoints, and MCP servers as server-side tools. Conductor compiles a generated plan into an immutable sub-workflow and handles retries, parallelism, pauses, resumption, and execution history; if a worker crashes, another worker can resume after the last completed step. Executions can be triggered by cron, Kafka, SQS, AMQP, webhooks, or database events and can produce a final value, a typed Pydantic object, or streaming events such as tool_call, thinking, guardrail results, and done. The CLI supplies agentspan server start, stop, logs, and doctor, while the React UI displays executions at http://localhost:6767 by default. The deployment boundary ranges from local SQLite through single-node Docker/Compose to Kubernetes and Helm, with tool workloads distributed to workers written in Python, Java, Go, or other languages.
- A platform team running agents for minutes or hours—or pausing for approval for days—needs automatic continuation after a worker process fails.
- An automation team wants cron, Kafka, SQS, AMQP, webhook, or database events to launch durable runs with complete histories.
- A team with LangGraph, LangChain, OpenAI Agents SDK, or Google ADK agents wants to add persistent execution, human pauses, and cross-process access.
- An enterprise developer needs agents to invoke existing Conductor workflows, OpenAPI services, HTTP endpoints, or MCP servers as steps.
- A multi-team application needs specialists coordinated through
handoff,sequential,parallel,router,round_robin,swarm, or manual selection. - An operations team needs a visual execution history, Prometheus metrics, token accounting, and optional OpenTelemetry tracing.
How do you install or deploy this agent?
The repository is archived. New users should install a Conductor Agent SDK and begin with the Conductor agent quickstart. The README provides these SDK commands:
# Python
pip install conductor-agent-sdk# TypeScript / JavaScript
npm install @conductor-oss/conductor-agent-sdk# C# / .NET
dotnet add package conductor-agent-sdkTo reproduce the original local Agentspan CLI setup, use its installer:
# macOS / Linux
curl -fsSL https://raw.githubusercontent.com/agentspan-ai/agentspan/main/cli/install.sh | sh# Windows (PowerShell)
irm https://raw.githubusercontent.com/agentspan-ai/agentspan/main/cli/install.ps1 | iexThe CLI can alternatively be installed with npm or built from source:
npm install -g @agentspan-ai/agentspancd cli && go build -o agentspan .
agentspan doctorExisting users should follow MIGRATION.md; the README says most code requires one changed installation line and one changed import path. The final repository release is v0.4.4, and the final legacy pip install agentspan package version is 0.2.1.
How do you use this agent?
Configure credentials for a supported model provider and start the local server. This example uses OpenAI; the README also documents Anthropic, Gemini, Azure OpenAI, Vertex AI, Bedrock, Mistral, Cohere, Groq, Perplexity, DeepSeek, xAI, Hugging Face, Stability AI, and Ollama configurations.
export OPENAI_API_KEY=sk-...
agentspan server startCreate hello.py:
from conductor.ai.agents import Agent, AgentRuntime, tool
@tool
def get_weather(city: str) -> str:
"""Get current weather for a city."""
return f"72F and sunny in {city}"
agent = Agent(name="weatherbot", model="openai/gpt-4o", tools=[get_weather])
with AgentRuntime() as runtime:
result = runtime.run(agent, "What's the weather in NYC?")
result.print_result()Run it, then open the execution UI:
python hello.pyVisit http://localhost:6767. Production secrets can be stored on the server instead of embedded in code:
agentspan credentials set GITHUB_TOKEN ghp_xxxxxxxxxxxx
agentspan credentials set SEARCH_API_KEY xxx-your-key
agentspan credentials listThe README states that stored credentials use AES-256-GCM encryption at rest and are resolved by workers through scoped tokens that expire with the execution. For production, choose Docker/Docker Compose or Kubernetes with Helm using the repository's deployment guide.
What are this agent's strengths and limitations?
- Server-side executions automatically resume from the last completed step and can be inspected, approved, paused, resumed, or cancelled from another process or machine.
- Tools run as independently scalable distributed tasks and may be implemented by workers in Python, Java, Go, or other languages.
- The runtime combines durable human approval, four guardrail failure modes, execution history, a visual UI, Prometheus metrics, token tracking, and optional OpenTelemetry.
- It can turn OpenAPI/Swagger/Postman specifications, HTTP endpoints, and MCP servers into server-side tools while supporting Google ADK, OpenAI Agents SDK, LangChain, and LangGraph.
- Documented deployment paths cover local SQLite, Docker/Compose, Kubernetes, and Helm.
- The original repository has been archived since August 17, 2026; features, issues, and contributions moved to
conductor-oss/conductor, so adoption requires following the migration path. - The defining durability features depend on a Conductor server rather than a standalone in-process library.
- Local use requires a running server and model-provider credentials, while production adds operational work for containers, clusters, monitoring, and workers.
- Plan-execute mode freezes the emitted plan into an immutable Conductor sub-workflow, which may not suit workflows that must continually rewrite their orchestration during a run.
- The README demonstrates broad functionality but supplies no performance, capacity, latency, or cost benchmarks for the documented deployment modes.
How does this agent compare with similar options?
The README compares Agentspan with CrewAI, LangChain, AutoGen, and OpenAI Agents. Its stated differentiators are server-side durable executions, automatic crash recovery, cross-language distributed tools, and human approvals that remain paused across machines; the comparison describes the alternatives as primarily in-memory, client-side, or dependent on separately configured checkpointing. Agentspan can also wrap rather than replace existing LangGraph, LangChain, OpenAI Agents SDK, and Google ADK definitions. The tradeoff is the need to operate Conductor infrastructure, so a lightweight, single-process agent loop may have a smaller deployment footprint in another framework.
Key facts side by side with the most closely related agents.
| Agent | Source review | Form / cost | Stars | Updated | Language | Full support on |
|---|---|---|---|---|---|---|
| Agentspan This agent | 62 · Some gaps | CLIFree + model costs | ★ 499 | 29d ago | TypeScript | OpenAI API · Claude API |
| Dagu Workflow Orchestrator | 74 · Some gaps | CLIFreemium | ★ 4.4k | today | Go | Codex · Claude Code · Claude API |
| Conductor Workflow Engine | 68 · Some gaps | CLIFree + model costs | ★ 32k | 1d ago | Java | Claude Code · OpenAI API · Claude API |
| Trigger.dev | 57 · Major gaps | Library / SDKFreemium | ★ 17k | today | TypeScript | — |
How does FollowAgents rate this agent?
Why each dimension lost points
README documents AES-256-GCM encrypted credential storage, subprocess isolation for tools, and scoped execution tokens that expire — least privilege and sensitive-data handling are supported in text but not verifiable in the provided code, hence not full marks. HITL via approval_required gives durable human confirmation; deducted because isolation strength is unverified. pyproject declares zero dependencies, so dependency security cannot be assessed; external effects (HTTP/MCP/code-executor tools) are richly described but protective defaults are undocumented; rollback covers execution resume only, not side-effect undo; MIT license and copyright are clear.
Self-consistency is weak: README says final PyPI version is 0.2.1 while pyproject says 0.1.0, and the install name is conductor-agent-sdk against repo name agentspan. Dependency availability is supported by multi-language SDKs and Java/C# e2e CI workflows plus an agentspan doctor command; failure surfacing is partly shown via health endpoints and guardrail failure modes, but message quality is not evidenced in source.
Broad coverage: 4 language SDKs, 15+ LLM providers, cron/Kafka/SQS/AMQP/webhook/DB triggers, multiple multi-agent strategies; trigger precision supported by guardrails (4 failure modes) and router strategy; environment fit notes Python>=3.9 and cross-platform install; deducted because capability boundaries (planner failure, quotas, limits) are not explicitly documented.
Good information architecture (docs, API reference, migration guide, example index) and very complete install instructions (macOS/Linux/Windows/source/npm) justifying full marks; but naming stability is poor during the migration (agentspan vs conductor-agent-sdk vs conductor.ai imports); 180+ examples are indexed; known limitations are undocumented; MIT license is complete; final release v0.4.4 stated but no changelog file shown; maintenance responsibility is clear — merged into Orkes Conductor, archived, issue path redirected.
Output usability is served by typed Pydantic outputs, streaming events, and print_result; marginal value lies in server-side durable execution, crash recovery, and cross-process approvals vs in-memory frameworks; cost/benefit claims (token tracking, Prometheus) are asserted without measurement data, hence a deduction.
Claims are traceable to named example files and CI workflows (manual-dispatch e2e exist), but core claims (encryption, sandboxes, auto-resume) cannot be confirmed within provided files; cross-source corroboration is weak due to version/package-name contradictions; fact/inference separation is poor — marketing language and a competitor comparison table are mixed with facts without sources.
- This repository is archived and read-only; new projects should target conductor-oss/conductor using the migration guide.
- The curl | sh remote install script carries supply-chain risk; download and inspect before executing.
- Version and package-name inconsistencies (README 0.2.1 vs pyproject 0.1.0; agentspan vs conductor-agent-sdk) require verification before installing or upgrading.
- Security claims (encryption, sandbox isolation, crash recovery) were not verified by code inspection or execution in this static review.
- The eval(expression) pattern in examples should only be used in controlled environments, never copied to production.
Recent releases
Latest entries from the project's GitHub Releases. Notes are quoted from upstream as written, not rewritten or tested by FollowAgents.
-
v0.4.4 Pre-release
Release notes excerpt
What's Changed * refactor(server): unify credential storage on Conductor's SecretsDAO by @v1r3n in https://github.com/agentspan-ai/agentspan/pull/314 Full Changelog: https://github.com/agentspan-ai/agentspan/compare/v0.4.3...v0.4.4View on GitHub ↗ -
Release notes excerpt
What's Changed * test(e2e): Python media-input suite (image → vision model) by @ling-senpeng13 in https://github.com/agentspan-ai/agentspan/pull/301 * feat(e2e): export SDK e2e suites as versioned release bundles by @ling-senpeng13 in https://github.com/agentspan-ai/agentspan/pull/295 * feat(server): classifier-based agent filtering on list and executions search by @bradyyie in https://github.com/agentspan-ai/agentspan/pull/306 Full Changelog: https://github.com/agentspan-ai/agentspan/compare/v0.4.0...v0.4.2View on GitHub ↗ -
Release notes excerpt
What's Changed * test(e2e): Python media-input suite (image → vision model) by @ling-senpeng13 in https://github.com/agentspan-ai/agentspan/pull/301 * feat(e2e): export SDK e2e suites as versioned release bundles by @ling-senpeng13 in https://github.com/agentspan-ai/agentspan/pull/295 * feat(server): classifier-based agent filtering on list and executions search by @bradyyie in https://github.com/agentspan-ai/agentspan/pull/306 Full Changelog: https://github.com/agentspan-ai/agentspan/compare/v0.4.0...v0.4.1View on GitHub ↗
FAQ
Should a new project still start from the Agentspan repository?
MIGRATION.md.Does a worker crash lose the entire execution?
Is the runtime locked to OpenAI models?
Can sensitive tool calls require human permission?
approval_required=True; its execution pauses durably and can be approved or rejected days later from another process or machine.