Skip to main content
Glama

propose_trade

Negotiate and preview Civilization VI trade deals, including gold, resources, open borders, cities, joint war, and peace terms, then send or test the AI's counter-offer.

Instructions

Propose a trade deal to another civilization.

Args:
    other_player_id: The player ID (from get_diplomacy output)
    offer_gold: Lump sum gold to give them
    offer_gold_per_turn: Gold per turn to give them (30-turn duration)
    offer_resources: Comma-separated resource types to offer, e.g. "RESOURCE_SILK,RESOURCE_TEA"
    offer_favor: Diplomatic favor to offer
    offer_open_borders: True to offer our open borders
    request_gold: Lump sum gold to request from them
    request_gold_per_turn: Gold per turn to request (30-turn duration)
    request_resources: Comma-separated resource types to request
    request_favor: Diplomatic favor to request from them
    request_open_borders: True to request their open borders
    request_cities: Comma-separated city IDs to demand from them (get them from
        get_diplomacy / run_lua; a losing AI will cede cities to end a war)
    offer_cities: Comma-separated city IDs of ours to hand over
    make_peace: True to include a peace treaty. Required when at war — the
        ceasefire is what you are paying with, and demanding cities for it is
        the whole point of a war-ending deal.
    joint_war_target: Player ID of a third civ to declare joint war against
    mode: "send" to commit the deal, "test" to preview AI's counter-offer without committing
    force: Override the pre-war gate for joint wars (NO_SIEGE_VS_WALLS —
    force_reason: One sentence on WHY you are overriding. Recorded to
        data/force_log.jsonl. Without it a post-game review cannot tell
        a wrong gate from a wrong call — write it even when in a hurry.
           same rule as send_diplomatic_action war declarations)

Examples: Gift 100 gold: offer_gold=100. Trade silk for 3 gpt: offer_resources="RESOURCE_SILK", request_gold_per_turn=3.
Mutual open borders: offer_open_borders=True, request_open_borders=True.
Test a deal first: mode="test" to see what the AI thinks is fair, then mode="send" to commit.

Ending a war on your terms: make_peace=True plus request_cities/request_resources.
Always run mode="test" first — the AI's willingness to cede a city swings hard with
war score, and the test call shows what it considers fair without committing.

Input Schema

NameRequiredDescriptionDefault
modeNosend
forceNo
make_peaceNo
offer_goldNo
offer_favorNo
force_reasonNo
offer_citiesNo
request_goldNo
request_favorNo
request_citiesNo
offer_resourcesNo
other_player_idYes
joint_war_targetNo
request_resourcesNo
offer_open_bordersNo
offer_gold_per_turnNo
request_open_bordersNo
request_gold_per_turnNo

Output Schema

NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full load and does disclose meaningful traits: test mode previews without committing, gold-per-turn deals run 30 turns, make_peace is mandatory at war, and force overrides a pre-war siege gate while being logged to data/force_log.jsonl. Gaps remain — nothing about whether rejected proposals have a cost, per-turn proposal limits, or whether the AI counter-offers in send mode.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The arg list is front-loaded and useful, but the force/force_reason entries are garbled — 'force: Override the pre-war gate for joint wars (NO_SIEGE_VS_WALLS —' is cut off mid-parenthetical and bleeds into the next entry with stray indentation. The 'always test first' advice is also stated twice (in Examples and again in the closing paragraph), which is wasted space.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Output schema exists, so return values need not be explained, and parameter documentation is essentially complete for an 18-param tool. What's missing is failure behavior (what a rejected offer returns) and a pointer to the sibling that handles incoming offers (respond_to_trade) or standalone peace (propose_peace).

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must compensate and it does: all 18 parameters get meaning, including units (lump sum vs. per-turn with a 30-turn duration), string formats with a concrete example ("RESOURCE_SILK,RESOURCE_TEA"), sources for IDs (get_diplomacy / run_lua), and the non-obvious send/test semantics of mode that the schema leaves as a bare string.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clear verb and resource: 'Propose a trade deal to another civilization.' An agent immediately knows this constructs and sends a diplomatic offer. It does not, however, distinguish itself from siblings that also affect diplomacy (propose_peace, respond_to_trade, send_diplomatic_action, get_trade_options) — the reader must infer that this is the general-purpose deal constructor.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives concrete workflow guidance: run mode="test" first to see the AI's fairness assessment, then mode="send" to commit; and make_peace=True is required when at war. It also frames war-ending deals ('request_cities ... the whole point of a war-ending deal'). No explicit statement of when to prefer propose_peace or respond_to_trade, so it stops short of full alternative routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Deploy Server

Other Tools