Data/AI/ML Alignment — Meeting Notes
- Purpose: Align on the open items blocking the Phase 2 RFC (Refine proxy + Refine rail) before the Chunk-9 real-upstream integration pass.
- Source: RFC — Autonomous AI Agent Phase 2: AI-Assisted Refinement, §5 Concerns/Questions/Known Limitations (OQ-1, OQ-4, OQ-11, OQ-12, OQ-13).
- Chatbot squad: Dimas Fauzi Hidayat (PM), Eko Aprianto (Eng Lead), Hilmi (TPM)
- Data/AI/ML Platform:
noncore-mrag/mekari-agentowners (companion doc author: Grasia Meliolla) - Date: TBD — target before 2026-07-15 (Chunk 9 real-upstream pass)
- Status: Draft agenda — pending scheduling
Related Documents
- RFC (source of the topics below): Autonomous AI Agent Phase 2: AI-Assisted Refinement
- PRD (1:1 pair with the RFC above): Phase 2: AI-Assisted Refinement
- Phase-1 PRD (engine + drafter the RFC reuses): Phase 1: New Engine Migration
- Initiative anchor: autonomous-ai-agent-anchor.md
- Upstream (Data/ML) RFC: QON 51153994292 §10.3b
- Companion doc (as-built
refine-skill-packcontract): QON 51226214880 - Design SoT (Wulan's
qontak-designerprototype, viewable): https://prototype.qontak.net/ — the Refine rail lives on the agent-editor page, e.g./bot-automation/ai-agents/customer-support. Figma frames still TBD (RFC OQ-5); this rendered prototype is the canonical design reference for build.
Context
The chatbot squad is building a stateless proxy (POST /v2/ai_agents/:id/refine) in
front of the documented "as-built" refine-skill-pack endpoint, plus a "Refine" chat
rail in the agent editor. The RFC has been grounded against the companion doc
(QON 51226214880)
and RFC §10.3b, but several contract details remain prose-only or ambiguous. A few
items — deployment status, multi-turn semantics, and the revert story — need joint
confirmation before the chatbot side builds against them.
Blocking — must resolve before Chunk 9 (target: 2026-07-15)
| # | Topic | The question (plain) | Why it matters / background | RFC ref |
|---|---|---|---|---|
| 1a | Deployment status | Is refine-skill-pack deployed and callable in staging and prod today? | The endpoint is currently known only from the companion doc. The Chunk-9 pass builds the real integration, not a mock — so confirmation it is live at the gateway path /qontak-ai-noncore-mrag/api/ai-agent/refine-skill-pack is needed first. | OQ-1a |
| 1b | Option label/description | Can the endpoint return a short title + description for each option, so the card can display them? | The option cards in the design (prototype /bot-automation/ai-agents/customer-support) each need a real title. The proxy currently stamps a hardcoded label because the response carries none. | OQ-1b |
| 1c | Tools registry freshness | Does the company_tools registry stay in sync with chatbot's AiAgentTool table — i.e. is the empty-list auto-fill authoritative and current? | Companion doc §5 already resolves the "must the list be sent?" half: sending an empty available_tools triggers a noncore auto-fill from company_tools. What remains open is whether company_tools is a fresh, complete mirror of AiAgentTool — if it lags, relying on auto-fill would hydrate stale/partial tools, so the proxy may still need to send the list explicitly. | OQ-1c |
| 1d | Invented / non-existent refs | When a request references an action or knowledge-base that doesn't exist, does the model include that non-existent reference in the proposed change, or is it cleaned out before the response? | The two upstream docs conflict: companion doc §3 says the refine path runs no post-processing / no orphan cleanup (refs survive), while RFC §10.3b says updated_skill_pack runs "the same defensive pipeline as the drafter (gate validation, tone coercion, orphan cleanup)". Which one is as-built decides whether refs reach the tenant. The only chatbot-side guard is a 400 at Save time (CapabilityRefPresence) — its role as sole safety net hinges on this answer. | OQ-1d |
| 1e | One option vs several | Will the endpoint return 1–3 alternative options per turn, and if so, on what timeline? | The design shows up to 3 options per turn; the endpoint returns exactly one today. At launch the single result is wrapped in a one-item list, but multi-option is the target — a timeline is needed. | OQ-1e |
| 1f | Data retention / PII | How long does the endpoint retain the user_message / chat_history it receives, and are there PII-handling rules? | This is tenant-pasted customer content passing through the endpoint. The companion doc is silent on retention, and an answer is needed to state the data-processing basis under UU PDP. | OQ-1f |
| 1g | Proactive config audit | Does the model flag config problems on its own (not only when asked), and have "audit my config" prompts been tuned/tested? | "Audit my configuration" is a named feature (story REFINE-S04) with a planned suggestion chip. The documented model heuristics are all complaint-triggered — if the model never audits proactively, that feature will not behave as designed. | OQ-1g |
| 2 | Multi-turn context | chat_history carries only conversational text ({role, content}), not the prior proposed/accepted patches — is that flat text enough for a follow-up that builds on an earlier change ("now also handle the timeout case"), or does the prior patch state need to be re-supplied? | Companion doc §5 + RFC §10.3b already fix the shape: a flat [{role, content}] list, "last ~10 turns for conversational continuity." What is unconfirmed is whether that text-only history lets the model reason about a change it proposed a turn earlier (the patches themselves aren't in chat_history) — this is the actual risk for the multi-turn Refine rail. | OQ-11 |
| 3 | API spec / repo access | Is there an OpenAPI/Swagger spec for refine-skill-pack (and related endpoints), or read access to the owning repo? | Implementation currently runs against prose in a Confluence companion doc. A real spec or repo access would reduce the risk of the contract drifting during the integration. | OQ-12 |
Needs decision before Beta / GA
| # | Topic | The question (plain) | Why it matters / background | RFC ref |
|---|---|---|---|---|
| 4a | KB scope — confirm | JSON Patch ops target any pointer, so a sources/vector-store path is technically patchable — is the model actually instructed to propose KB-affecting patches, or does it steer clear of sources in practice? | Companion doc §3 (opaque JSON-pointer ops on any path) implies KB paths can be patched; what is unconfirmed is whether the model treats sources as in-scope. This is the prerequisite for 4b — the allow/guard decision only matters if the model will actually emit such a patch. | OQ-4 |
| 4b | KB scope — allow or guard? | If yes (4a): should a KB-affecting patch be allowed through, or guarded against? | On Save, a KB-affecting change makes the stateful resolver create/purge vector stores (the same behavior a manual edit triggers). A decision is needed before Beta on whether that is acceptable on the refine path or should be blocked in the FE differ + BE validation. | OQ-4 |
| 5 | Revert after a bad apply | Does user-facing "undo a bad refine" ship this phase, or does server-side-only revert ship with the UI deferred? | PaperTrail is the baseline revert. An older Draft-versioning feature also exists — but it was built for the old AI Engine, never shipped, and would need rework to fit the new Autonomous AI Engine's config model. The decision turns on whether that rework is realistic before GA; if not, the fallback is server-side revert with the UI deferred. | OQ-13 |
Already resolved (no need to re-litigate, FYI only)
trace(workflow_state/recent_turns) — decided to omit entirely from v1;workflow_statelives in themekari-agentDB andchatbotcannot supply it (OQ-2, closed 2026-07-07).chat_historycap — 10 turns, matching the documented "last ~10 turns" guidance (OQ-3, closed 2026-07-05).
Notes / decisions from the meeting
(fill in during/after the session — capture the outcome of each topic above, then update RFC §5 and the Comment log accordingly)
| # | Outcome | Follow-up owner |
|---|---|---|