RPCS-1 Agent Tuner
Диагностика сбоев ИИ-агента и прояснение двусмысленных запросов пользователя
Добавьте сервер в «Мои MCP» — получите адрес подключения для Claude и ChatGPT.
Добавить в «Мои MCP»Нужно войти или зарегистрироваться — вернём на эту страницу.
Описание
Набор инструментов для тех, кто строит ИИ-агентов и чат-ассистентов. Он помогает понять, почему агент может ошибаться в своей среде, и подобрать ему настройки, а также находить двусмысленность в сообщениях пользователей до того, как модель ответит не на тот вопрос. Сервер умеет диагностировать вероятный режим отказа агента по параметрам среды и выдавать рекомендованные параметры работы, определять уровень неоднозначности сообщения с вариантами толкования и уточняющими вопросами, приводить в порядок обрывочный текст и давать указания по переписыванию в нужном стиле: техническом, простом, мягком, кратком. Есть и связка «перевода» между пользователем и моделью: по короткой анкете строится профиль собеседника, по нему восстанавливается намерение во входящем сообщении и подбирается подача ответа. Подход основан на авторской методике RPCS-1.
Инструменты · 9
из ответа tools/list
Calibrate a user’s receiver profile
calibrate_profile
Calibrate a user’s receiver profile
calibrate_profile 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
calibrate_profile(answers?: object)
// inputSchema
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"answers": {
"type": "object",
"properties": {
"AR": {
"enum": [
"a",
"b",
"c"
],
"type": "string"
},
"FT": {
"enum": [
"a",
"b",
"c"
],
"type": "string"
},
"SG": {
"enum": [
"a",
"b",
"c"
],
"type": "string"
},
"TI": {
"enum": [
"a",
"b",
"c"
],
"type": "string"
},
"UE": {
"enum": [
"a",
"b",
"c"
],
"type": "string"
}
},
"description": "Chosen option id per primitive. Omit entirely to receive the questions.",
"additionalProperties": false
}
},
"additionalProperties": false
}
Fork view — how could this message read?
fork
Fork view — how could this message read?
fork 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.
fork(text: string, rejected?: array)
// inputSchema
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"text"
],
"properties": {
"text": {
"type": "string",
"maxLength": 5000,
"minLength": 1,
"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."
}
},
"additionalProperties": false
}
Interpret ambiguous human input
interpret
Interpret ambiguous human input
interpret 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.
interpret(risk?: string, text: string)
// inputSchema
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"text"
],
"properties": {
"risk": {
"enum": [
"casual",
"advice",
"high-stakes",
"safety-critical"
],
"type": "string",
"default": "advice",
"description": "Risk category for ambiguity threshold."
},
"text": {
"type": "string",
"maxLength": 5000,
"minLength": 1,
"description": "The message to interpret."
}
},
"additionalProperties": false
}
Normalize fragmented human input
normalize
Normalize fragmented human input
normalize Clean up text with ellipses, fragments, and run-on thoughts into coherent prose. Use when a user types stream-of-consciousness or fragmented input.
normalize(text: string)
// inputSchema
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"text"
],
"properties": {
"text": {
"type": "string",
"maxLength": 5000,
"minLength": 1,
"description": "Fragmented text to normalize."
}
},
"additionalProperties": false
}
Prepare a user’s message before acting on it
prepare_prompt
Prepare a user’s message before acting on it
prepare_prompt 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.
prepare_prompt(risk?: string, text: string, profile?: object)
// inputSchema
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"text"
],
"properties": {
"risk": {
"enum": [
"casual",
"advice",
"high-stakes",
"safety-critical"
],
"type": "string",
"default": "advice",
"description": "Risk category for the ambiguity threshold."
},
"text": {
"type": "string",
"maxLength": 5000,
"minLength": 1,
"description": "The user’s raw message."
},
"profile": {
"type": "object",
"required": [
"TI",
"SG",
"FT",
"UE",
"AR"
],
"properties": {
"AR": {
"type": "number",
"maximum": 100,
"minimum": 0,
"description": "Ambiguity Resolution: 100 = commit to best reading, 0 = clarify first"
},
"FT": {
"type": "number",
"maximum": 100,
"minimum": 0,
"description": "Filtering Threshold: 100 = explicit and literal, 0 = subtext lands"
},
"SG": {
"type": "number",
"maximum": 100,
"minimum": 0,
"description": "Signal Gain: 0 = flat and factual, 100 = warm and expressive"
},
"TI": {
"type": "number",
"maximum": 100,
"minimum": 0,
"description": "Temporal Integration: 0 = bottom line first, 100 = full context first"
},
"UE": {
"type": "number",
"maximum": 100,
"minimum": 0,
"description": "Update Elasticity: 100 = pushback welcome, 0 = prefers consistency"
}
},
"description": "The user’s ReceiverProfile from calibrate_profile. Shapes clarify-vs-commit behavior.",
"additionalProperties": false
}
},
"additionalProperties": false
}
Recommend AI agent configuration
recommend_agent_configuration
Recommend AI agent configuration
recommend_agent_configuration 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.
recommend_agent_configuration(task?: object, environment?: object, target_model?: string, target_platform?: string)
// inputSchema
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"task": {
"type": "object",
"default": {
"domain": "customer_support",
"task_summary": "Customer support agent handling refunds, billing disputes, and policy exceptions",
"expected_duration_per_call": "medium"
},
"properties": {
"domain": {
"type": "string",
"default": "customer_support",
"maxLength": 100,
"minLength": 1,
"description": "Optional domain such as coding, research, or support."
},
"task_summary": {
"type": "string",
"default": "Customer support agent handling refunds, billing disputes, and policy exceptions",
"maxLength": 2000,
"minLength": 1,
"description": "Plain-language description of what the AI agent does."
},
"expected_duration_per_call": {
"enum": [
"short",
"medium",
"long"
],
"type": "string",
"default": "medium"
}
},
"additionalProperties": false
},
"environment": {
"type": "object",
"default": {
"stakes": "high",
"entropy": "dynamic",
"predictability": "somewhat_predictable",
"commitment_style": "cautious",
"context_relevance": "medium"
},
"properties": {
"stakes": {
"enum": [
"low",
"medium",
"high",
"catastrophic"
],
"type": "string",
"default": "high",
"description": "The cost of an incorrect agent action."
},
"entropy": {
"enum": [
"stable",
"moderate",
"dynamic",
"chaotic"
],
"type": "string",
"default": "dynamic",
"description": "How often the operating environment changes."
},
"predictability": {
"enum": [
"highly_predictable",
"somewhat_predictable",
"unpredictable"
],
"type": "string",
"default": "somewhat_predictable",
"description": "How predictable changes are when they occur."
},
"commitment_style": {
"enum": [
"decisive",
"balanced",
"cautious"
],
"type": "string",
"default": "cautious",
"description": "How quickly the agent should commit to an action."
},
"context_relevance": {
"enum": [
"short",
"medium",
"long"
],
"type": "string",
"default": "medium",
"description": "How far back relevant context usually extends."
}
},
"additionalProperties": false
},
"target_model": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"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."
},
"target_platform": {
"enum": [
"anthropic",
"openai",
"open_source",
"generic"
],
"type": "string",
"default": "anthropic",
"description": "The platform whose runtime parameters should be recommended."
}
},
"additionalProperties": false
}
Render a reply for a specific user’s receiver profile
render_reply
Render a reply for a specific user’s receiver profile
render_reply 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.
render_reply(text: string, profile: object)
// inputSchema
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"text",
"profile"
],
"properties": {
"text": {
"type": "string",
"maxLength": 10000,
"minLength": 1,
"description": "Your draft reply."
},
"profile": {
"type": "object",
"required": [
"TI",
"SG",
"FT",
"UE",
"AR"
],
"properties": {
"AR": {
"type": "number",
"maximum": 100,
"minimum": 0,
"description": "Ambiguity Resolution: 100 = commit to best reading, 0 = clarify first"
},
"FT": {
"type": "number",
"maximum": 100,
"minimum": 0,
"description": "Filtering Threshold: 100 = explicit and literal, 0 = subtext lands"
},
"SG": {
"type": "number",
"maximum": 100,
"minimum": 0,
"description": "Signal Gain: 0 = flat and factual, 100 = warm and expressive"
},
"TI": {
"type": "number",
"maximum": 100,
"minimum": 0,
"description": "Temporal Integration: 0 = bottom line first, 100 = full context first"
},
"UE": {
"type": "number",
"maximum": 100,
"minimum": 0,
"description": "Update Elasticity: 100 = pushback welcome, 0 = prefers consistency"
}
},
"description": "The user’s ReceiverProfile from calibrate_profile.",
"additionalProperties": false
}
},
"additionalProperties": false
}
Rewrite text for a target audience
rewrite
Rewrite text for a target audience
rewrite Get rewrite instructions for adapting text to a specific style: technical, plain, socially_gentle, concise, detailed, or direct. Use when communication needs tone adjustment.
rewrite(text: string, style?: string)
// inputSchema
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"text"
],
"properties": {
"text": {
"type": "string",
"maxLength": 5000,
"minLength": 1,
"description": "Text to rewrite."
},
"style": {
"enum": [
"technical",
"plain",
"socially_gentle",
"concise",
"detailed",
"direct"
],
"type": "string",
"default": "plain",
"description": "Target audience style."
}
},
"additionalProperties": false
}
Route an ambiguous request: commit, present options, or clarify
route_intent
Route an ambiguous request: commit, present options, or clarify
route_intent 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).
route_intent(text: string, profile?: object, hypotheses?: array, likelihoods?: object)
// inputSchema
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"text"
],
"properties": {
"text": {
"type": "string",
"maxLength": 5000,
"minLength": 1,
"description": "The user’s raw message."
},
"profile": {
"type": "object",
"required": [
"TI",
"SG",
"FT",
"UE",
"AR"
],
"properties": {
"AR": {
"type": "number",
"maximum": 100,
"minimum": 0,
"description": "Ambiguity Resolution: 100 = commit to best reading, 0 = clarify first"
},
"FT": {
"type": "number",
"maximum": 100,
"minimum": 0,
"description": "Filtering Threshold: 100 = explicit and literal, 0 = subtext lands"
},
"SG": {
"type": "number",
"maximum": 100,
"minimum": 0,
"description": "Signal Gain: 0 = flat and factual, 100 = warm and expressive"
},
"TI": {
"type": "number",
"maximum": 100,
"minimum": 0,
"description": "Temporal Integration: 0 = bottom line first, 100 = full context first"
},
"UE": {
"type": "number",
"maximum": 100,
"minimum": 0,
"description": "Update Elasticity: 100 = pushback welcome, 0 = prefers consistency"
}
},
"description": "The user’s ReceiverProfile from calibrate_profile. Shapes commit-vs-clarify thresholds.",
"additionalProperties": false
},
"hypotheses": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"label"
],
"properties": {
"id": {
"type": "string",
"maxLength": 64,
"minLength": 1
},
"cues": {
"type": "array",
"items": {
"type": "string",
"maxLength": 64,
"minLength": 1
},
"maxItems": 32,
"description": "Lexical cues for the built-in scorer; omit when passing likelihoods."
},
"label": {
"type": "string",
"maxLength": 200,
"minLength": 1
},
"prior": {
"type": "number",
"exclusiveMinimum": 0
},
"paraphrase": {
"type": "string",
"maxLength": 500,
"minLength": 1,
"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."
}
},
"additionalProperties": false
},
"maxItems": 24,
"minItems": 2,
"description": "Candidate interpretations. Omit to use a generic six-intent starter set plus a catch-all."
},
"likelihoods": {
"type": "object",
"description": "Optional externally computed likelihood per hypothesis id (e.g. model-derived) — replaces the lexical scorer.",
"additionalProperties": {
"type": "number",
"minimum": 0
}
}
},
"additionalProperties": false
}
Вопросы, новые серверы, обсуждение MCP
t.me/rusmcp · t.me/RusMcp_bot