Skip to main content

DSAI thread — guardrails as a separate array vs merged guidance string

Context

Cross-team chat thread (Qontak ⇄ DSAI/AI service, Jul 16 – Jul 21) on the gap between the Qontak agent-setup UI, which exposes guidance and guardrails as two separate arrays, and the AI service, which only accepts a single free-form Markdown string (guidance.context_clarification). The gap blocks the refine feature and affects draft-skill-pack output. Ends with DSAI agreeing to add a guardrails array in AI service.

Source thread: Google Chat

Participants: Eko Aprianto, Grasia Meliolla, Dimas Fauzi Hidayat, Dhita Putri Pratama (cc: Farras Herdicho, Linggar Samudra, Wulan Febyazzahra Putri, Puji Triwibowo, Hilmi Muktitama).

Notes

  • Jul 16–17 (Eko). Qontak is building refine against the existing endpoint; found gaps around tool name and guidance. Asked for a meet; scheduled then rescheduled — discussion continued async.
  • Jul 20 (Eko) — the blocking case. Qontak setup-agent UI has guidance (array) and guardrails (array); AI service provides guidance.context_clarification. On save/update Qontak merges the values, but refine is blocked: one string cannot be split back into arrays, and there is no way to tell which part is guidance vs guardrail. Wulan and Dimas raised concerns.
  • Jul 20 (Grasia) — AI service state. Confirmed: AI service has no dedicated guardrails array in setup agent; guardrails currently live in the system prompt. guidance.context_clarification is one free-form Markdown string. Making guidance structured requires a refactor plus a migration of existing setup agents to extract which content is guardrail vs guidance.
  • FYI from Grasia: the AI team is building mekari-agent-v3 for Talenta and Officeless use cases, which already has dedicated guardrail setup. Differences vs v2: streaming delivery, non-procedural, approval gates, MCP, etc. Integrating it for Qontak likely not possible this quarter. Dimas noted v3 is user-facing/agentic but not CRM — a different use case from Qontak's.
  • Consequences confirmed (Grasia). Drafter and refiner output guidance as one string; guardrails are not a dedicated field, so draft skill pack does not populate guardrails and refine cannot refine them. The earlier bridging design (FE combines guidance + guardrails into one Markdown string) does not reverse cleanly — parsing Markdown back into arrays will not be consistent.
  • Product position (Dimas). Refine sets the expectation that the whole configuration can be refined; one un-refinable field will raise user questions. On merging into a single editor: user and internal validation showed a single text area lets users skip guardrails entirely, even though guardrails are what prevent the agent from misbehaving. Two explicit fields tell users what belongs where. POV is self-serve setup, no specialist assistance. Shared Qontak_AI_Agent_Research_Findings_v2.docx as the supporting research.
  • Drawbacks of splitting (Grasia). Not agent hallucination — the cost is the refactor plus re-migrating and re-testing existing setup agents.
  • Current Qontak BE behaviour (Eko). Storage is already separated; the request to AI service concatenates into one string. The issue is only that refine cannot split it back.
  • Existing 1:1 setup agent UI referenced: http://ml-ali.data.mekari.com/qontak-chatbot-ai/api/ui/, currently being manually migrated to the Qontak UI where fields are split in FE but merged in the backend request.
  • Dimas: teams should agree the AI-agent configuration is made as easy and clear as possible.

Decisions / changes

  • DSAI will add a guardrails array in AI service — Grasia, Jul 21: "untuk penyesuaian di AI service untuk array guardrails ini kami pick up di sprint baru ini ya." Acknowledged by Dimas.
  • Guardrails stay separate fields in the Qontak UI (product position holds); the FE merge-into-one-editor workaround is not taken.
  • mekari-agent-v3 integration for Qontak is out of scope this quarter (Unconfirmed as a formal decision — stated as DSAI's assessment).

Follow-ups

  • Confirm the DSAI sprint dates / target date for the guardrails array field — open; "sprint baru ini" is not a date, do not infer one.
  • Recorded the DSAI guardrails-array dependency in roadmap External & cross-squad dependencies and autonomous-ai-agent timeline ## Dependencies & gates (2026-07-27). Routed via Autonomous AI Agent because Phase 2 Refine is the work blocked today; ai-agent-guardrails has no roadmap Portfolio row yet (pre-existing PORTFOLIO_MISSING).
  • Update ai-agent-guardrails PRD/RFC scope once the AI service contract is published (field name, shape, migration of existing setup agents) — open; contract not published.
  • Migration + re-testing of existing setup agents recorded as a DSAI-owned clause on the autonomous-ai-agent timeline gate above.
  • Attach Qontak_AI_Agent_Research_Findings_v2.docx as a PRD sources: entry — open; the file is a chat attachment with no product-intelligence-hub counterpart (hub not checked out locally), so no resolvable path exists to cite yet.