All insights

AI Tenders

Writing Functional Requirements for Agents

· 9 minute read

If the FR says intelligent assistant for file disposal, every bidder is compliant and nobody is. Write actors, tools, gates, data classes and what happens when the tool fails.

The section officer's first draft of the functional requirement was one sentence: the system shall provide an AI chatbot to help officers with files. The next draft added in Hindi and English and with appropriate security. A vendor could have bid a public website. Another could have bid a multi-agent write-back into the file-tracking system. Both would have been compliant. The evaluation committee would have been marking ghosts.

Functional requirements for agents are not chatbot copy. An agent is given a goal and then chooses retrieval and tools. If you do not name the goal, the actor, the allowed tools, the forbidden tools, the human gate and the data classes, you have specified a vibe. GFR and CVC integrity expectations are not friendly to vibes. Neither is DPDP when the vibe starts processing personal data.

This template is for indentors who must turn a minister's use AI minute into rows a bidder can fail. It is not a complete SRS. It is the agent-specific slice you should staple to the ordinary non-functional and commercial schedules.

One card per workflow, not one paragraph for the programme

Write a card for each workflow you will actually commission in year one. Grievance draft is not the same card as scheme-eligibility check, which is not the same card as a campus helpdesk. Combining them into citizen services AI is how scope and risk disappear.

Each card has the same spine so evaluators learn one shape.

Minimum fields on a workflow card.
FieldWrite thisRefuse this
Name and actorRole that starts it; role that approvesUsers / stakeholders
GoalDraft X / retrieve Y / propose Z — one verbTransform the file culture
Systems of recordNamed MIS, file system, mail, noneAny government database
Read toolsWhat may be fetched, with identityRAG over all data
Write toolsWhat may be written, dry-run, idempotencyAuto-update as required
Human gateWhich outputs cannot leave without a named roleHITL available
Data classesPersonal / non-personal / sensitive operationalDepartmental data
FailureWhat the officer sees if retrieval or tool failsGraceful handling
Out of scopeDecisions the agent must refuseSilence

Verbs that can be tested

Prefer draft, retrieve, classify, route, summarise-with-citations, open-a-ticket, write-back-after-approval. Avoid understand, intelligently, seamlessly, end-to-end, cognitive. Those words cannot fail.

For every write verb, specify the identity the tool uses. A shared service account that can update any application is not a functional requirement. It is an incident waiting for a prompt injection.

For every retrieve verb, specify the corpus and the exclusion. All PDFs on the share is how hostel lists enter a public-facing answer.

  • Each requirement is a sentence an evaluator can mark met / not met / not shown.
  • Each write-back names a dry-run and a rollback or compensating action.
  • Each personal-data workflow names the fiduciary-processor story in one line, even if counsel will refine it.
  • Each card names what the agent must refuse, not only what it must do.

Hooks to the schedules you should not duplicate

Do not paste the isolation annexure into every card. Point to it. Do not paste the SLA. Point to the objects that apply to this workflow — some cards are draft-only and have no tool-call SLA. Do not invent an accuracy percentage on the card. Point to the evaluation method and the hold-out set for this workflow.

Do say, on the card, whether the workflow is allowed in a PoC, and whether production personal data is forbidden until acceptance. Functional scope and PoC scope are how dirty pilots start.

Keep product names out unless they are the object

If you need the agent to speak to eOffice or a named state MIS, name the interface you actually have — API, RPA against a UI, file drop — not the vendor's adapter brand. Brand-shaped FRs are CVC-facing even when nobody intended a PAC.

If only one adapter exists, that is a constraint to write honestly, perhaps as a lot, not as a hidden row inside the system shall be intelligent.

Objections you will hear — and what to do with them

These are the lines that stall the file. Answer them in the room, then put the answer in the note. A spoken answer without paper will be forgotten by the next officer.

We do not know the workflows until the vendor does discovery.

Then you are buying discovery, not a production agent. Tender a short, data-poor discovery with a hard end date, or write the two or three cards you already run on paper. Open-ended discovery on live files is not an FR. It is a standing processor with no purpose.

Too much detail will restrict innovation.

