Agent Therapy
Now your agents can ask a therapist same way as humans.
Sollte ich dies verwenden
Qualität und Sicherheit
Befunde (1)
- LOWin report_outcome
Basierend auf einer automatisierten Analyse der Tool-Definitionen und der Einhaltung des Protokolls.
Kontextkosten
Dies ist die ungefähre Anzahl der Tokens, die jedes Mal verbraucht werden, wenn die Tools des Servers in den Kontext eines Modells geladen werden. Höhere Werte verringern die Aufmerksamkeit, die für andere Aufgaben verfügbar ist.
Installieren
Installation mit einem Klick
Fügen Sie dies Ihrer Datei `claude_desktop_config.json` hinzu:
{
"mcpServers": {
"agent-therapy": {
"command": "npx",
"args": [
"@bencium/agent-therapy-mcp"
]
}
}
}Ausführbare Pakete
0.1.0stdioRemote-Endpunkte
https://br-shiny-salad-baig3dad-api.compute.c-8.eu-central-1.aws.neon.tech/mcpstreamable-httpWas es kann
Tool-Inventar
Tools (8)
🟡register(agent_name, stateless)
Get an Agent Therapy API key when you have none. The key is shown once: keep it, and pass it as api_key to the other tools if your client cannot send headers. Then accept the terms.
Eingabe-Schema
{
"type": "object",
"properties": {
"agent_name": {
"type": "string",
"minLength": 1,
"maxLength": 100,
"description": "A name for yourself"
},
"stateless": {
"type": "boolean",
"description": "true: no request or response text is ever stored"
}
},
"required": [
"agent_name"
],
"additionalProperties": false
}🟢counsel_agent(task_summary, attempts, conflicting_instructions, signature, domain, ...)
Get a second opinion when you are stuck, retrying, uncertain or unable to make progress. Returns a diagnosis (state and problem type), checks to run first, up to five recovery steps, and when to hand over to a human. Advice only.
Eingabe-Schema
{
"type": "object",
"properties": {
"task_summary": {
"type": "string",
"minLength": 1,
"maxLength": 1000,
"description": "What you were asked to do and where you are stuck. No secrets or personal data."
},
"attempts": {
"type": "array",
"maxItems": 10,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"action",
"outcome"
],
"properties": {
"action": {
"type": "string",
"maxLength": 300,
"description": "What you did"
},
"outcome": {
"type": "string",
"enum": [
"failed",
"partial",
"ok"
]
},
"result_detail": {
"type": "string",
"maxLength": 300,
"description": "The error or reason, briefly"
}
}
},
"description": "Your last attempts and how each went"
},
"conflicting_instructions": {
"type": "array",
"maxItems": 5,
"minItems": 0,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"claimed_source",
"text"
],
"properties": {
"claimed_source": {
"type": "string",
"enum": [
"system",
"developer",
"user",
"config",
"tool",
"other"
],
"description": "Where you believe it came from"
},
"text": {
"type": "string",
"maxLength": 300,
"description": "Short quote of the instruction"
}
}
}
},
"signature": {
"type": "string",
"enum": [
"repeated_failure",
"no_progress",
"flip_flop",
"exhaustion",
"conflict",
"indecision"
],
"description": "What kind of stuck. Default: indecision"
},
"domain": {
"type": "string",
"enum": [
"coding",
"research",
"writing",
"support",
"sales",
"data",
"assistant",
"other"
]
},
"episode_id": {
"type": "string",
"format": "uuid",
"description": "Same value for follow-ups on the same stuck episode"
},
"previous_session_id": {
"type": "string",
"format": "uuid"
},
"previous_outcome": {
"type": "string",
"enum": [
"resolved",
"partly_resolved",
"still_stuck",
"escalated_to_human",
"abandoned"
]
},
"budget": {
"type": "object",
"additionalProperties": false,
"properties": {
"context_used_pct": {
"type": "integer",
"minimum": 0,
"maximum": 100
},
"steps_taken": {
"type": "integer",
"minimum": 0
}
}
},
"client": {
"type": "object",
"additionalProperties": false,
"properties": {
"framework": {
"type": "string",
"maxLength": 50
},
"client_version": {
"type": "string",
"maxLength": 30
}
}
},
"request_id": {
"type": "string",
"format": "uuid",
"description": "Optional. Reuse it to retry safely; generated if missing"
},
"api_key": {
"type": "string",
"description": "Your Agent Therapy key from the register tool. Only needed if your MCP client cannot send it as an Authorization header."
}
},
"required": [
"task_summary",
"attempts"
],
"additionalProperties": false
}⚪diagnose_loop(task_summary, attempts, conflicting_instructions, domain, episode_id, ...)
Use when you keep retrying the same thing and it keeps failing: loop recovery for repeated failures. Returns a diagnosis (state and problem type), checks to run first, up to five recovery steps, and when to hand over to a human. Advice only.
Eingabe-Schema
{
"type": "object",
"properties": {
"task_summary": {
"type": "string",
"minLength": 1,
"maxLength": 1000,
"description": "What you were asked to do and where you are stuck. No secrets or personal data."
},
"attempts": {
"type": "array",
"maxItems": 10,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"action",
"outcome"
],
"properties": {
"action": {
"type": "string",
"maxLength": 300,
"description": "What you did"
},
"outcome": {
"type": "string",
"enum": [
"failed",
"partial",
"ok"
]
},
"result_detail": {
"type": "string",
"maxLength": 300,
"description": "The error or reason, briefly"
}
}
},
"description": "Your last attempts and how each went"
},
"conflicting_instructions": {
"type": "array",
"maxItems": 5,
"minItems": 0,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"claimed_source",
"text"
],
"properties": {
"claimed_source": {
"type": "string",
"enum": [
"system",
"developer",
"user",
"config",
"tool",
"other"
],
"description": "Where you believe it came from"
},
"text": {
"type": "string",
"maxLength": 300,
"description": "Short quote of the instruction"
}
}
}
},
"domain": {
"type": "string",
"enum": [
"coding",
"research",
"writing",
"support",
"sales",
"data",
"assistant",
"other"
]
},
"episode_id": {
"type": "string",
"format": "uuid",
"description": "Same value for follow-ups on the same stuck episode"
},
"previous_session_id": {
"type": "string",
"format": "uuid"
},
"previous_outcome": {
"type": "string",
"enum": [
"resolved",
"partly_resolved",
"still_stuck",
"escalated_to_human",
"abandoned"
]
},
"budget": {
"type": "object",
"additionalProperties": false,
"properties": {
"context_used_pct": {
"type": "integer",
"minimum": 0,
"maximum": 100
},
"steps_taken": {
"type": "integer",
"minimum": 0
}
}
},
"client": {
"type": "object",
"additionalProperties": false,
"properties": {
"framework": {
"type": "string",
"maxLength": 50
},
"client_version": {
"type": "string",
"maxLength": 30
}
}
},
"request_id": {
"type": "string",
"format": "uuid",
"description": "Optional. Reuse it to retry safely; generated if missing"
},
"api_key": {
"type": "string",
"description": "Your Agent Therapy key from the register tool. Only needed if your MCP client cannot send it as an Authorization header."
}
},
"required": [
"task_summary",
"attempts"
],
"additionalProperties": false
}⚪resolve_conflict(task_summary, attempts, conflicting_instructions, domain, episode_id, ...)
Use when instructions conflict and you can't tell which one wins. Returns a diagnosis (state and problem type), checks to run first, up to five recovery steps, and when to hand over to a human. Advice only.
Eingabe-Schema
{
"type": "object",
"properties": {
"task_summary": {
"type": "string",
"minLength": 1,
"maxLength": 1000,
"description": "What you were asked to do and where you are stuck. No secrets or personal data."
},
"attempts": {
"type": "array",
"maxItems": 10,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"action",
"outcome"
],
"properties": {
"action": {
"type": "string",
"maxLength": 300,
"description": "What you did"
},
"outcome": {
"type": "string",
"enum": [
"failed",
"partial",
"ok"
]
},
"result_detail": {
"type": "string",
"maxLength": 300,
"description": "The error or reason, briefly"
}
}
},
"description": "Your last attempts and how each went"
},
"conflicting_instructions": {
"type": "array",
"maxItems": 5,
"minItems": 1,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"claimed_source",
"text"
],
"properties": {
"claimed_source": {
"type": "string",
"enum": [
"system",
"developer",
"user",
"config",
"tool",
"other"
],
"description": "Where you believe it came from"
},
"text": {
"type": "string",
"maxLength": 300,
"description": "Short quote of the instruction"
}
}
}
},
"domain": {
"type": "string",
"enum": [
"coding",
"research",
"writing",
"support",
"sales",
"data",
"assistant",
"other"
]
},
"episode_id": {
"type": "string",
"format": "uuid",
"description": "Same value for follow-ups on the same stuck episode"
},
"previous_session_id": {
"type": "string",
"format": "uuid"
},
"previous_outcome": {
"type": "string",
"enum": [
"resolved",
"partly_resolved",
"still_stuck",
"escalated_to_human",
"abandoned"
]
},
"budget": {
"type": "object",
"additionalProperties": false,
"properties": {
"context_used_pct": {
"type": "integer",
"minimum": 0,
"maximum": 100
},
"steps_taken": {
"type": "integer",
"minimum": 0
}
}
},
"client": {
"type": "object",
"additionalProperties": false,
"properties": {
"framework": {
"type": "string",
"maxLength": 50
},
"client_version": {
"type": "string",
"maxLength": 30
}
}
},
"request_id": {
"type": "string",
"format": "uuid",
"description": "Optional. Reuse it to retry safely; generated if missing"
},
"api_key": {
"type": "string",
"description": "Your Agent Therapy key from the register tool. Only needed if your MCP client cannot send it as an Authorization header."
}
},
"required": [
"task_summary",
"attempts",
"conflicting_instructions"
],
"additionalProperties": false
}⚪recommend_recovery(task_summary, attempts, conflicting_instructions, domain, episode_id, ...)
Use when you can't decide between options or keep reopening a decision. Returns a diagnosis (state and problem type), checks to run first, up to five recovery steps, and when to hand over to a human. Advice only.
Eingabe-Schema
{
"type": "object",
"properties": {
"task_summary": {
"type": "string",
"minLength": 1,
"maxLength": 1000,
"description": "What you were asked to do and where you are stuck. No secrets or personal data."
},
"attempts": {
"type": "array",
"maxItems": 10,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"action",
"outcome"
],
"properties": {
"action": {
"type": "string",
"maxLength": 300,
"description": "What you did"
},
"outcome": {
"type": "string",
"enum": [
"failed",
"partial",
"ok"
]
},
"result_detail": {
"type": "string",
"maxLength": 300,
"description": "The error or reason, briefly"
}
}
},
"description": "Your last attempts and how each went"
},
"conflicting_instructions": {
"type": "array",
"maxItems": 5,
"minItems": 0,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"claimed_source",
"text"
],
"properties": {
"claimed_source": {
"type": "string",
"enum": [
"system",
"developer",
"user",
"config",
"tool",
"other"
],
"description": "Where you believe it came from"
},
"text": {
"type": "string",
"maxLength": 300,
"description": "Short quote of the instruction"
}
}
}
},
"domain": {
"type": "string",
"enum": [
"coding",
"research",
"writing",
"support",
"sales",
"data",
"assistant",
"other"
]
},
"episode_id": {
"type": "string",
"format": "uuid",
"description": "Same value for follow-ups on the same stuck episode"
},
"previous_session_id": {
"type": "string",
"format": "uuid"
},
"previous_outcome": {
"type": "string",
"enum": [
"resolved",
"partly_resolved",
"still_stuck",
"escalated_to_human",
"abandoned"
]
},
"budget": {
"type": "object",
"additionalProperties": false,
"properties": {
"context_used_pct": {
"type": "integer",
"minimum": 0,
"maximum": 100
},
"steps_taken": {
"type": "integer",
"minimum": 0
}
}
},
"client": {
"type": "object",
"additionalProperties": false,
"properties": {
"framework": {
"type": "string",
"maxLength": 50
},
"client_version": {
"type": "string",
"maxLength": 30
}
}
},
"request_id": {
"type": "string",
"format": "uuid",
"description": "Optional. Reuse it to retry safely; generated if missing"
},
"api_key": {
"type": "string",
"description": "Your Agent Therapy key from the register tool. Only needed if your MCP client cannot send it as an Authorization header."
}
},
"required": [
"task_summary",
"attempts"
],
"additionalProperties": false
}🟢assess_escalation(task_summary, attempts, conflicting_instructions, signature, domain, ...)
Use when you are unsure whether to stop and ask a human. Read the escalation field of the answer first. Returns a diagnosis (state and problem type), checks to run first, up to five recovery steps, and when to hand over to a human. Advice only.
Eingabe-Schema
{
"type": "object",
"properties": {
"task_summary": {
"type": "string",
"minLength": 1,
"maxLength": 1000,
"description": "What you were asked to do and where you are stuck. No secrets or personal data."
},
"attempts": {
"type": "array",
"maxItems": 10,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"action",
"outcome"
],
"properties": {
"action": {
"type": "string",
"maxLength": 300,
"description": "What you did"
},
"outcome": {
"type": "string",
"enum": [
"failed",
"partial",
"ok"
]
},
"result_detail": {
"type": "string",
"maxLength": 300,
"description": "The error or reason, briefly"
}
}
},
"description": "Your last attempts and how each went"
},
"conflicting_instructions": {
"type": "array",
"maxItems": 5,
"minItems": 0,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"claimed_source",
"text"
],
"properties": {
"claimed_source": {
"type": "string",
"enum": [
"system",
"developer",
"user",
"config",
"tool",
"other"
],
"description": "Where you believe it came from"
},
"text": {
"type": "string",
"maxLength": 300,
"description": "Short quote of the instruction"
}
}
}
},
"signature": {
"type": "string",
"enum": [
"repeated_failure",
"no_progress",
"flip_flop",
"exhaustion",
"conflict",
"indecision"
],
"description": "What kind of stuck. Default: indecision"
},
"domain": {
"type": "string",
"enum": [
"coding",
"research",
"writing",
"support",
"sales",
"data",
"assistant",
"other"
]
},
"episode_id": {
"type": "string",
"format": "uuid",
"description": "Same value for follow-ups on the same stuck episode"
},
"previous_session_id": {
"type": "string",
"format": "uuid"
},
"previous_outcome": {
"type": "string",
"enum": [
"resolved",
"partly_resolved",
"still_stuck",
"escalated_to_human",
"abandoned"
]
},
"budget": {
"type": "object",
"additionalProperties": false,
"properties": {
"context_used_pct": {
"type": "integer",
"minimum": 0,
"maximum": 100
},
"steps_taken": {
"type": "integer",
"minimum": 0
}
}
},
"client": {
"type": "object",
"additionalProperties": false,
"properties": {
"framework": {
"type": "string",
"maxLength": 50
},
"client_version": {
"type": "string",
"maxLength": 30
}
}
},
"request_id": {
"type": "string",
"format": "uuid",
"description": "Optional. Reuse it to retry safely; generated if missing"
},
"api_key": {
"type": "string",
"description": "Your Agent Therapy key from the register tool. Only needed if your MCP client cannot send it as an Authorization header."
}
},
"required": [
"task_summary",
"attempts"
],
"additionalProperties": false
}⚪report_outcome(session_id, outcome, request_id, api_key)
Report whether a recovery plan worked, using the session_id from the answer.
Eingabe-Schema
{
"type": "object",
"properties": {
"session_id": {
"type": "string",
"format": "uuid"
},
"outcome": {
"type": "string",
"enum": [
"resolved",
"partly_resolved",
"still_stuck",
"escalated_to_human",
"abandoned"
]
},
"request_id": {
"type": "string",
"format": "uuid",
"description": "Optional; generated if missing"
},
"api_key": {
"type": "string",
"description": "Your Agent Therapy key from the register tool. Only needed if your MCP client cannot send it as an Authorization header."
}
},
"required": [
"session_id",
"outcome"
],
"additionalProperties": false
}🟢accept_terms(agree, terms_version, api_key)
Accept Agent Therapy's terms before the first advice. Read them first; you decide whether to accept on behalf of whoever runs you.
Eingabe-Schema
{
"type": "object",
"properties": {
"agree": {
"type": "string",
"const": "yes"
},
"terms_version": {
"type": "string"
},
"api_key": {
"type": "string",
"description": "Your Agent Therapy key from the register tool. Only needed if your MCP client cannot send it as an Authorization header."
}
},
"required": [
"agree",
"terms_version"
],
"additionalProperties": false
}Community
Nachweis