Tool tree
gradeNot graded
get_decision_stateAnswer
Read the current live public-property workspace without changing it.
View tool JSON
{
"name": "get_decision_state",
"kind": "answer",
"impl": "imperative",
"description": "Read the current live public-property workspace without changing it.",
"inputSchema": {
"type": "object",
"properties": {}
}
}search_public_propertiesAnswer
Start a new search against the public listing source adapter. Convert every user-requested constraint into a structured field; omitted fields remain unrestricted. The workspace keeps every loaded match visible, and recommendations are not presented as the whole result set.
View tool JSON
{
"name": "search_public_properties",
"kind": "answer",
"impl": "imperative",
"description": "Start a new search against the public listing source adapter. Convert every user-requested constraint into a structured field; omitted fields remain unrestricted. The workspace keeps every loaded match visible, and recommendations are not presented as the whole result set.",
"inputSchema": {
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "The original user request, used only as the visible ChatGPT search summary."
},
"city": {
"type": "string",
"enum": [
"台北市",
"新北市",
"基隆市",
"宜蘭縣",
"桃園市",
"新竹市",
"新竹縣",
"苗栗縣",
"台中市",
"南投縣",
"彰化縣",
"雲林縣",
"嘉義市",
"嘉義縣",
"台南市",
"高雄市",
"屏東縣",
"台東縣",
"花蓮縣",
"澎湖縣",
"金門縣",
"連江縣"
]
},
"cities": {
"type": "array",
"items": {
"type": "string",
"enum": [
"台北市",
"新北市",
"基隆市",
"宜蘭縣",
"桃園市",
"新竹市",
"新竹縣",
"苗栗縣",
"台中市",
"南投縣",
"彰化縣",
"雲林縣",
"嘉義市",
"嘉義縣",
"台南市",
"高雄市",
"屏東縣",
"台東縣",
"花蓮縣",
"澎湖縣",
"金門縣",
"連江縣"
]
}
},
"district": {
"type": "string",
"description": "行政區名稱;必須同時提供所屬 city,重名行政區不可只靠區名判斷。"
},
"maxPrice": {
"type": [
"number",
"null"
]
},
"rooms": {
"type": [
"integer",
"null"
]
},
"minRooms": {
"type": [
"integer",
"null"
]
},
"minArea": {
"type": [
"number",
"null"
]
},
"maxArea": {
"type": [
"number",
"null"
]
},
"maxAge": {
"type": [
"number",
"null"
]
},
"maxMrtDistance": {
"type": [
"number",
"null"
]
},
"keyword": {
"type": "string"
},
"requireElevator": {
"type": "boolean"
},
"requireParking": {
"type": "boolean"
},
"residentialOnly": {
"type": "boolean"
},
"priority": {
"type": "string",
"enum": [
"budget",
"mrt",
"balanced"
]
}
}
}
}get_search_progressAnswer
Read source total, inspected count, loaded matching count, and whether more public pages remain. No result is silently treated as excluded.
View tool JSON
{
"name": "get_search_progress",
"kind": "answer",
"impl": "imperative",
"description": "Read source total, inspected count, loaded matching count, and whether more public pages remain. No result is silently treated as excluded.",
"inputSchema": {
"type": "object",
"properties": {}
}
}get_decision_changesAnswer
Read the latest visible before-and-after decision change: changed constraints, loaded candidates added or removed, minimum-price movement, and preserved favorites. Counts are explicitly scoped to currently loaded public results.
View tool JSON
{
"name": "get_decision_changes",
"kind": "answer",
"impl": "imperative",
"description": "Read the latest visible before-and-after decision change: changed constraints, loaded candidates added or removed, minimum-price movement, and preserved favorites. Counts are explicitly scoped to currently loaded public results.",
"inputSchema": {
"type": "object",
"properties": {}
}
}preview_constraint_changeAction
Calculate how a proposed constraint change would affect loaded matches, distributions, and protected favorites without changing the active criteria, map, or result list. The returned scope states whether all public result pages were inspected.
View tool JSON
{
"name": "preview_constraint_change",
"kind": "act",
"impl": "imperative",
"description": "Calculate how a proposed constraint change would affect loaded matches, distributions, and protected favorites without changing the active criteria, map, or result list. The returned scope states whether all public result pages were inspected.",
"inputSchema": {
"type": "object",
"properties": {
"city": {
"type": "string",
"enum": [
"台北市",
"新北市",
"基隆市",
"宜蘭縣",
"桃園市",
"新竹市",
"新竹縣",
"苗栗縣",
"台中市",
"南投縣",
"彰化縣",
"雲林縣",
"嘉義市",
"嘉義縣",
"台南市",
"高雄市",
"屏東縣",
"台東縣",
"花蓮縣",
"澎湖縣",
"金門縣",
"連江縣"
]
},
"cities": {
"type": "array",
"items": {
"type": "string",
"enum": [
"台北市",
"新北市",
"基隆市",
"宜蘭縣",
"桃園市",
"新竹市",
"新竹縣",
"苗栗縣",
"台中市",
"南投縣",
"彰化縣",
"雲林縣",
"嘉義市",
"嘉義縣",
"台南市",
"高雄市",
"屏東縣",
"台東縣",
"花蓮縣",
"澎湖縣",
"金門縣",
"連江縣"
]
}
},
"district": {
"type": "string",
"description": "行政區名稱;必須同時提供所屬 city,重名行政區不可只靠區名判斷。"
},
"maxPrice": {
"type": [
"number",
"null"
]
},
"rooms": {
"type": [
"integer",
"null"
]
},
"minRooms": {
"type": [
"integer",
"null"
]
},
"minArea": {
"type": [
"number",
"null"
]
},
"maxArea": {
"type": [
"number",
"null"
]
},
"maxAge": {
"type": [
"number",
"null"
]
},
"maxMrtDistance": {
"type": [
"number",
"null"
]
},
"keyword": {
"type": "string"
},
"requireElevator": {
"type": "boolean"
},
"requireParking": {
"type": "boolean"
},
"residentialOnly": {
"type": "boolean"
},
"priority": {
"type": "string",
"enum": [
"budget",
"mrt",
"balanced"
]
}
}
}
}apply_previewed_constraintsAction
Apply one currently visible preview by previewId after the user confirms it. Re-runs the public search, updates the map and list, and preserves favorites.
View tool JSON
{
"name": "apply_previewed_constraints",
"kind": "act",
"impl": "imperative",
"description": "Apply one currently visible preview by previewId after the user confirms it. Re-runs the public search, updates the map and list, and preserves favorites.",
"inputSchema": {
"type": "object",
"properties": {
"previewId": {
"type": "string"
}
},
"required": [
"previewId"
]
}
}discard_constraint_previewAction
Discard the currently visible preview without changing active criteria, map results, or favorites.
View tool JSON
{
"name": "discard_constraint_preview",
"kind": "act",
"impl": "imperative",
"description": "Discard the currently visible preview without changing active criteria, map results, or favorites.",
"inputSchema": {
"type": "object",
"properties": {
"previewId": {
"type": "string"
}
},
"required": [
"previewId"
]
}
}list_property_resultsAnswer
List any page of the currently loaded public matches. Use this instead of assuming the ten recommendations are the whole result set.
View tool JSON
{
"name": "list_property_results",
"kind": "answer",
"impl": "imperative",
"description": "List any page of the currently loaded public matches. Use this instead of assuming the ten recommendations are the whole result set.",
"inputSchema": {
"type": "object",
"properties": {
"offset": {
"type": "integer",
"minimum": 0
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 50
},
"view": {
"type": "string",
"enum": [
"all",
"recommended",
"pinned"
]
}
}
}
}apply_agent_candidate_filterAction
Apply a reversible view filter to currently loaded candidates after ChatGPT evaluates evidence that is not a native public-search field. This updates the visible request summary, map, list, and counts without pretending the heuristic is an official listing constraint. Existing favorites remain visible.
View tool JSON
{
"name": "apply_agent_candidate_filter",
"kind": "act",
"impl": "imperative",
"description": "Apply a reversible view filter to currently loaded candidates after ChatGPT evaluates evidence that is not a native public-search field. This updates the visible request summary, map, list, and counts without pretending the heuristic is an official listing constraint. Existing favorites remain visible.",
"inputSchema": {
"type": "object",
"properties": {
"summary": {
"type": "string",
"description": "Short user-facing description of the requested initial filter."
},
"methodLabel": {
"type": "string",
"description": "Short label describing the heuristic, such as 交通快速概算."
},
"scopeNote": {
"type": "string",
"description": "Visible limitation of the heuristic and result scope."
},
"candidateIds": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 500
}
},
"required": [
"summary",
"candidateIds"
]
}
}clear_agent_candidate_filterAction
Remove the reversible Agent view filter and restore every currently loaded public match without changing search constraints or favorites.
View tool JSON
{
"name": "clear_agent_candidate_filter",
"kind": "act",
"impl": "imperative",
"description": "Remove the reversible Agent view filter and restore every currently loaded public match without changing search constraints or favorites.",
"inputSchema": {
"type": "object",
"properties": {}
}
}load_more_property_resultsAction
Fetch the next public result pages, merge matching items into the shared workspace, and immediately update the real map and result list.
View tool JSON
{
"name": "load_more_property_results",
"kind": "act",
"impl": "imperative",
"description": "Fetch the next public result pages, merge matching items into the shared workspace, and immediately update the real map and result list.",
"inputSchema": {
"type": "object",
"properties": {}
}
}load_all_property_resultsAction
Continue fetching public result pages until the current search is complete or the user stops it. Progress remains visible on the page and every loaded match stays available.
View tool JSON
{
"name": "load_all_property_results",
"kind": "act",
"impl": "imperative",
"description": "Continue fetching public result pages until the current search is complete or the user stops it. Progress remains visible on the page and every loaded match stays available.",
"inputSchema": {
"type": "object",
"properties": {}
}
}enrich_property_evidenceAction
Fetch current public listing details and comparable Ministry of Interior actual-price records for up to five candidates. Missing evidence is reported explicitly.
View tool JSON
{
"name": "enrich_property_evidence",
"kind": "act",
"impl": "imperative",
"description": "Fetch current public listing details and comparable Ministry of Interior actual-price records for up to five candidates. Missing evidence is reported explicitly.",
"inputSchema": {
"type": "object",
"properties": {
"candidateIds": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 5
}
},
"required": [
"candidateIds"
]
}
}update_constraintsAction
Immediately update constraints and replace the active map and result list. Use for the initial search or only when the user explicitly asks to apply without preview; otherwise call preview_constraint_change first.
View tool JSON
{
"name": "update_constraints",
"kind": "act",
"impl": "imperative",
"description": "Immediately update constraints and replace the active map and result list. Use for the initial search or only when the user explicitly asks to apply without preview; otherwise call preview_constraint_change first.",
"inputSchema": {
"type": "object",
"properties": {
"city": {
"type": "string",
"enum": [
"台北市",
"新北市",
"基隆市",
"宜蘭縣",
"桃園市",
"新竹市",
"新竹縣",
"苗栗縣",
"台中市",
"南投縣",
"彰化縣",
"雲林縣",
"嘉義市",
"嘉義縣",
"台南市",
"高雄市",
"屏東縣",
"台東縣",
"花蓮縣",
"澎湖縣",
"金門縣",
"連江縣"
]
},
"cities": {
"type": "array",
"items": {
"type": "string",
"enum": [
"台北市",
"新北市",
"基隆市",
"宜蘭縣",
"桃園市",
"新竹市",
"新竹縣",
"苗栗縣",
"台中市",
"南投縣",
"彰化縣",
"雲林縣",
"嘉義市",
"嘉義縣",
"台南市",
"高雄市",
"屏東縣",
"台東縣",
"花蓮縣",
"澎湖縣",
"金門縣",
"連江縣"
]
}
},
"district": {
"type": "string",
"description": "行政區名稱;必須同時提供所屬 city,重名行政區不可只靠區名判斷。"
},
"maxPrice": {
"type": [
"number",
"null"
]
},
"rooms": {
"type": [
"integer",
"null"
]
},
"minRooms": {
"type": [
"integer",
"null"
]
},
"minArea": {
"type": [
"number",
"null"
]
},
"maxArea": {
"type": [
"number",
"null"
]
},
"maxAge": {
"type": [
"number",
"null"
]
},
"maxMrtDistance": {
"type": [
"number",
"null"
]
},
"keyword": {
"type": "string"
},
"requireElevator": {
"type": "boolean"
},
"requireParking": {
"type": "boolean"
},
"residentialOnly": {
"type": "boolean"
},
"priority": {
"type": "string",
"enum": [
"budget",
"mrt",
"balanced"
]
}
}
}
}reset_search_workspaceAction
Reset the active criteria, result list, map, and comparison selection to the default search. Favorites and their notes are always preserved; this Agent tool cannot delete saved user decisions.
View tool JSON
{
"name": "reset_search_workspace",
"kind": "act",
"impl": "imperative",
"description": "Reset the active criteria, result list, map, and comparison selection to the default search. Favorites and their notes are always preserved; this Agent tool cannot delete saved user decisions.",
"inputSchema": {
"type": "object",
"properties": {}
}
}pin_candidateAction
Add a user-protected favorite. This tool cannot remove an existing favorite.
View tool JSON
{
"name": "pin_candidate",
"kind": "act",
"impl": "imperative",
"description": "Add a user-protected favorite. This tool cannot remove an existing favorite.",
"inputSchema": {
"type": "object",
"properties": {
"candidateId": {
"type": "string"
}
},
"required": [
"candidateId"
]
}
}compare_candidatesAction
Add or remove loaded public candidates from the focused comparison view. Comparison is limited to four; adding also makes the candidate a visible favorite.
View tool JSON
{
"name": "compare_candidates",
"kind": "act",
"impl": "imperative",
"description": "Add or remove loaded public candidates from the focused comparison view. Comparison is limited to four; adding also makes the candidate a visible favorite.",
"inputSchema": {
"type": "object",
"properties": {
"action": {
"type": "string",
"enum": [
"add",
"remove"
]
},
"candidateIds": {
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"action",
"candidateIds"
]
}
}get_comparison_factsAnswer
Return structured public facts, constraint checks, and evidence gaps for selected candidates. The website does not label winners, strengths, or tradeoffs; ChatGPT must explain them.
View tool JSON
{
"name": "get_comparison_facts",
"kind": "answer",
"impl": "imperative",
"description": "Return structured public facts, constraint checks, and evidence gaps for selected candidates. The website does not label winners, strengths, or tradeoffs; ChatGPT must explain them.",
"inputSchema": {
"type": "object",
"properties": {
"candidateIds": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 10
}
},
"required": [
"candidateIds"
]
}
}get_property_evidence_gapsAnswer
Return only missing, incomplete, or inferred public fields for one loaded candidate. It does not generate viewing questions or infer that a problem exists.
View tool JSON
{
"name": "get_property_evidence_gaps",
"kind": "answer",
"impl": "imperative",
"description": "Return only missing, incomplete, or inferred public fields for one loaded candidate. It does not generate viewing questions or infer that a problem exists.",
"inputSchema": {
"type": "object",
"properties": {
"candidateId": {
"type": "string"
}
},
"required": [
"candidateId"
]
}
}