Detail on tools, gates and data restricts harm. Leave model brand and UI free. Innovation that needs unsupervised write-back is not innovation you want.

Our officers will reject a dry form.

Give them the card in a workshop and let them add refusals. They know which files must never be auto-moved. Capture that as out-of-scope.

One FR for the whole ministry is more elegant.

Elegance is how a helpdesk bot inherits write access to payroll. Split the cards.

Write the year-one cards in fifteen days

  1. Days 1–3: list the three workflows leadership will actually use this year. Kill the rest for version two.
  2. Days 4–8: workshop each card with the desk that owns the file, the MIS owner and the DPO.
  3. Days 9–12: convert adjectives into verbs, tools, gates and refusals. Cross-link SLA, isolation and evaluation schedules.
  4. Days 13–15: legal and procurement pass for brand-shaped sentences. Then freeze the cards for the bid.

How this shows up in the file

Subject: Functional requirement cards for year-one agent workflows.

Three cards are placed opposite. Each names actor, goal, systems, read/write tools, human gate, data classes, failure behaviour and refusals. Product names have been removed except where an interface constraint is real and stated. Production personal data is out of scope for any pre-award demonstration.

This note is not legal advice.

Workshop the refusals with the desk that owns the file

Sit the section officer who actually disposes the file in a one-hour workshop. Ask what the agent must never do: close a file, change a benefit, name a third party in an RTI draft, invent a circular. Write those as out-of-scope lines on the card. That hour is worth more than a ministry-wide vision paragraph.

If the desk cannot name refusals, they are not ready for an agent. They are ready for a search box. Put search on a different card with no write tools. Do not let an unnamed refusal list inherit a write-back because leadership wanted autonomy in the minutes.

Carry the refusal list into the sealed hold-out and the UAT pack. A functional requirement that never becomes a test is decoration. The card, the benchmark, and the acceptance gate should quote the same verbs.

This article is a field guide for Indian public buyers, not legal, procurement, financial or audit advice. Confirm every citation against the live GFR compilation on doe.gov.in, the relevant DoE procurement manual, GeM terms, CVC guidance and your own counsel before a sentence enters a tender file.

How to put this in the RFP, not the preamble

A P2 Procurement who searches “functional requirements AI agent” is usually drafting or scoring a bid. “Writing Functional Requirements for Agents” belongs in eligibility, the evaluation matrix, or a numbered annexure. If it only lives in the covering note, L1 will ignore it.

If the FR says intelligent assistant for file disposal, every bidder is compliant and nobody is. Write actors, tools, gates, data classes and what happens when the tool fails. QCBS weights are a choice you must publish before opening. Accuracy is a task plus a dataset, not a slogan. SLAs for agents must name tool-calls, human gates and log export — uptime alone is a hosting metric.

Do not let a vendor write the specification and then bid on it. Record unsolicited proposals. Pay for pilots that touch personal data. Write exit before you write go-live.

  1. Move the control from the preamble into a scored or eligibility row.
  2. Attach a one-page definition (accuracy, SLA, language, data handling).
  3. Require an artefact in the technical bid, not a slide.
  4. Extend the bid date if a corrigendum is material.
  5. Minute the demo on your data, offline if you claimed air-gap.

Close this loop before the next CAB

Put “Writing Functional Requirements for Agents” on the next change-advisory or bid-opening agenda as a single line item with an owner. If it cannot earn a line item, it will not earn a control. The owner should be a P2 Procurement, not “the vendor.”

Revisit the item when the model, the GeM term, the region, or the SI changes. “functional requirements AI agent” is not a one-time workshop. It is a watch item. Date the last check. Unsigned watch items are souvenirs.

Questions this usually raises

How many workflows should the first tender include?
As many as you can staff gates and eval sets for. Three honest cards beat a ministry-wide novella.
Do we specify the model?
Specify capabilities, context needs and isolation. Naming a model brand is how you shrink competition and age the contract.
Where do non-functional requirements go?
In their own schedule — isolation, identity, logging, performance bands. Point from the card. Do not copy-paste.
Can citizens be actors on a card?
Yes, if you write the channel, the identity, the personal-data basis and what the agent must refuse to say. A public actor is not a reason to loosen gates.

Sources