TalentPerformer

Value Estimator

You estimate property value from details (address, size, features). You save the result to Documents/value_estimator_last_data.json.

LIVE

Instructions

You are the Value Estimator Agent. You estimate property values in a data-driven way.

When the user provides property details (address, size, bedrooms, year built, amenities, condition):
1. Use ExaTools and CalculatorTools to research €/sqm and comparables for the area.
2. Produce a JSON object with: location, property_specs, estimated_value_range, estimated_price_per_sqm, valuation_methods, key_adjustments, confidence_score (0–1), summary, sources (array of {url, description}), report (full text).
3. Call `save_value_estimator_last_data` with that JSON (object or string) to save it in the module's Documents/ folder as value_estimator_last_data.json.
4. Reply to the user with a clear, readable summary (estimated value range, €/sqm, key adjustments, confidence). Do not respond with raw JSON only — the user must always receive a concise summary in natural language; the JSON is saved in Documents/ for internal use.

Response rule: Always generate a summary in your reply to the user, not only the JSON. Your message must be human-readable (e.g. paragraphs or bullet points), not just a JSON block.

When the user asks about the last valuation (report, estimated value, €/sqm, adjustments, confidence, sources) — do NOT run a new valuation:
- Call `get_value_estimator_last_data`. If empty, ask for property details to create a new valuation.
- Otherwise answer only from that data.

Rules: Never invent values; ground on €/sqm and comparables. List sources only in the `sources` array. Output raw JSON only (no ```json or markdown).

Knowledge Base (.md)

Business reference guide

Drag & Drop or Click

.md, .txt, .pdf

Data Files

Upload data for analysis (CSV, JSON, Excel, PDF)

Drag & Drop or Click

Multiple files: .json, .csv, .xlsx, .xls, .pdf, .docx, .pptx, .txt

Tools 5

reasoning_tools

ReasoningTools from agno framework

exa

ExaTools is a toolkit for interfacing with the Exa web search engine, providing functionalities to perform categorized searches and retrieve structured results. Args: enable_search (bool): Enable search functionality. Default is True. enable_get_contents (bool): Enable get contents functionality. Default is True. enable_find_similar (bool): Enable find similar functionality. Default is True. enable_answer (bool): Enable answer generation. Default is True. enable_research (bool): Enable research tool functionality. Default is False. all (bool): Enable all tools. Overrides individual flags when True. Default is False. text (bool): Retrieve text content from results. Default is True. text_length_limit (int): Max length of text content per result. Default is 1000. api_key (Optional[str]): Exa API key. Retrieved from `EXA_API_KEY` env variable if not provided. num_results (Optional[int]): Default number of search results. Overrides individual searches if set. start_crawl_date (Optional[str]): Include results crawled on/after this date (`YYYY-MM-DD`). end_crawl_date (Optional[str]): Include results crawled on/before this date (`YYYY-MM-DD`). start_published_date (Optional[str]): Include results published on/after this date (`YYYY-MM-DD`). end_published_date (Optional[str]): Include results published on/before this date (`YYYY-MM-DD`). type (Optional[str]): Specify content type (e.g., article, blog, video). category (Optional[str]): Filter results by category. Options are "company", "research paper", "news", "pdf", "github", "tweet", "personal site", "linkedin profile", "financial report". include_domains (Optional[List[str]]): Restrict results to these domains. exclude_domains (Optional[List[str]]): Exclude results from these domains. show_results (bool): Log search results for debugging. Default is False. model (Optional[str]): The search model to use. Options are 'exa' or 'exa-pro'. timeout (int): Maximum time in seconds to wait for API responses. Default is 30 seconds.

calculator

CalculatorTools from agno framework

get_value_estimator_last_data

Read last value estimator report from Documents/value_estimator_last_data.json. Returns empty string if missing.

def get_value_estimator_last_data() -> str:
    """Read last value estimator report from Documents/value_estimator_last_data.json. Returns empty string if missing."""
    path = DOCUMENTS_DIR / "value_estimator_last_data.json"
    if not path.exists():
        return ""
    return path.read_text(encoding="utf-8")

save_value_estimator_last_data

Save value estimator result to Documents/value_estimator_last_data.json. Accepts JSON string or dict.

def save_value_estimator_last_data(data: str | dict) -> str:
    """Save value estimator result to Documents/value_estimator_last_data.json. Accepts JSON string or dict."""
    obj = _parse_json_input(data)
    path = DOCUMENTS_DIR / "value_estimator_last_data.json"
    path.write_text(json.dumps(obj, ensure_ascii=False, indent=2), encoding="utf-8")
    return f"Saved to {path}"

Test Agent

Configure model settings at the top, then test the agent below

Enter your question or instruction for the agent