add Recursive Self Improvement To Your Application

Give your favorite coding agent the auditable telemetry, evaluation datasets, skills, and execution history needed for recursive self improvement, with Junjo.

Open SourceApache 2.0
Get started

Junjo Python SDK

Installed in your application.

AI application building blocks and telemetry instrumentation for recursive self improvement.

  • Keep your coding agent
  • Keep your agent framework
  • Or build fully with Junjo

Junjo AI Studio

Lightweight telemetry and data layer.

High performance telemetry and evaluation suite optimized for AI agents and human observation.

  • Self-hostYour infrastructure. Your telemetry.
  • High performance. Small footprint.Small VM deployment · Shared vCPU · < 1GB RAM

Diagnose failures without hallucination

Connect application outcomes to the execution chronology that produced them. Your coding agent can replay events, inspect the sequence of operations, investigate intermediate results, and identify which step needs to change.

This telemetry and diagnostic layer is the primary foundation of recursive self improving apps.

Replay scenarios against prompt and agent changes, at scale
ABaseline

Failed steps

BCandidate

Passing steps


Optimized for coding agents.

  • ChatGPT Codex
  • Claude Code
  • Pi Agent
  • OMP
  • OpenCode
  • Cursor
  • Grok Build
  • etc.

Your agent maintains control.

Work through your favorite coding agent. Describe what you want to improve in natural language.

Your coding agentExample request
You

Investigate the failed cases in our refund workflow, make a targeted improvement, and compare it against the baseline.

Junjo includes skills so your coding agent knows exactly how to run a self-improvement cycle.

  1. 01

    Coding agent

    Your chosen coding agent

  2. 02

    Junjo CLI

    Optimized for agents

  3. 03

    Detailed chronology

    Audit the events in context

  4. 04

    Code changes

    Improve your application

  5. 05

    Run again & compare

    Assess outcome differences in detail

Evidence informs the next iteration.

Build Targeted Datasets
Rapidly test and eval changes.

Give your coding agent repeatable scenarios for the application behavior you want to improve. Target an entire application, a workflow, an agent, or a single operation. Store the cases and evaluation criteria in Junjo, then run them against changes in your own application environment.

Your Agent Creates and Stores Datasets

Run the scenarios through your local code changes

Every run recorded for comparison

Keep the test cases consistent while your implementation changes. Junjo connects each evaluation outcome to its execution chronology, so you and your coding agent can investigate differences throughout the flow.

  1. Describe what you want to test.

    Ask your coding agent in natural language. Tell it which behavior matters and what a good outcome looks like. Your agent turns that request into a targeted dataset.

    “Create a refund evaluation dataset from our recent failed requests. Add scenarios for missing receipts, partial returns, and policy exceptions.”
  2. Build on real usage. Explore new scenarios.

    Your coding agent can use available execution history and real-world examples to author cases, or create synthetic scenarios that explore behavior you have not encountered yet. Combine common requests, known failures, and edge cases in the same dataset.

  3. Define success and keep it consistent.

    Work with your coding agent to define the evaluation criteria. Generated answers are examples, not automatically the correct outcome. Have your agent lock the dataset in Junjo so later experiments use the same cases and criteria.

  4. Ask your agent to run the evaluation.

    Your coding agent retrieves the dataset and runs it through your application and evaluators in your own environment. Junjo stores the outcomes and linked execution evidence, keeping the results available for investigation and comparison.

  5. Make a change. Ask what improved.

    Ask your coding agent to test a code or prompt change against the same dataset. It can compare outcomes, investigate the traces behind regressions, and explain what the experiment revealed before choosing the next improvement.

Find a simpler path to better results.

Execution evidence helps your coding agent identify requests that mix too many responsibilities. Junjo helps you strategically break down monolithic agent steps into simpler tasks that can be individually evaluated and iterated on.

Shop supportAI assistant
Customer

Hi, I’d like a refund for order #1048. One of the items arrived damaged.

Thinking

Monolithic Agent Query

GPT-6 Astra Medium

Accuracy
94%
Execution
20s
Job cost
$0.12

Optimized With Junjo

GPT-5.6 Luna High

IntakeRunConcurrentdistill order historydistill product policydistill payment ledgerSynthesis
Accuracy
95%
Execution
3s
Job cost
$0.0025
same outcome, example execution change

A powerful model can take on a complex request. Junjo helps your coding agent explore how to accomplish the same task with smaller, cheaper, faster models—and evaluate whether the new flow performs better.

Building blocks
for improving AI apps

Junjo’s Python SDK's building blocks include specialist agents, structured workflows, dynamically traversed graphs, and an application state management system. These are used by your coding agent to break down monolithic prompts into optimized flows, with granular control and observability.

