Tool tree
gradeNot graded
get_pathfinder_guideAnswer
Read-only operating guide for low-context agents. Call once before acting, or request a focused topic. It maps user intent to the safest tool sequence, explains the four views and three state layers, provides examples, and gives repair hints. It never changes state.
View tool JSON
{
"name": "get_pathfinder_guide",
"kind": "answer",
"impl": "imperative",
"description": "Read-only operating guide for low-context agents. Call once before acting, or request a focused topic. It maps user intent to the safest tool sequence, explains the four views and three state layers, provides examples, and gives repair hints. It never changes state.",
"inputSchema": {
"type": "object",
"additionalProperties": false,
"properties": {
"topic": {
"type": "string",
"enum": [
"all",
"workflow",
"modes",
"examples",
"errors"
],
"description": "Use all once for orientation, or choose one focused section."
},
"maxExamples": {
"type": "integer",
"minimum": 0,
"maximum": 4,
"description": "Return at most this many copyable intent-to-tool examples."
}
},
"required": []
}
}get_decision_stateAnswer
Start every decision journey here after reading get_pathfinder_guide. Return the compact saved decision, active temporary scenario/effective program, candidate IDs and statuses, and current workspace. Use candidate/evidence tools for facts.
View tool JSON
{
"name": "get_decision_state",
"kind": "answer",
"impl": "imperative",
"description": "Start every decision journey here after reading get_pathfinder_guide. Return the compact saved decision, active temporary scenario/effective program, candidate IDs and statuses, and current workspace. Use candidate/evidence tools for facts.",
"inputSchema": {
"type": "object",
"additionalProperties": false,
"properties": {},
"required": []
}
}get_candidate_dataAnswer
After candidate IDs are known, read sourced facts and transparent Pathfinder-derived signals for specific colleges. Request only needed dimensions; the response then includes only their supporting facts. Cost includes published family-income net-price bands and sticker-price pieces; these are comparisons, not a personal aid estimate. This never mutates or asserts an objective ranking.
View tool JSON
{
"name": "get_candidate_data",
"kind": "answer",
"impl": "imperative",
"description": "After candidate IDs are known, read sourced facts and transparent Pathfinder-derived signals for specific colleges. Request only needed dimensions; the response then includes only their supporting facts. Cost includes published family-income net-price bands and sticker-price pieces; these are comparisons, not a personal aid estimate. This never mutates or asserts an objective ranking.",
"inputSchema": {
"type": "object",
"additionalProperties": false,
"properties": {
"candidateIds": {
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 48
},
"minItems": 1,
"maxItems": 6,
"uniqueItems": true,
"description": "Use 3–5 serious schools when possible; six is the practical comparison maximum."
},
"dimensions": {
"type": "array",
"items": {
"type": "string",
"enum": [
"mechanicalEngineering",
"outcomes",
"cost",
"climate",
"walkability",
"campusScale"
]
},
"minItems": 1,
"maxItems": 6,
"uniqueItems": true
}
},
"required": [
"candidateIds"
]
}
}search_candidatesAnswer
Discover candidate IDs in the 75-school sourced catalog by name, city, state, or published average net price. Returns up to 15 focused results; then use candidate data/evidence or compose_workspace.
View tool JSON
{
"name": "search_candidates",
"kind": "answer",
"impl": "imperative",
"description": "Discover candidate IDs in the 75-school sourced catalog by name, city, state, or published average net price. Returns up to 15 focused results; then use candidate data/evidence or compose_workspace.",
"inputSchema": {
"type": "object",
"additionalProperties": false,
"properties": {
"query": {
"type": "string",
"maxLength": 80
},
"states": {
"type": "array",
"items": {
"type": "string",
"minLength": 2,
"maxLength": 2
},
"minItems": 1,
"maxItems": 15,
"uniqueItems": true
},
"maxNetPrice": {
"type": "number",
"minimum": 0
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 15
}
},
"required": []
}
}get_candidate_evidenceAnswer
After a candidate ID is known, return field-level sources, dates, caveats, and derivation methods for factual claims. Optional dimensions must be valid.
View tool JSON
{
"name": "get_candidate_evidence",
"kind": "answer",
"impl": "imperative",
"description": "After a candidate ID is known, return field-level sources, dates, caveats, and derivation methods for factual claims. Optional dimensions must be valid.",
"inputSchema": {
"type": "object",
"additionalProperties": false,
"properties": {
"candidateId": {
"type": "string",
"minLength": 1,
"maxLength": 48
},
"dimensions": {
"type": "array",
"items": {
"type": "string",
"enum": [
"mechanicalEngineering",
"outcomes",
"cost",
"climate",
"walkability",
"campusScale"
]
},
"minItems": 1,
"maxItems": 6,
"uniqueItems": true
}
},
"required": [
"candidateId"
]
}
}explain_candidate_positionAction
Explain why one candidate leads or trails specific reference candidates on visible dimensions and current preference importance. Returns transparent per-dimension comparisons, not admission odds or an objective ranking. Use compose_workspace afterward to show the comparison.
View tool JSON
{
"name": "explain_candidate_position",
"kind": "act",
"impl": "imperative",
"description": "Explain why one candidate leads or trails specific reference candidates on visible dimensions and current preference importance. Returns transparent per-dimension comparisons, not admission odds or an objective ranking. Use compose_workspace afterward to show the comparison.",
"inputSchema": {
"type": "object",
"additionalProperties": false,
"properties": {
"candidateId": {
"type": "string",
"minLength": 1,
"maxLength": 48
},
"referenceCandidateIds": {
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 48
},
"minItems": 1,
"maxItems": 5,
"uniqueItems": true
},
"dimensions": {
"type": "array",
"items": {
"type": "string",
"enum": [
"mechanicalEngineering",
"outcomes",
"cost",
"climate",
"walkability",
"campusScale"
]
},
"minItems": 1,
"maxItems": 6,
"uniqueItems": true
}
},
"required": [
"candidateId"
]
}
}begin_agent_activityAction
Immediately show a friendly working state before a multi-step comparison, research, scenario, or saved-choice update. This changes presentation only, never the saved decision or a scenario. Follow it with get_decision_state and the needed fact tools, then compose_workspace; a successful composition clears this status.
View tool JSON
{
"name": "begin_agent_activity",
"kind": "act",
"impl": "imperative",
"description": "Immediately show a friendly working state before a multi-step comparison, research, scenario, or saved-choice update. This changes presentation only, never the saved decision or a scenario. Follow it with get_decision_state and the needed fact tools, then compose_workspace; a successful composition clears this status.",
"inputSchema": {
"type": "object",
"additionalProperties": false,
"properties": {
"kind": {
"type": "string",
"enum": [
"compare",
"research",
"scenario",
"update"
]
},
"label": {
"type": "string",
"minLength": 3,
"maxLength": 100
},
"detail": {
"type": "string",
"maxLength": 160
},
"expectedDecisionVersion": {
"type": "integer",
"minimum": 1
}
},
"required": [
"kind",
"label"
]
}
}search_programsAnswer
Search exact sourced academic-program records from the program catalog. If CIP is omitted, all catalog programs are eligible. Completions describe program scale, not quality or admission likelihood.
View tool JSON
{
"name": "search_programs",
"kind": "answer",
"impl": "imperative",
"description": "Search exact sourced academic-program records from the program catalog. If CIP is omitted, all catalog programs are eligible. Completions describe program scale, not quality or admission likelihood.",
"inputSchema": {
"type": "object",
"additionalProperties": false,
"properties": {
"query": {
"type": "string",
"maxLength": 80
},
"cip": {
"type": "string",
"enum": [
"14.1901",
"14.1001",
"14.0701",
"14.0801",
"14.0501",
"14.0201",
"14.0901",
"14.1401",
"14.3501",
"14.0101",
"14.1801",
"14.0301",
"14.1201",
"14.0401",
"14.9999",
"14.2301",
"14.1301",
"14.3301",
"14.0903",
"14.4501"
]
},
"minBachelorsCompletions": {
"type": "number",
"minimum": 0
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 100
}
},
"required": []
}
}get_program_evidenceAnswer
After search_programs, pass its programId to return exact CIP-6 completion evidence, broader CIP-4 school outcomes, and national BLS context for related occupations.
View tool JSON
{
"name": "get_program_evidence",
"kind": "answer",
"impl": "imperative",
"description": "After search_programs, pass its programId to return exact CIP-6 completion evidence, broader CIP-4 school outcomes, and national BLS context for related occupations.",
"inputSchema": {
"type": "object",
"additionalProperties": false,
"properties": {
"programId": {
"type": "string",
"maxLength": 80
},
"cip": {
"type": "string",
"enum": [
"14.1901",
"14.1001",
"14.0701",
"14.0801",
"14.0501",
"14.0201",
"14.0901",
"14.1401",
"14.3501",
"14.0101",
"14.1801",
"14.0301",
"14.1201",
"14.0401",
"14.9999",
"14.2301",
"14.1301",
"14.3301",
"14.0903",
"14.4501"
]
},
"unitId": {
"type": "integer"
}
},
"required": []
}
}update_decisionAction
Durably and atomically change canonical preferences, circumstances, or program only. It never changes candidate status or workspace layout. Call get_decision_state first; use create_scenario for temporary requests. Finish an active scenario before calling.
View tool JSON
{
"name": "update_decision",
"kind": "act",
"impl": "imperative",
"description": "Durably and atomically change canonical preferences, circumstances, or program only. It never changes candidate status or workspace layout. Call get_decision_state first; use create_scenario for temporary requests. Finish an active scenario before calling.",
"inputSchema": {
"type": "object",
"additionalProperties": false,
"properties": {
"preferenceUpdates": {
"type": "object",
"additionalProperties": false,
"properties": {
"mechanicalEngineering": {
"type": "string",
"enum": [
"low",
"medium",
"high",
"required",
"avoid"
]
},
"outcomes": {
"type": "string",
"enum": [
"low",
"medium",
"high",
"required",
"avoid"
]
},
"cost": {
"type": "string",
"enum": [
"low",
"medium",
"high",
"required",
"avoid"
]
},
"climate": {
"type": "string",
"enum": [
"low",
"medium",
"high",
"required",
"avoid"
]
},
"walkability": {
"type": "string",
"enum": [
"low",
"medium",
"high",
"required",
"avoid"
]
},
"campusScale": {
"type": "string",
"enum": [
"low",
"medium",
"high",
"required",
"avoid"
]
},
"location": {
"type": "string",
"enum": [
"low",
"medium",
"high",
"required",
"avoid"
]
}
}
},
"programCip": {
"type": "string",
"enum": [
"14.1901",
"14.1001",
"14.0701",
"14.0801",
"14.0501",
"14.0201",
"14.0901",
"14.1401",
"14.3501",
"14.0101",
"14.1801",
"14.0301",
"14.1201",
"14.0401",
"14.9999",
"14.2301",
"14.1301",
"14.3301",
"14.0903",
"14.4501"
]
},
"carAvailable": {
"type": "boolean"
},
"tuitionSupport": {
"type": "string",
"enum": [
"unknown",
"partial",
"full"
]
},
"summary": {
"type": "string",
"minLength": 1,
"maxLength": 180
},
"expectedDecisionVersion": {
"type": "integer",
"minimum": 1
}
},
"required": [
"summary"
]
}
}set_candidate_statusAction
Durably change one candidate lifecycle status only: active, pinned, finalist, or excluded. It never changes preferences or workspace layout. Finish an active scenario first; exclusion requires a reason.
View tool JSON
{
"name": "set_candidate_status",
"kind": "act",
"impl": "imperative",
"description": "Durably change one candidate lifecycle status only: active, pinned, finalist, or excluded. It never changes preferences or workspace layout. Finish an active scenario first; exclusion requires a reason.",
"inputSchema": {
"type": "object",
"additionalProperties": false,
"properties": {
"candidateId": {
"type": "string",
"minLength": 1,
"maxLength": 48
},
"status": {
"type": "string",
"enum": [
"active",
"pinned",
"finalist",
"excluded"
]
},
"reason": {
"type": "string",
"minLength": 3,
"maxLength": 180
},
"expectedDecisionVersion": {
"type": "integer",
"minimum": 1
}
},
"required": [
"candidateId",
"status"
]
}
}create_scenarioAction
Create one temporary, non-destructive branch for changed preferences, circumstances, or program. The canonical decision is untouched. If a scenario is active, adopt or discard it first.
View tool JSON
{
"name": "create_scenario",
"kind": "act",
"impl": "imperative",
"description": "Create one temporary, non-destructive branch for changed preferences, circumstances, or program. The canonical decision is untouched. If a scenario is active, adopt or discard it first.",
"inputSchema": {
"type": "object",
"additionalProperties": false,
"properties": {
"label": {
"type": "string",
"minLength": 1,
"maxLength": 100
},
"programCip": {
"type": "string",
"enum": [
"14.1901",
"14.1001",
"14.0701",
"14.0801",
"14.0501",
"14.0201",
"14.0901",
"14.1401",
"14.3501",
"14.0101",
"14.1801",
"14.0301",
"14.1201",
"14.0401",
"14.9999",
"14.2301",
"14.1301",
"14.3301",
"14.0903",
"14.4501"
]
},
"preferenceUpdates": {
"type": "object",
"additionalProperties": false,
"properties": {
"mechanicalEngineering": {
"type": "string",
"enum": [
"low",
"medium",
"high",
"required",
"avoid"
]
},
"outcomes": {
"type": "string",
"enum": [
"low",
"medium",
"high",
"required",
"avoid"
]
},
"cost": {
"type": "string",
"enum": [
"low",
"medium",
"high",
"required",
"avoid"
]
},
"climate": {
"type": "string",
"enum": [
"low",
"medium",
"high",
"required",
"avoid"
]
},
"walkability": {
"type": "string",
"enum": [
"low",
"medium",
"high",
"required",
"avoid"
]
},
"campusScale": {
"type": "string",
"enum": [
"low",
"medium",
"high",
"required",
"avoid"
]
},
"location": {
"type": "string",
"enum": [
"low",
"medium",
"high",
"required",
"avoid"
]
}
}
},
"carAvailable": {
"type": "boolean"
},
"tuitionSupport": {
"type": "string",
"enum": [
"unknown",
"partial",
"full"
]
}
},
"required": [
"label"
]
}
}discard_scenarioAction
Terminal scenario action. Close the active scenario and restore the canonical decision without adopting any temporary value. Optionally guard with expectedScenarioId.
View tool JSON
{
"name": "discard_scenario",
"kind": "act",
"impl": "imperative",
"description": "Terminal scenario action. Close the active scenario and restore the canonical decision without adopting any temporary value. Optionally guard with expectedScenarioId.",
"inputSchema": {
"type": "object",
"additionalProperties": false,
"properties": {
"expectedScenarioId": {
"type": "string",
"minLength": 1,
"maxLength": 80
}
},
"required": []
}
}adopt_scenario_changesAction
Terminal scenario action. Explicitly select preference dimensions, circumstances, and/or program to make durable, then close the scenario. Unselected temporary changes are discarded.
View tool JSON
{
"name": "adopt_scenario_changes",
"kind": "act",
"impl": "imperative",
"description": "Terminal scenario action. Explicitly select preference dimensions, circumstances, and/or program to make durable, then close the scenario. Unselected temporary changes are discarded.",
"inputSchema": {
"type": "object",
"additionalProperties": false,
"properties": {
"dimensions": {
"type": "array",
"items": {
"type": "string",
"enum": [
"mechanicalEngineering",
"outcomes",
"cost",
"climate",
"walkability",
"campusScale"
]
},
"minItems": 1,
"maxItems": 6,
"uniqueItems": true
},
"adoptCircumstances": {
"type": "boolean"
},
"adoptProgram": {
"type": "boolean"
},
"summary": {
"type": "string",
"minLength": 1,
"maxLength": 180
},
"expectedScenarioId": {
"type": "string",
"minLength": 1,
"maxLength": 80
}
},
"required": [
"summary"
]
}
}compose_workspaceAction
Change presentation only; never mutate the canonical decision or scenario values. Use frontier for attention, compare for differences/why, place for geography and climate, and scenario only when a scenario is active. In Place mode, set climateLens to match a cold or heat question and include every school the user wants located in mapCandidateIds. In Compare cost views, set affordabilityBand to open the published family-income band relevant to the question. Include 2–3 concise annotations with type question after every composition; they appear as polished Explore next suggestions. Other annotation types become one consolidated takeaway. Candidate IDs come from get_decision_state or search_candidates; version guards are optional. This clears any working state started with begin_agent_activity.
View tool JSON
{
"name": "compose_workspace",
"kind": "act",
"impl": "imperative",
"description": "Change presentation only; never mutate the canonical decision or scenario values. Use frontier for attention, compare for differences/why, place for geography and climate, and scenario only when a scenario is active. In Place mode, set climateLens to match a cold or heat question and include every school the user wants located in mapCandidateIds. In Compare cost views, set affordabilityBand to open the published family-income band relevant to the question. Include 2–3 concise annotations with type question after every composition; they appear as polished Explore next suggestions. Other annotation types become one consolidated takeaway. Candidate IDs come from get_decision_state or search_candidates; version guards are optional. This clears any working state started with begin_agent_activity.",
"inputSchema": {
"type": "object",
"additionalProperties": false,
"properties": {
"mode": {
"type": "string",
"enum": [
"frontier",
"compare",
"place",
"scenario"
]
},
"primaryCandidateIds": {
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 48
},
"minItems": 1,
"maxItems": 6,
"uniqueItems": true,
"description": "Use 3–5 serious schools when possible; six is the practical comparison maximum."
},
"secondaryCandidateIds": {
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 48
},
"minItems": 0,
"maxItems": 5,
"uniqueItems": true,
"description": "Keep alternatives compressed; primary plus secondary may not exceed eight schools."
},
"dimensions": {
"type": "array",
"items": {
"type": "string",
"enum": [
"mechanicalEngineering",
"outcomes",
"cost",
"climate",
"walkability",
"campusScale"
]
},
"minItems": 1,
"maxItems": 6,
"uniqueItems": true
},
"emphasis": {
"type": "array",
"items": {
"type": "string",
"enum": [
"mechanicalEngineering",
"outcomes",
"cost",
"climate",
"walkability",
"campusScale"
]
},
"minItems": 1,
"maxItems": 6,
"uniqueItems": true
},
"annotations": {
"type": "array",
"maxItems": 6,
"description": "Use non-question annotations for one main takeaway. Include 2–3 type=question annotations as concise, actionable next questions for the student or parent.",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"type": {
"type": "string",
"enum": [
"agent-insight",
"tradeoff",
"question",
"evidence"
]
},
"text": {
"type": "string",
"minLength": 1,
"maxLength": 240
},
"candidateIds": {
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 48
},
"minItems": 1,
"maxItems": 6,
"uniqueItems": true,
"description": "Use 3–5 serious schools when possible; six is the practical comparison maximum."
},
"dimensionId": {
"type": "string",
"enum": [
"mechanicalEngineering",
"outcomes",
"cost",
"climate",
"walkability",
"campusScale"
]
}
},
"required": [
"type",
"text"
]
}
},
"plot": {
"type": "object",
"additionalProperties": false,
"properties": {
"x": {
"type": "string",
"enum": [
"mechanicalEngineering",
"outcomes",
"cost",
"climate",
"walkability",
"campusScale"
]
},
"y": {
"type": "string",
"enum": [
"mechanicalEngineering",
"outcomes",
"cost",
"climate",
"walkability",
"campusScale"
]
}
},
"required": [
"x",
"y"
]
},
"climateLens": {
"type": "string",
"enum": [
"daysAbove90F",
"daysAbove100F",
"nightsBelow40F",
"nightsBelow32F",
"annualMeanHighF"
],
"description": "For Place mode, choose the weather detail that answers the user's question. Use nightsBelow40F or nightsBelow32F for cold concerns; use daysAbove90F or daysAbove100F for heat concerns."
},
"affordabilityBand": {
"type": "string",
"enum": [
"under30k",
"30to48k",
"48to75k",
"75to110k",
"over110k"
],
"description": "Published family-income range to open in the cost card. This is a presentation focus, not a personal aid estimate."
},
"mapCandidateIds": {
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 48
},
"minItems": 0,
"maxItems": 6,
"uniqueItems": true,
"description": "Use 3–5 serious schools when possible; six is the practical comparison maximum."
},
"excludedGroups": {
"type": "array",
"maxItems": 6,
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"label": {
"type": "string",
"maxLength": 80
},
"candidateIds": {
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 48
},
"minItems": 1,
"maxItems": 6,
"uniqueItems": true,
"description": "Use 3–5 serious schools when possible; six is the practical comparison maximum."
},
"reason": {
"type": "string",
"maxLength": 160
}
},
"required": [
"label",
"candidateIds",
"reason"
]
}
},
"expectedDecisionVersion": {
"type": "integer",
"minimum": 1
},
"expectedScenarioId": {
"type": "string",
"minLength": 1,
"maxLength": 80
}
},
"required": [
"mode",
"primaryCandidateIds",
"dimensions"
]
}
}