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) andguardrails(array); AI service providesguidance.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_clarificationis 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.docxas 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-guardrailshas no roadmap Portfolio row yet (pre-existingPORTFOLIO_MISSING). - Update
ai-agent-guardrailsPRD/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.docxas a PRDsources:entry — open; the file is a chat attachment with noproduct-intelligence-hubcounterpart (hub not checked out locally), so no resolvable path exists to cite yet.