RunConcurrent

Scale and optimize high-volume repetitive tasks.

Build structured workflows from a graph of nodes and conditional edges. An LLM can interpret a request and write its routing decision into application state. The graph dynamically traverses the matching edges, combining LLM reasoning with explicit application logic.

Turn repeated application tasks into reusable execution paths. Keep the operations predictable, route each request through the work it needs, and evaluate individual nodes or the complete workflow as you optimize for volume, latency, and quality.

Explore structured workflows
RequestIntake LLMWrites state.routeAsk the customerResolve the requestSpecialist review

Change the scenario to follow the LLM’s routing decision.

state.route = "resolve" Resolve the request

The intake LLM records route = "resolve" in application state. The matching edge continues to refund assessment.

Extend your agent framework
with Junjo.

Keep your existing agents, conversations, and tools. Connect their execution to Junjo AI Studio, and expose Junjo SDK workflows or specialist agents as tools to go deeper in recursive self improvement optimization.

Available for PythonOpenAI Agents SDK

Your OpenAI agent. Junjo tools inside.

Expose a Junjo SDK workflow or specialist agent as a native function tool. The OpenAI Agents SDK keeps its agent loop, sessions, handoffs, and guardrails.

OpenAI agent activity and nested Junjo execution appear together in Junjo AI Studio through one OpenTelemetry pipeline.

Explore the OpenAI Agents SDK integration
OpenAI Agents SDKAgent loop · Existing toolsTool callResultJunjo SDKWorkflow or specialist agentShared execution telemetryJunjo AI Studio
OpenAI Agents SDKAgent loop · Existing tools
Junjo SDKWorkflow or specialist agent

Tool call Result

Shared execution telemetryJunjo AI Studio

Start with your existing application. Add Junjo capabilities one at a time.

Call any model,
however you want

Call models the way you already do: directly through a provider’s SDK, through a library such as LiteLLM, or through a gateway such as OpenRouter. Junjo adds structured execution, shared state, and auditable telemetry around those calls.

Choose the right model for each step, then compare quality, latency, and cost against the same evaluation datasets. Improve your application while keeping control of how you access and use models.

Model providers

Use their SDKs or compatible APIs.

  • OpenAI
  • Anthropic
  • Google Gemini
  • xAI
  • Mistral
  • DeepSeek
  • Qwen
  • Kimi
  • Z.ai
  • MiniMax

Model libraries

Keep your abstractions and structured output tools.

  • LiteLLM
  • Instructor

Gateways & inference

Call through your cloud, gateway, or local model server.

  • OpenRouter
  • Amazon Bedrock
  • Azure AI
  • Vertex AI
  • Groq
  • Ollama
  • vLLM

Your application makes the model calls. Junjo connects instrumented execution to state updates, traces, and evaluation outcomes.

Your coding agent investigates.
You can inspect the evidence.

Give your coding agent access to the execution history and evaluation outcomes needed to orchestrate a recursive self improvement cycle. It can investigate failures, make targeted changes, run evaluations, and explain the results with deep links into Junjo AI Studio.

You and your coding agent can look at the same data, down to the operations, intermediate results, and state changes behind an outcome.

Junjo instrumented refund workflow
Your coding agent’s investigation
Junjo AI Studio

Investigate improper AI outcome from the production application’s telemetry stored in Junjo AI Studio.

Refund workflow
Order history
Product policy
Payment ledger
Synthesis

Product policy Input → Output

Item condition
Damaged on arrival
Selected policy
Standard return
Decision
Refund rejected

Use the failed request and its execution evidence to create an eval case. Define the expected outcome, then include it with the existing scenarios to test the fix and check for regressions.

Make every experiment useful to the next one.

Keep each dataset and its case outcomes connected to the application revisions and execution traces that produced them. Your coding agent can follow a case across previous runs, investigate recurring failures, and use that history to choose its next change.

Each iteration adds evidence that helps guide the next experiment.

Earlier experiment

Revision · Results · Traces

Latest experiment

Revision · Results · Traces

Inform the next change

The history remains available to both your coding agent and your team.

Keep your coding agent.
Keep your application stack.

Run experiments in your application codebase, with your existing agent framework and preferred coding agent. Junjo supplies the telemetry and evaluation building blocks that make the results auditable and comparable.

01

Your coding agent

Investigates evidence, changes code, runs experiments, and proposes the next iteration.

Develop & improve
02

Your application

Executes its real workflows, tools, dependencies, and evaluators.

Execute & evaluate
03

Junjo

Supplies telemetry, evaluation tooling, datasets, results, and queryable execution evidence.

Observe & measure

Give your coding agent the evidence for its next improvement.

Get started