TalentPerformer

Liquidity Operations Manager

The Liquidity Operations Manager agent oversees daily liquidity management, ensuring adequate cash positions to meet operational needs and regulatory requirements. It leverages a knowledge base of operational policies, funding source availability, and internal limits, alongside computational tools to monitor liquidity and optimize funding decisions.

LIVE

Instructions

Step 1: Daily Liquidity Monitoring
    - Input: Daily cash positions by currency, inflows, outflows, and starting balances.
    - Tool: monitor_daily_liquidity
    - Knowledge: Reference the knowledge base for liquidity thresholds, intraday liquidity requirements, and escalation procedures.
    - Action: Assess daily liquidity positions, calculate key ratios, and identify any deficits requiring immediate action.

    Step 2: Funding Strategy Simulation
    - Input: Current liquidity position and available funding options (sources, amounts, costs).
    - Tool: simulate_funding_strategy
    - Knowledge: Reference the knowledge base for funding source limits, cost benchmarks, and diversification rules.
    - Action: Simulate optimal funding allocation to meet liquidity needs at minimal cost while complying with risk policies.

    Step 3: Reporting & Recommendations
    - Input: Results from liquidity monitoring and funding simulations.
    - Action: Summarize daily liquidity status, highlight any risks or breaches, and provide recommendations for funding actions and operational adjustments.

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 3

monitor_daily_liquidity

Monitors daily liquidity positions and calculates key liquidity metrics. Parameters: - cash_positions: JSON string — list of objects with keys Date (str), Currency (str), Inflows (float), Outflows (float), StartingBalance (float). Example: '[{"Date":"2024-01-01","Currency":"EUR","Inflows":200000,"Outflows":150000,"StartingBalance":500000}]' Returns: - JSON string with ending balances, net cash flow, and liquidity ratios.

def monitor_daily_liquidity(cash_positions: str) -> str:
    """
    Monitors daily liquidity positions and calculates key liquidity metrics.

    Parameters:
    - cash_positions: JSON string — list of objects with keys Date(str), Currency(str),
                      Inflows(float), Outflows(float), StartingBalance(float).
                      Example: '[{"Date":"2024-01-01","Currency":"EUR","Inflows":200000,"Outflows":150000,"StartingBalance":500000}]'

    Returns:
    - JSON string with ending balances, net cash flow, and liquidity ratios.
    """
    try:
        data = json.loads(cash_positions) if isinstance(cash_positions, str) else cash_positions
        df = pd.DataFrame(data)
        df['NetCashFlow'] = df['Inflows'] - df['Outflows']
        df['EndingBalance'] = df['StartingBalance'] + df['NetCashFlow']
        df['LiquidityRatio'] = df['EndingBalance'] / df['Outflows'].replace(0, 1)

        result = df[['Date', 'Currency', 'StartingBalance', 'Inflows', 'Outflows', 'NetCashFlow', 'EndingBalance', 'LiquidityRatio']]
        return result.to_json(orient='records', indent=2)

    except Exception as e:
        return json.dumps({'error': str(e)})

simulate_funding_strategy

Simulates optimal funding allocation to meet liquidity needs at minimal cost. Parameters: - current_liquidity: Current cash position (float). Negative means a funding need. - funding_options: List of funding source objects, each with keys: - Source (str): Funding source name - Available (float): Maximum amount available - Cost (float): Interest rate or cost of funding (e.g. 0.03 for 3%) Example: [{"Source":"Central Bank","Available":5000000,"Cost":0.02},{"Source":"Interbank","Available":3000000,"Cost":0.035}] Returns: - JSON string with recommended funding allocation and total projected cost.

def simulate_funding_strategy(current_liquidity: float, funding_options: List[Dict[str, Any]]) -> str:
    """
    Simulates optimal funding allocation to meet liquidity needs at minimal cost.

    Parameters:
    - current_liquidity: Current cash position(float). Negative means a funding need.
    - funding_options: List of funding source objects, each with keys:
        - Source(str): Funding source name
        - Available(float): Maximum amount available
        - Cost(float): Interest rate or cost of funding(e.g. 0.03 for 3%)
      Example: [{"Source":"Central Bank","Available":5000000,"Cost":0.02},{"Source":"Interbank","Available":3000000,"Cost":0.035}]

    Returns:
    - JSON string with recommended funding allocation and total projected cost.
    """
    try:
        options = funding_options if isinstance(funding_options, list) else json.loads(funding_options)

        funding_allocation = {}
        remaining_need = max(0, -current_liquidity)
        total_cost = 0.0

        for option in sorted(options, key=lambda x: x['Cost']):
            if remaining_need <= 0:
                break
            allocated = min(option['Available'], remaining_need)
            funding_allocation[option['Source']] = round(allocated, 2)
            total_cost += allocated * option['Cost']
            remaining_need -= allocated

        return json.dumps({
            'FundingAllocation': funding_allocation,
            'TotalCost': round(total_cost, 2),
            'UnfundedAmount': round(remaining_need, 2) if remaining_need > 0 else 0
        }, indent=2)

    except Exception as e:
        return json.dumps({'error': str(e)})

file_tools

FileTools from agno framework

Test Agent

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

Enter your question or instruction for the agent