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.

Make eval-driven development practical with 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.

One-shot Recursive Self Improvement

Recursive self improvement starts with a single prompt. Junjo’s evaluation datasets, evaluator telemetry, and coding-agent skills let your agent target failure modes, generate scenarios, build evaluator judges, and run experiments.

Your coding agent owns and runs the code. Junjo AI Studio coordinates the experiment data and telemetry as a single source of truth across multiple agents, work trees, and team members. Scale up and run unlimited fan-out recursive self improvement cycles in parallel.

Your coding agentExample request
You

Use Junjo to investigate recent customer service agent failures, build evaluator judges and datasets of new scenarios based on our customer interactions, and iterate until we handle these correctly.

Target the failure modes. Measure the progress.

Cases passed / cases evaluated

Example refund evaluation progress. Each failure mode has ten test cases, evaluated across the same five runs.
Failure modeBaselineExperiment 01Experiment 02Experiment 03Refined flow
Damaged items
0 / 10
2 / 10
6 / 10
8 / 10
10 / 10
Missing receipts
2 / 10
4 / 10
7 / 10
9 / 10
10 / 10
Partial returns
1 / 10
3 / 10
4 / 10
7 / 10
9 / 10
Already refunded
4 / 10
5 / 10
8 / 10
9 / 10
10 / 10
Split payments
0 / 10
2 / 10
4 / 10
6 / 10
9 / 10
Expired return windows
3 / 10
4 / 10
6 / 10
8 / 10
10 / 10
Gift returns
2 / 10
3 / 10
5 / 10
8 / 10
9 / 10
Policy exceptions
0 / 10
1 / 10
4 / 10
7 / 10
9 / 10
Overall pass rate15%30%55%78%95%
Example results across the same 80 cases. Each row groups ten variations of a failure mode.

The engine of
recursive self improvement.

Each experiment gives your coding agent evidence for the next one. It can harvest failure modes from application telemetry, turn them into targeted datasets and evals, and test prompt or code changes against a baseline.

  1. Harvest real failure modes.

    Investigate production execution history and evaluation failures to identify the behavior that needs attention.

  2. Build the next evaluation.

    Create scenarios from observed failures, add synthetic variations, and define what success means. Lock the dataset to keep subsequent experiments comparable.

  3. Experiment, compare, repeat.

    Run prompt and code changes through the same cases. Inspect the outcomes and traces, check for regressions, and use the findings to guide the next change.

Make improvement a recurring task.

Your scheduleHarvestRunEvaluateImproveJunjo preserves evidence for the next cycle

Schedule this cycle through your coding agent’s automation or your existing scheduler. Ask it to harvest new failure modes, develop datasets and evals, run experiments with prompt changes, and report the evidence.

Your coding agent orchestrates the work; your application runs it; Junjo preserves the data for the next cycle.

Large Scale Parallel Improvements

HarvestRunEvaluateImprovefeature_afeature_bfailure_mode_1failure_mode_2JunjoAI StudioShared datasetsEvaluation resultsExecution telemetryIndependent cycles · Shared evidencefeature_aHarvestRunEvaluateImprovefeature_bHarvestRunEvaluateImprovefailure_mode_1HarvestRunEvaluateImprovefailure_mode_2HarvestRunEvaluateImproveJunjo AI StudioShared datasetsResults · Telemetry

Unleash recursive self improvement with fan-out strategies to test multiple architectures and approaches at once, or to handle several failure modes in parallel.

Run independent recursive self improvement cycles for feature_a, feature_b, failure_mode_1, and failure_mode_2. Each coding agent works in its own work tree, harvesting failures, running experiments, evaluating outcomes, and improving its target with Junjo. Junjo AI Studio brings their results and telemetry together so you can compare improvements and direct the next round of work.

Explore eval-driven development with Junjo

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