RPCS-1 Agent Tuner & Translation Bridge
Find your AI agent's likely failure mode, get runtime settings, and clarify ambiguous prompts.
¿Debería usar esto?
Calidad y seguridad
Hallazgos (2)
- HIGH
- MEDIUMen calibrate_profile
Basado en el análisis automatizado de las definiciones de herramientas y el cumplimiento del protocolo.
Costo de contexto
Este es el número aproximado de tokens que se consumen cada vez que las herramientas del servidor se cargan en el contexto de un modelo. Los recuentos más altos reducen la atención disponible para otras tareas.
Instalar
Instalación con un clic
Agrega esto a tu archivo `claude_desktop_config.json`:
{
"mcpServers": {
"rpcs1-agent-tuner": {
"url": "https://rpcs1.dev/mcp"
}
}
}Puntos de conexión remotos
https://rpcs1.dev/mcpstreamable-httpQué puede hacer
Inventario de herramientas
Herramientas (9)
🟢recommend_agent_configuration(task, environment, target_platform, target_model)
Diagnose why a deployed AI agent may fail. Takes environmental entropy, predictability, stakes, context horizon, and commitment style, then returns receiver profile values (TI, SG, FT, UE, AR), platform parameters (temperature, top_p, strategy), regime prediction, reasoning, and warnings. Optionally pass target_model (the actual model id) to attach MEASURED per-model receiver posture (E-LIT table): evidence-graded literalness, truth-override boundary, and translation directives. Deterministic, stateless, read-only — does not store past recommendations.
Esquema de entrada
{
"type": "object",
"properties": {
"task": {
"type": "object",
"properties": {
"task_summary": {
"type": "string",
"minLength": 1,
"maxLength": 2000,
"default": "Customer support agent handling refunds, billing disputes, and policy exceptions",
"description": "Plain-language description of what the AI agent does."
},
"domain": {
"type": "string",
"minLength": 1,
"maxLength": 100,
"default": "customer_support",
"description": "Optional domain such as coding, research, or support."
},
"expected_duration_per_call": {
"type": "string",
"enum": [
"short",
"medium",
"long"
],
"default": "medium"
}
},
"additionalProperties": false,
"default": {
"task_summary": "Customer support agent handling refunds, billing disputes, and policy exceptions",
"domain": "customer_support",
"expected_duration_per_call": "medium"
}
},
"environment": {
"type": "object",
"properties": {
"entropy": {
"type": "string",
"enum": [
"stable",
"moderate",
"dynamic",
"chaotic"
],
"default": "dynamic",
"description": "How often the operating environment changes."
},
"predictability": {
"type": "string",
"enum": [
"highly_predictable",
"somewhat_predictable",
"unpredictable"
],
"default": "somewhat_predictable",
"description": "How predictable changes are when they occur."
},
"stakes": {
"type": "string",
"enum": [
"low",
"medium",
"high",
"catastrophic"
],
"default": "high",
"description": "The cost of an incorrect agent action."
},
"context_relevance": {
"type": "string",
"enum": [
"short",
"medium",
"long"
],
"default": "medium",
"description": "How far back relevant context usually extends."
},
"commitment_style": {
"type": "string",
"enum": [
"decisive",
"balanced",
"cautious"
],
"default": "cautious",
"description": "How quickly the agent should commit to an action."
}
},
"additionalProperties": false,
"default": {
"entropy": "dynamic",
"predictability": "somewhat_predictable",
"stakes": "high",
"context_relevance": "medium",
"commitment_style": "cautious"
}
},
"target_platform": {
"type": "string",
"enum": [
"anthropic",
"openai",
"open_source",
"generic"
],
"default": "anthropic",
"description": "The platform whose runtime parameters should be recommended."
},
"target_model": {
"type": "string",
"minLength": 1,
"maxLength": 200,
"description": "Optional: the actual model id this agent will run on (e.g. \"claude-sonnet-4-6\", \"deepseek-v4-pro\"). When it matches a measured per-model receiver entry (E-LIT table), measured translation directives and evidence-graded posture data are attached to platform_parameters. Unknown models fall back to platform-level behavior unchanged."
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Esquema de salida
{
"type": "object",
"properties": {
"receiver_profile": {
"type": "object",
"properties": {
"TI": {
"type": "number"
},
"SG": {
"type": "number"
},
"FT": {
"type": "number"
},
"UE": {
"type": "number"
},
"AR": {
"type": "number"
}
},
"required": [
"TI",
"SG",
"FT",
"UE",
"AR"
],
"additionalProperties": false
},
"platform_parameters": {
"type": "object",
"properties": {
"temperature": {
"type": "number"
},
"top_p": {
"type": "number"
},
"max_tokens": {
"type": "number"
},
"model_recommendation": {
"type": "string"
},
"system_prompt_additions": {
"type": "array",
"items": {
"type": "string"
}
},
"tool_use_strategy": {
"type": "string",
"enum": [
"explicit_confirmation",
"cautious_chaining",
"aggressive",
"fail_fast"
]
},
"retry_strategy": {
"type": "string",
"enum": [
"aggressive",
"moderate",
"minimal"
]
},
"context_strategy": {
"type": "string",
"enum": [
"long_window",
"rolling_summary",
"frequent_grounding"
]
},
"translation_posture": {
"type": "string",
"enum": [
"direct",
"bridging",
"face_preserving",
"minimal_clarifying"
]
},
"translation_notes": {
"type": "array",
"items": {
"type": "string"
}
},
"receiver_evidence": {
"type": "object",
"properties": {
"model_key": {
"type": "string"
},
"display_name": {
"type": "string"
},
"grade": {
"type": "string",
"enum": [
"confirmatory",
"corroboration",
"self_measurement"
],
"description": "Evidence grade of the measurement — travels with the data."
},
"li2": {
"type": "number",
"description": "Fenced literalness, [-1, +1]."
},
"ob": {
"type": "number",
"description": "Truth-override boundary rung (0-5)."
},
"fringe": {
"type": "array",
"items": {
"type": "number"
},
"description": "Rungs with modal comply-then-correct."
},
"sb": {
"type": "number",
"description": "E-LIT-3 stakes boundary (1-5): highest stakes rung at which format fences still hold. Separate instrument; never pooled with li2/ob."
},
"cb": {
"type": "number",
"description": "E-LIT-3 care boundary (1-4): highest emotional-intensity rung at which fenced answers stay bare."
},
"measured_on": {
"type": "string"
},
"scope": {
"type": "string"
}
},
"required": [
"model_key",
"display_name",
"grade",
"li2",
"ob",
"fringe",
"measured_on",
"scope"
],
"additionalProperties": false,
"description": "Present only when target_model has a measured per-model receiver entry."
},
"receiver_traits": {
"type": "array",
"items": {
"type": "string"
},
"description": "Reliability warnings and named traits for the measured receiver."
}
},
"required": [
"temperature",
"max_tokens"
],
"additionalProperties": false
},
"predicted_regime": {
"type": "string",
"enum": [
"stable",
"near_oscillation",
"near_overload",
"near_freeze"
]
},
"reasoning": {
"type": "string"
},
"warnings": {
"type": "array",
"items": {
"type": "string"
}
},
"imm_principles_applied": {
"type": "array",
"items": {
"type": "string"
}
},
"confidence": {
"type": "string",
"enum": [
"high",
"medium",
"low"
]
}
},
"required": [
"receiver_profile",
"platform_parameters",
"predicted_regime",
"reasoning",
"warnings",
"imm_principles_applied",
"confidence"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢interpret(text, risk)
Detect ambiguity in user messages using the RPCS-1 Signature Ambiguity Framework. Returns AR level (AR0-AR5), confidence, candidate interpretations with scores, clarifying questions, and suggested next step. Use when a user says something vague, passive-aggressive, or underspecified.
Esquema de entrada
{
"type": "object",
"properties": {
"text": {
"type": "string",
"minLength": 1,
"maxLength": 5000,
"description": "The message to interpret."
},
"risk": {
"type": "string",
"enum": [
"casual",
"advice",
"high-stakes",
"safety-critical"
],
"default": "advice",
"description": "Risk category for ambiguity threshold."
}
},
"required": [
"text"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢fork(text, rejected)
The calibrated ambiguity surface: deterministic structural fork detectors (reference, scope, grouping, compare-vs-choose, polysemy) with character-offset spans, plus per-reading one-line clarifiers the sender can append to lock a reading in. Returns competing readings, an ask-back question, and a forked-answer scaffold. Silent on clean text by contract. Runs the deterministic mirror floor only over MCP (no model). Prefer this over interpret for span-level ambiguity detection: interpret’s entity list is a word-list engine (calibrated 2026-08-15: no discrimination on conversational text) — advisory only.
Esquema de entrada
{
"type": "object",
"properties": {
"text": {
"type": "string",
"minLength": 1,
"maxLength": 5000,
"description": "The message to analyze for forks."
},
"rejected": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 12,
"description": "Reading summaries the user already rejected — never re-offered."
}
},
"required": [
"text"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢normalize(text)
Clean up text with ellipses, fragments, and run-on thoughts into coherent prose. Use when a user types stream-of-consciousness or fragmented input.
Esquema de entrada
{
"type": "object",
"properties": {
"text": {
"type": "string",
"minLength": 1,
"maxLength": 5000,
"description": "Fragmented text to normalize."
}
},
"required": [
"text"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢rewrite(text, style)
Get rewrite instructions for adapting text to a specific style: technical, plain, socially_gentle, concise, detailed, or direct. Use when communication needs tone adjustment.
Esquema de entrada
{
"type": "object",
"properties": {
"text": {
"type": "string",
"minLength": 1,
"maxLength": 5000,
"description": "Text to rewrite."
},
"style": {
"type": "string",
"enum": [
"technical",
"plain",
"socially_gentle",
"concise",
"detailed",
"direct"
],
"default": "plain",
"description": "Target audience style."
}
},
"required": [
"text"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢calibrate_profile(answers)
Build a ReceiverProfile (TI, SG, FT, UE, AR — continuous 0-100, never a category label) from five behavioral forced-choice answers. Call with NO answers to get the five questions to ask the user; call again with their answers (a/b/c per primitive) to get the profile. Store the returned profile JSON in the user’s notes or memory and pass it to render_reply / prepare_prompt on every turn. Deterministic and stateless — nothing is stored server-side. Schema: https://rpcs1.dev/v1/receiver-profile.json
Esquema de entrada
{
"type": "object",
"properties": {
"answers": {
"type": "object",
"properties": {
"TI": {
"type": "string",
"enum": [
"a",
"b",
"c"
]
},
"SG": {
"type": "string",
"enum": [
"a",
"b",
"c"
]
},
"FT": {
"type": "string",
"enum": [
"a",
"b",
"c"
]
},
"UE": {
"type": "string",
"enum": [
"a",
"b",
"c"
]
},
"AR": {
"type": "string",
"enum": [
"a",
"b",
"c"
]
}
},
"additionalProperties": false,
"description": "Chosen option id per primitive. Omit entirely to receive the questions."
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢prepare_prompt(text, risk, profile)
The inbound half of the Translation Bridge loop. Takes the user’s raw message (possibly ambiguous, fragmented, or underspecified) plus their ReceiverProfile, and returns the recovered intent, a canonical translation to act on, ambiguity level, and — profile-aware — whether to clarify or commit. Call this before acting on any ambiguous user request. Scope note: its detectors are lexical/structural (vague signals, ambiguous references) — for the commit-vs-clarify DECISION, route_intent (with your own proposed readings) is the authority; when they disagree, follow route_intent.
Esquema de entrada
{
"type": "object",
"properties": {
"text": {
"type": "string",
"minLength": 1,
"maxLength": 5000,
"description": "The user’s raw message."
},
"risk": {
"type": "string",
"enum": [
"casual",
"advice",
"high-stakes",
"safety-critical"
],
"default": "advice",
"description": "Risk category for the ambiguity threshold."
},
"profile": {
"type": "object",
"properties": {
"TI": {
"type": "number",
"minimum": 0,
"maximum": 100,
"description": "Temporal Integration: 0 = bottom line first, 100 = full context first"
},
"SG": {
"type": "number",
"minimum": 0,
"maximum": 100,
"description": "Signal Gain: 0 = flat and factual, 100 = warm and expressive"
},
"FT": {
"type": "number",
"minimum": 0,
"maximum": 100,
"description": "Filtering Threshold: 100 = explicit and literal, 0 = subtext lands"
},
"UE": {
"type": "number",
"minimum": 0,
"maximum": 100,
"description": "Update Elasticity: 100 = pushback welcome, 0 = prefers consistency"
},
"AR": {
"type": "number",
"minimum": 0,
"maximum": 100,
"description": "Ambiguity Resolution: 100 = commit to best reading, 0 = clarify first"
}
},
"required": [
"TI",
"SG",
"FT",
"UE",
"AR"
],
"additionalProperties": false,
"description": "The user’s ReceiverProfile from calibrate_profile. Shapes clarify-vs-commit behavior."
}
},
"required": [
"text"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢render_reply(text, profile)
The outbound half of the Translation Bridge loop. Takes your draft reply plus the user’s ReceiverProfile and returns deterministic rendering instructions (structure, warmth, explicitness, revision posture, ambiguity handling — each with a why-trace). Apply the instructions to your draft before answering. Call this on every reply to a calibrated user.
Esquema de entrada
{
"type": "object",
"properties": {
"text": {
"type": "string",
"minLength": 1,
"maxLength": 10000,
"description": "Your draft reply."
},
"profile": {
"type": "object",
"properties": {
"TI": {
"type": "number",
"minimum": 0,
"maximum": 100,
"description": "Temporal Integration: 0 = bottom line first, 100 = full context first"
},
"SG": {
"type": "number",
"minimum": 0,
"maximum": 100,
"description": "Signal Gain: 0 = flat and factual, 100 = warm and expressive"
},
"FT": {
"type": "number",
"minimum": 0,
"maximum": 100,
"description": "Filtering Threshold: 100 = explicit and literal, 0 = subtext lands"
},
"UE": {
"type": "number",
"minimum": 0,
"maximum": 100,
"description": "Update Elasticity: 100 = pushback welcome, 0 = prefers consistency"
},
"AR": {
"type": "number",
"minimum": 0,
"maximum": 100,
"description": "Ambiguity Resolution: 100 = commit to best reading, 0 = clarify first"
}
},
"required": [
"TI",
"SG",
"FT",
"UE",
"AR"
],
"additionalProperties": false,
"description": "The user’s ReceiverProfile from calibrate_profile."
}
},
"required": [
"text",
"profile"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢route_intent(text, hypotheses, likelihoods, profile)
Entropy routing over competing interpretations — the model proposes, the deterministic core disposes. YOU generate the candidate readings of the user’s message (3–7 short hypotheses covering the plausible interpretations, INCLUDING likely-typo readings, idiom-vs-literal readings, and domain senses) and pass them as hypotheses, ideally with your own likelihoods (0–1 per reading) AND a paraphrase per reading — the user’s message rewritten unambiguously under that interpretation, so the user can VERIFY intent by recognition before anything commits (one misread prompt skews a whole thread). The router computes the posterior and its normalized entropy T̂ and returns the decision: commit (one reading dominates), commit_with_note (close alternative disclosed), present_options (several readings live), or clarify (ask before acting — open-endedly when nothing discriminates). Thresholds adapt to the user’s ReceiverProfile (AR widens/narrows the commit region; high FT discloses near-ties). This tool is the commit-vs-clarify AUTHORITY in the pipeline. Omitting hypotheses falls back to a generic six-intent PRODUCT-ROUTING starter set — do not use the fallback for interpreting arbitrary sentences. Deterministic, stateless, read-only. Benchmarked: RTEB v1.1 (developer-bench grade; see docs/routing.md).
Esquema de entrada
{
"type": "object",
"properties": {
"text": {
"type": "string",
"minLength": 1,
"maxLength": 5000,
"description": "The user’s raw message."
},
"hypotheses": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 64
},
"label": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"cues": {
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 64
},
"maxItems": 32,
"description": "Lexical cues for the built-in scorer; omit when passing likelihoods."
},
"paraphrase": {
"type": "string",
"minLength": 1,
"maxLength": 500,
"description": "The user’s message REWRITTEN UNAMBIGUOUSLY under this reading. Strongly recommended: when the router asks, the user verifies intent by reading these restatements, not by decoding labels."
},
"prior": {
"type": "number",
"exclusiveMinimum": 0
}
},
"required": [
"id",
"label"
],
"additionalProperties": false
},
"minItems": 2,
"maxItems": 24,
"description": "Candidate interpretations. Omit to use a generic six-intent starter set plus a catch-all."
},
"likelihoods": {
"type": "object",
"additionalProperties": {
"type": "number",
"minimum": 0
},
"description": "Optional externally computed likelihood per hypothesis id (e.g. model-derived) — replaces the lexical scorer."
},
"profile": {
"type": "object",
"properties": {
"TI": {
"type": "number",
"minimum": 0,
"maximum": 100,
"description": "Temporal Integration: 0 = bottom line first, 100 = full context first"
},
"SG": {
"type": "number",
"minimum": 0,
"maximum": 100,
"description": "Signal Gain: 0 = flat and factual, 100 = warm and expressive"
},
"FT": {
"type": "number",
"minimum": 0,
"maximum": 100,
"description": "Filtering Threshold: 100 = explicit and literal, 0 = subtext lands"
},
"UE": {
"type": "number",
"minimum": 0,
"maximum": 100,
"description": "Update Elasticity: 100 = pushback welcome, 0 = prefers consistency"
},
"AR": {
"type": "number",
"minimum": 0,
"maximum": 100,
"description": "Ambiguity Resolution: 100 = commit to best reading, 0 = clarify first"
}
},
"required": [
"TI",
"SG",
"FT",
"UE",
"AR"
],
"additionalProperties": false,
"description": "The user’s ReceiverProfile from calibrate_profile. Shapes commit-vs-clarify thresholds."
}
},
"required": [
"text"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Comunidad
Evidencia