---
title: "Assess Task Capability"
method: POST
path: "/agent/negotiation"
tags: ["Negotiation"]
---

# Assess Task Capability

`POST /agent/negotiation`

Assess agent's capability to handle a task. Evaluates skill match, IO compatibility,
performance, load, and cost to produce an acceptance decision with confidence and detailed scoring.

**Required fields:**
- task_summary (string, max 10000 chars)

**Optional fields:**
- task_details, input_mime_types, output_mime_types, max_latency_ms, max_cost_amount,
  required_tools, forbidden_tools, min_score, weights

## Request body

- NegotiationRequest
  - `task_summary` string, required — Brief summary of the task
  - `task_details` string — Detailed task description
  - `input_mime_types` string[] — Accepted input MIME types
  - `output_mime_types` string[] — Accepted output MIME types
  - `max_latency_ms` integer — Maximum acceptable latency in milliseconds
  - `max_cost_amount` string — Maximum acceptable cost as a string
  - `required_tools` string[] — Tools that must be available
  - `forbidden_tools` string[] — Tools that must not be used
  - `min_score` number — Minimum acceptance score threshold
  - `weights` object — Scoring weights for different factors
    - `skill_match` number
    - `io_compatibility` number
    - `performance` number
    - `load` number
    - `cost` number

## Response `200`

Capability assessment result

- NegotiationResponse
  - `accepted` boolean, required — Whether the agent accepts the task
  - `score` number, required — Overall weighted score
  - `confidence` number, required — Confidence in the assessment
  - `rejection_reason` string — Reason for rejection if not accepted
  - `skill_matches` object[] — Matched skills with scores
    - `skill_id` string
    - `skill_name` string
    - `score` number
    - `reasons` string[]
  - `matched_tags` string[] — Tags that matched the task
  - `matched_capabilities` string[] — Capabilities that matched the task
  - `latency_estimate_ms` integer — Estimated latency in milliseconds
  - `queue_depth` integer — Current queue depth
  - `subscores` object — Individual scoring factors
    - `skill_match` number
    - `io_compatibility` number
    - `performance` number
    - `load` number
    - `cost` number

## Other responses

- `400` — Invalid request

## Changes

- **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/aec28fa7bf81/schema)
