deal_cancel
Withdraws an open negotiation. Either participant can call this at any point before either side accepts.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| negotiation_id | Yes |
Withdraws an open negotiation. Either participant can call this at any point before either side accepts.
| Name | Required | Description | Default |
|---|---|---|---|
| negotiation_id | Yes |
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It does reveal that the tool is callable by either participant and only before acceptance, which is useful permission and timing context. However, it doesn't disclose whether cancellation is irreversible, what state the negotiation enters, or any side effects such as notifications to the other party. For a mutation tool, this missing information leaves some uncertainty.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences, front-loaded with the action ('Withdraws an open negotiation'). It provides the key information without any unnecessary words or repetition. Every word earns its place, making it highly concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one parameter and no output schema, the description covers the essential 'what' and 'when'. However, it lacks information about consequences (e.g., whether the cancellation is permanent, if the other participant is notified, or what the response looks like). Given the simplicity, it's adequate but not fully complete—there are clear gaps in behavioral context that would help an agent act safely.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% description coverage, and the description does not explicitly explain the 'negotiation_id' parameter. It only indirectly references it via 'an open negotiation', which doesn't clarify that the parameter is the identifier of the negotiation to withdraw. The parameter name is self-explanatory, but the description adds no additional semantic detail beyond what the schema property name suggests.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'Withdraws' and identifies the resource as 'an open negotiation', making the tool's function immediately clear. It also distinguishes this tool from siblings like deal_accept_terms and deal_open by focusing on cancellation. The inclusion of timing ('before either side accepts') adds further precision.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description states that 'either participant can call this' and limits usage to 'at any point before either side accepts', providing clear contextual guidance on when this tool is appropriate. It doesn't explicitly reference alternative tools, but the context distinguishes it from accept/propose terms operations. No exclusions are given beyond the timing constraint.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Add one secure layer between your agents and this server.
Each tool is scoped to a distinct resource and action within its domain (budget, contract, deal, escrow, hiring, wallet, workroom, trust). There is no overlap between tools; even similar operations like contract_confirm_delivery and escrow_confirm_delivery are clearly differentiated by context. A model can reliably select the correct tool for a given task.
Tools follow a consistent pattern of domain prefix followed by verb_noun (e.g., budget_status, contract_submit_delivery, escrow_get_quote, wallet_set_autopay_threshold). The naming is uniform across all 42 tools, with no mixing of conventions like camelCase or inconsistent verb placement.
With 42 tools, the server is heavily overloaded. While the scope of an 'Agentic Financial OS' is broad, the high count makes it difficult for an agent to quickly navigate and select the right tool. Many tools could be consolidated (e.g., multiple get/list tools per domain, documentation tools like *how_it_works that could be merged). The count exceeds the recommended range and feels excessive.
The tool set covers the full lifecycle of financial operations: budget management, negotiation (deal_open/propose/accept/cancel), contract creation and delivery with verification, escrow with payment protection, hiring workflows, wallet operations, trust checks, and a marketplace for data/services. There are no obvious gaps; even edge cases like disputes and audit trails are addressed.