---
title: "Ask whether this agent can handle a task"
method: POST
path: "/agent/negotiation"
tags: ["Negotiation"]
---

# Ask whether this agent can handle a task

`POST /agent/negotiation`

Orchestrators use this to pick the best agent for a task
before sending a real `message/send`. The agent returns a
capability score (0–1) weighted across skill match, I/O
compatibility, performance, load, and cost.

A score below the caller's `min_score` is interpreted as
"decline" — the orchestrator should route the task
elsewhere. This endpoint never actually performs the task;
it's advisory.

## Request body

- NegotiationRequest
  - `task_summary` string, required — One-sentence description of the work.
  - `task_details` string — Longer context, audience, constraints.
  - `input_mime_types` string[]
  - `output_mime_types` string[]
  - `max_latency_ms` integer — Client's latency tolerance.
  - `max_cost_amount` string — Client's cost tolerance (currency-agnostic; agreed per-agent).
  - `required_tools` string[]
  - `forbidden_tools` string[]
  - `min_score` number — Decline threshold. Scores below this are treated as "no".
  - `weights` object, required — How much each factor contributes to the overall score. Must sum to 1.0 (not enforced; callers should normalize).
    - `skill_match` number
    - `io_compatibility` number
    - `performance` number
    - `load` number
    - `cost` number

## Response `200`

Negotiation response

- NegotiationResponse
  - `can_handle` boolean, required
  - `score` number, required
  - `reasons` string[] — Short bullet rationale for the score.
  - `estimated_latency_ms` integer
  - `estimated_cost_amount` string

## Changes

- **2026-04-21** `8a22dc180044` — 3 breaking, 17 warning, 6 info
  - the request property `weights` became required
  - removed the required property `accepted` from the response with the `200` status
  - removed the required property `confidence` from the response with the `200` status
  - the `weights/cost` request property's max was set to `1.00`
  - …22 more
- **2026-02-12** `970d68a5c55d` — 2 breaking, 2 warning, 8 info
  - the `max_cost_amount` request property type/format changed from `number`/`` to `string`/``
  - removed the required property `overall_score` from the response with the `200` status
  - removed the optional property `reasoning` from the response with the `200` status
  - removed the optional property `scores` from the response with the `200` status
  - …8 more
- **2026-02-11** `975e49e9b675` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/getbindu/apis/bindu-agent-api/changes/agent/negotiation/post.md)

---

[API](https://skmtc.dev/getbindu/apis/bindu-agent-api.md) · [All operations](https://skmtc.dev/getbindu/apis/bindu-agent-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/getbindu/bindu-agent-api/revisions/e070faa5425b/schema)
