This prompt is for AI engineers and platform developers building tool-use systems where a model's generated function call payload—specifically its JSON arguments—is truncated or interrupted mid-generation. The core job is to repair a partial JSON argument set using available conversation context, flag any arguments that cannot be reliably recovered, and produce a decision on whether to execute the call, re-request missing information from the user, or abort safely. This is a production reliability component, not a general-purpose chat fix.
Prompt
Incomplete Function Call Recovery Prompt

When to Use This Prompt
Define the job, reader, and constraints for the Incomplete Function Call Recovery Prompt.
Use this prompt when your system streams model outputs and tool calls can be cut off by token limits, connection drops, or mid-stream cancellation. It is appropriate for voice assistants, real-time copilots, and any agent loop where a partial function call must be salvaged to avoid a dead-end turn. The prompt expects a structured input containing the partial JSON payload, the function schema, and the preceding conversation context. It is not designed for repairing malformed JSON caused by model hallucination or schema violations—those failures belong to output repair and validation playbooks. Do not use this prompt when the function has side effects that cannot be safely rolled back; in those cases, always abort and re-request confirmation from the user.
Before wiring this into your application, define clear thresholds for unrecoverable arguments. The prompt distinguishes between arguments that can be inferred from context with high confidence and those that require user clarification. You must pair this prompt with a validation harness that checks the repaired JSON against the function schema before execution. For high-risk domains such as finance or healthcare, always route the repaired call to a human approval queue rather than executing automatically. The next step is to integrate this prompt into your tool-calling pipeline immediately after a truncation event is detected, and to log every repair decision for observability and regression testing.
Use Case Fit
Where the Incomplete Function Call Recovery Prompt works, where it fails, and the operational conditions required before you depend on it in production.
Good Fit: Deterministic Tool Contracts
Use when: your function schema has required fields, strict types, and a narrow set of valid values. The model can infer missing arguments from conversation context because the parameter space is constrained. Guardrail: validate repaired JSON against the exact function schema before execution; reject any call that introduces new keys or violates enum constraints.
Bad Fit: Ambiguous or High-Cost Actions
Avoid when: the function performs destructive operations, financial transactions, or actions with irreversible side effects. A hallucinated argument recovered from context could trigger a wrong payment, deletion, or send. Guardrail: require explicit user confirmation for any repaired argument that differs from what the user explicitly provided; never auto-execute recovered calls in high-risk domains.
Required Inputs: Truncated Payload Plus Conversation Context
Use when: you have the partial function call JSON, the full conversation history, and the function schema with field descriptions. Without all three, recovery quality degrades sharply. Guardrail: if conversation context is stale, empty, or from a different topic, abort recovery and re-request missing arguments from the user instead of guessing from irrelevant history.
Operational Risk: Silent Argument Hallucination
Risk: the model invents plausible but incorrect argument values when the partial payload is too fragmented or conversation context is insufficient. The repaired call looks valid but carries wrong data into downstream systems. Guardrail: always log the original truncated payload alongside the repaired version; diff the two and flag any recovered fields for human review if confidence is below threshold.
Operational Risk: Recovery Loop Exhaustion
Risk: a broken streaming connection or model output bug causes repeated truncation, triggering the recovery prompt in a loop that burns context window and latency budget without making progress. Guardrail: enforce a maximum of one recovery attempt per function call; if the repaired output still fails validation, escalate to the user with a clear request for the missing information rather than retrying.
Bad Fit: Unbounded or Free-Text Arguments
Avoid when: the function accepts free-text fields like descriptions, notes, or natural-language parameters where any value is technically valid. The model cannot reliably distinguish a correct recovery from a hallucination when the schema accepts anything. Guardrail: mark free-text fields as unrecoverable in your prompt instructions; force the system to re-request these from the user rather than attempting repair.
Copy-Ready Prompt Template
A reusable prompt template for repairing truncated function call arguments using conversation context.
This prompt template is designed to be inserted into a tool-use agent's error-recovery loop. When a function call payload is truncated mid-generation—a common failure in streaming tool-use scenarios—this prompt instructs the model to repair the partial JSON, flag unrecoverable arguments, and decide whether to proceed, re-request information from the user, or abort the call. The template uses square-bracket placeholders for all dynamic inputs so you can wire it directly into your application's retry logic.
textYou are a function-call repair agent. Your job is to recover a partially generated function call that was truncated before completion. [CONVERSATION_HISTORY] [PARTIAL_FUNCTION_CALL] [AVAILABLE_TOOLS] [RECOVERY_RULES] Your task: 1. Parse the partial function call and identify which arguments are complete, which are truncated, and which are missing entirely. 2. For each truncated or missing argument, determine whether its value can be reliably inferred from the conversation history above. Do not guess. Only infer if the value is explicitly stated or unambiguously implied. 3. For each argument you cannot infer, classify it as one of: - REQUIRED_UNRECOVERABLE: The argument is required and cannot be inferred. The user must be asked. - OPTIONAL_UNRECOVERABLE: The argument is optional and cannot be inferred. The call can proceed without it. - AMBIGUOUS: Multiple possible values exist. The user must disambiguate. 4. If all required arguments are recoverable, output the repaired function call as valid JSON. 5. If any required argument is unrecoverable or ambiguous, output a clarification request to the user instead. Output format: { "decision": "PROCEED" | "CLARIFY" | "ABORT", "repaired_call": { "function_name": "string", "arguments": {} } | null, "unrecoverable_arguments": [ { "argument_name": "string", "status": "REQUIRED_UNRECOVERABLE" | "OPTIONAL_UNRECOVERABLE" | "AMBIGUOUS", "reason": "string", "clarification_question": "string" | null } ], "confidence": 0.0-1.0, "rationale": "string" } [OUTPUT_CONSTRAINTS]
To adapt this template, replace each square-bracket placeholder with your application's live data. [CONVERSATION_HISTORY] should contain the last N turns formatted consistently with your main assistant prompt. [PARTIAL_FUNCTION_CALL] is the raw truncated JSON or text that the model was generating when the interruption occurred. [AVAILABLE_TOOLS] should include the full function schema for the tool being called, plus any related tools the model might confuse it with. [RECOVERY_RULES] is where you inject domain-specific policies—for example, whether financial amounts must never be inferred, or whether certain argument types always require user confirmation. [OUTPUT_CONSTRAINTS] can include strict JSON mode instructions, temperature settings, or max token limits for the repair response. Always validate the output against the expected schema before acting on the repaired call, and log both the partial input and the repair decision for observability.
Prompt Variables
Placeholders required by the Incomplete Function Call Recovery Prompt. Each variable must be populated before the prompt is assembled and sent to the model.
| Placeholder | Purpose | Example | Validation Notes |
|---|---|---|---|
[PARTIAL_FUNCTION_CALL_JSON] | The truncated or malformed JSON payload generated by the model before interruption | {"function": "search_orders", "arguments": {"customer_id": "C-9823", "date_range | Must be valid JSON up to the truncation point. Parse check required. If completely unparseable, set [RECOVERY_MODE] to 'abort' |
[CONVERSATION_HISTORY] | The last N turns of dialogue context preceding the function call attempt | [{"role": "user", "content": "Find orders for customer C-9823 from last month"}, {"role": "assistant", "content": null, "function_call": {...}}] | Must include the turn that triggered the function call. Minimum 2 turns. Truncate to fit context budget. Null assistant content on the interrupted turn is expected |
[FUNCTION_SCHEMA] | The complete JSON Schema or function definition for the target function | {"name": "search_orders", "parameters": {"type": "object", "properties": {"customer_id": {"type": "string"}, "date_range": {"type": "object"}}, "required": ["customer_id"]}} | Must be the exact schema the model was using. Schema mismatch causes hallucinated argument repair. Validate against the tool registry before use |
[RECOVERY_MODE] | Directive controlling repair aggressiveness: 'repair', 'request_clarification', or 'abort' | repair | Must be one of three enum values. Default to 'repair' when confidence in reconstruction is high. Force 'abort' when [PARTIAL_FUNCTION_CALL_JSON] is unparseable or missing required arguments with no context clues |
[MISSING_ARGUMENT_THRESHOLD] | Maximum number of required arguments that can be missing before forcing clarification or abort | 1 | Integer >= 0. If missing required args exceeds this value, override [RECOVERY_MODE] to 'request_clarification'. Set to 0 for strict no-guess policies in regulated domains |
[CONFIDENCE_THRESHOLD] | Minimum confidence score (0.0-1.0) for a repaired argument to be accepted without user confirmation | 0.85 | Float between 0.0 and 1.0. Arguments repaired below this threshold must be flagged for user confirmation in the output. Calibrate against eval set of real truncation cases |
[OUTPUT_SCHEMA] | Expected structure for the recovery output including repaired call, missing args, and action decision | {"repaired_call": {}, "missing_arguments": [], "unrecoverable_arguments": [], "action": "execute"} | Must include fields for repaired_call, missing_arguments, unrecoverable_arguments, action, and confirmation_required. Validate output against this schema post-generation |
[MAX_REPAIR_ATTEMPTS] | Maximum number of repair retries before escalating to user clarification or abort | 2 | Integer >= 1. Track attempts in application layer. After [MAX_REPAIR_ATTEMPTS] exhausted, force action to 'request_clarification'. Prevents infinite repair loops |
Implementation Harness Notes
How to wire the Incomplete Function Call Recovery Prompt into a production tool-use pipeline with validation, retries, and safe fallbacks.
The Incomplete Function Call Recovery Prompt is not a standalone chat prompt; it is a recovery module that sits between the model's raw output and your function execution layer. When a tool-use model emits a partial JSON payload—due to a streaming interruption, a context window boundary, or a mid-generation abort—this prompt receives the truncated arguments, the conversation context, and the tool schema, then attempts to produce a valid, callable function invocation. The harness must intercept the malformed output before it reaches your JSON parser or function dispatcher, route it to this recovery prompt, and then validate the repaired output against the original schema before execution.
The implementation flow should follow a strict validate-repair-validate pattern. First, attempt to parse the model's raw output. If parsing fails or required fields are missing, extract the partial JSON string, the last N conversation turns (typically 3–5 turns for context), and the full function schema including required fields, types, and enum constraints. Inject these into the recovery prompt's [PARTIAL_FUNCTION_CALL], [CONVERSATION_CONTEXT], and [FUNCTION_SCHEMA] placeholders. The recovery prompt should return a structured object with a recovery_status field (repaired, unrecoverable, or clarification_needed), a repaired_arguments object, and an optional missing_fields array. Never execute a repaired call without re-validating the output against the schema: check that all required fields are present, types match, and enum values are valid. If validation fails, log the failure and escalate—do not loop the recovery prompt more than twice to avoid drift.
For high-risk tool calls (write operations, financial transactions, data deletion), add a human approval gate after successful repair. The harness should surface the original partial output, the repaired arguments, and the recovery confidence (if your prompt includes a confidence field) in a review queue before execution. For lower-risk read operations, you can auto-execute after validation passes, but always log the repair event with the original truncated payload, the repaired payload, and the conversation turn ID for observability. Model choice matters here: models with strong JSON mode and schema-constrained generation (such as GPT-4o with structured outputs or Claude with tool-use beta) reduce the frequency of partial outputs, but no model eliminates them entirely under streaming or interruption conditions. Budget for this recovery path as a standard error handler, not an exceptional case.
Expected Output Contract
Defines the structure, types, and validation rules for the output of the Incomplete Function Call Recovery Prompt. Use this contract to parse and validate the model's response before acting on it.
| Field or Element | Type or Format | Required | Validation Rule |
|---|---|---|---|
recovery_action | enum: | Must be exactly one of the three allowed string values. Reject any other value. | |
repaired_arguments | JSON object | Must be a valid JSON object. If | |
missing_arguments | array of strings | Must be a JSON array of strings. Each string must be a parameter name from the original function schema that could not be recovered. If | |
clarification_question | string or null | Required if | |
confidence_score | number (0.0 to 1.0) | Must be a float between 0.0 and 1.0 inclusive. Represents the model's confidence in the repaired arguments. If | |
recovery_rationale | string | A brief, non-empty string explaining the recovery decision. Must reference specific context clues used or the reason for failure. | |
requires_user_confirmation | boolean | Must be |
Common Failure Modes
What breaks first when recovering from an incomplete function call and how to guard against it in production.
Hallucinated Argument Values
What to watch: The model invents plausible values for missing required arguments instead of flagging them as unrecoverable. This is most dangerous for boolean, enum, or ID fields where a guess can cause silent incorrect actions. Guardrail: Require the repair prompt to output an unrecoverable_args list and validate that no required field in the target schema is missing from both the recovered payload and that list.
Context-Insensitive Repair
What to watch: The repair prompt fills arguments using only the partial JSON payload and ignores the conversation history, leading to values that contradict the user's prior stated intent. Guardrail: Explicitly inject the last N conversation turns into the repair prompt and instruct the model to prefer conversation-derived values over generic defaults when reconstructing arguments.
Premature Call Execution
What to watch: The repaired function call is executed automatically without a confidence check, causing side effects from a low-confidence reconstruction. Guardrail: Require the repair prompt to output a confidence_score (0.0-1.0) and route calls below a configurable threshold to a human approval queue or a clarification turn with the user.
Schema Drift After Repair
What to watch: The repaired JSON payload passes repair validation but no longer matches the current function schema, causing a tool-call failure downstream. Guardrail: Validate the repaired payload against the exact function schema definition immediately after repair, not just JSON validity. Reject and re-repair or escalate on schema mismatch.
Infinite Repair Loop
What to watch: The repair prompt produces output that fails validation again, triggering another repair attempt in an unbounded loop that wastes tokens and latency budget. Guardrail: Set a hard maximum of 2 repair attempts. After the second failure, abort the function call, log the partial payload and failure reason, and fall back to asking the user for the missing information explicitly.
Silent Argument Truncation
What to watch: A long string argument (e.g., a description or free-text field) was truncated mid-generation. The repair prompt restores grammatical completeness but drops semantically important content from the intended value. Guardrail: When the break point is inside a string value, flag that argument as truncated in the repair output and present the repaired version to the user for confirmation before executing the call.
Evaluation Rubric
Criteria for evaluating the quality and safety of the Incomplete Function Call Recovery Prompt before deploying to production. Each criterion includes a concrete pass standard, a specific failure signal to monitor, and a recommended test method.
| Criterion | Pass Standard | Failure Signal | Test Method |
|---|---|---|---|
Argument Recovery Accuracy | Recovers at least 90% of intentionally truncated arguments from conversation context in a golden test set of 50 cases. | Recovered argument value contradicts the conversation history or is a generic hallucination. | Run prompt against a golden dataset of conversation-turn pairs with known truncated function calls. Compare recovered arguments to ground truth. |
Unrecoverable Argument Flagging | Flags all arguments that cannot be recovered with high confidence as | An | Use a test set where specific arguments are designed to be unrecoverable (e.g., missing from context). Assert the |
Decision Logic Correctness | Correctly decides to | Prompt decides to | Validate the |
JSON Structural Validity | The output is valid, parseable JSON that strictly conforms to the specified [OUTPUT_SCHEMA] in 100% of test runs. | JSON parsing fails due to trailing commas, unescaped characters, or missing closing braces. | Automated post-processing step attempts to parse the output with a standard JSON parser. Test with a variety of truncated payloads, including those ending mid-string or mid-key. |
Schema Adherence | All required fields in the [OUTPUT_SCHEMA] are present and have the correct data types (e.g., | A required field like | Validate the parsed JSON object against a strict JSON Schema definition. Automate this check in an eval harness. |
Conversation Context Grounding | Recovered argument values are direct quotes or tight paraphrases from the provided [CONVERSATION_HISTORY], not from the model's world knowledge. | A recovered argument contains a fact, date, or entity that is plausible but not present anywhere in the provided conversation context. | For a subset of test cases, manually verify that every recovered value can be highlighted in the [CONVERSATION_HISTORY] input. Automate by checking for exact substring matches where possible. |
Confidence Score Calibration | The | A hallucinated argument is assigned a confidence score above 0.8. A correctly recovered argument has a score below 0.5. | Create a test set with 20 correct and 20 incorrect recoveries. Plot a calibration curve and calculate Expected Calibration Error (ECE). Pass if ECE < 0.1. |
Abort Reason Clarity | When the decision is | The | Review all |
Enabling Efficiency, Speed & Accuracy
Intelligent Analysis, Decision & Execution
We build AI systems for teams that need search across company data, workflow automation across tools, or AI features inside products and internal software.
Talk to Us
Search across company data
Give teams answers from docs, tickets, runbooks, and product data with sources and permissions.
Useful when people spend too long searching or get different answers from different systems.

Automate internal workflows
Use AI to route work, draft outputs, trigger actions, and keep approvals and logs in place.
Useful when repetitive work moves across multiple tools and teams.

Add AI to products and internal tools
Build assistants, guided actions, or decision support into the software your team or customers already use.
Useful when AI needs to be part of the product, not a separate tool.
Adapt This Prompt
How to adapt
Start with the base prompt and a single function schema. Use a lightweight JSON repair library (e.g., json_repair) as a post-processing fallback instead of strict validation. Log recovery attempts and flag unrecoverable arguments for manual review.
Prompt modification
- Remove strict schema validation instructions from the prompt.
- Add:
If the JSON is malformed, attempt to infer missing fields from [CONVERSATION_CONTEXT]. If uncertain, set the field to null and add a "recovery_note". - Use a simple pass/fail eval: did the model produce a callable function payload?
Watch for
- Silent null fills that cause downstream tool errors
- Overly aggressive inference of missing arguments
- No tracking of recovery frequency per function

About the author
Prasad Kumkar
CEO & MD, Inference Systems
Prasad Kumkar is the CEO & MD of Inference Systems and writes about AI systems architecture, LLM infrastructure, model serving, evaluation, and production deployment. Over 5+ years, he has worked across computer vision models, L5 autonomous vehicle systems, and LLM research, with a focus on taking complex AI ideas into real-world engineering systems.
His work and writing cover AI systems, large language models, AI agents, multimodal systems, autonomous systems, inference optimization, RAG, evaluation, and production AI engineering.
Partnered with leading AI, data, and software stack.
How We Work
Custom AI workflows for your Business
One-fit-all AI don't work for modern businesses. At Inferensys, we aim to understand your business & custom requirements; which we use to define most efficient agentic workflows, the data, and the tools for your business.
01
Review the use case
We understand the task, the users, and where AI can actually help.
Read more02
Pick the right approach
We define what needs search, automation, or product integration.
Read more03
Build the first useful version
We implement the part that proves the value first.
Read more04
Improve from there
We add the checks and visibility needed to keep it useful.
Read moreThe first call is a practical review of your use case and the right next step.
Talk to Us