Skip to content

Releases: oasis-surveys/oasis-platform

OASIS v1.1.0

Choose a tag to compare

@MaxMLang MaxMLang released this 10 Jun 02:27
cf7309a

Thank you

I want to start by saying: "Thank you", to everyone in the community for contributing, raising interest, and helping OAISIS improve. It is great to hear from so many different people in different domains that want to use the platform. I hope this release is a step towards an improved version of OASIS.

General Release Comments

An interviewer that notices how the interview is going and can do something about it, doesn't that sound great?

Until now, OASIS agents followed their prompt and their guide no matter what. A participant could be giving one-word answers for five minutes straight and the agent would happily march on to question 7 of 12. v1.1.0 adds the machinery to measure that, and, if you want, to react to it. There's also session audio recording, a pile of structured-interview fixes, and noticeably lower response latency.

Engagement metrics

Flip Track engagement metrics on an agent and OASIS scores every participant turn while the interview runs:

  • Per-turn signals Response latency, answer length, speech rate, filler words, and audio energy. Each turn gets a 0-1 score and a low/medium/high label.
  • Rule-based, on purpose No model, no training data. The thresholds and weights are readable and tunable per agent, so you can always explain why a turn scored the way it did. That matters when this ends up in a methods section.
  • Events A rolling window over recent turns detects sustained disengagement, positive engagement streaks, and recovery after a dip.
  • Works for voice and text Modular voice gets the full signal set. Text chat gets latency (reading + typing time), length, and lexical hedging, with its own threshold profile. Voice-to-voice pipelines don't expose the needed audio/timing, so no metrics there.
  • Everything exports Session detail page, API, CSV columns, JSON. Sits right next to the transcript.

Tracking is observe-only and off by default. It never changes the interview. Details in docs/ENGAGEMENT_METRICS.md. Turning on adaptive metrics might need to be justified in ethics approval if used in a research environment and should be disclosed in other settings.

Adaptive interviewer behavior

On top of the metrics you can define a small per-agent policy: when a trigger fires, run an action.

  • Triggers are the engagement events and per-turn flags (e.g. three low turns in a row, very short answers, lots of fillers).
  • Prompt actions inject a short instruction before the agent's next turn: offer a break, soften the next question, encourage elaboration, acknowledge effort, run a privacy check, or match_style, which makes the agent subtly mirror the participant's formality, sentence length, and energy.
  • Pace actions slow the voice down (or reset it). This is provider-aware: OpenAI's numeric speed parameter time-stretches the audio and sounds awful, so on gpt-4o TTS models we steer pace through voice instructions at generation time instead. ElevenLabs and Cartesia render the requested speed natively and keep the numeric parameter.

Other features:

  • Shadow mode by default. A new policy evaluates and logs what it would have done without changing anything for the participant. Run it on real sessions, read the log, then flip to live when you trust it. Going live is always a deliberate choice.
  • No hidden prompts. Every action's instruction text is shown verbatim in the agent form, pre-filled with sensible defaults, and editable per rule like a prompt template. What you read is exactly what gets injected.
  • Full audit trail. Every action (shadow or live) is recorded with its trigger and the injected text, shown on the session detail page, and included in the exports. Sessions where adaptation could act are flagged, so you can separate them cleanly in your analysis.

Enabling it seeds a starter policy (break on sustained disengagement, elaboration nudge on very short answers, softer question on high filler) that you can edit or delete. Off by default, scoped per agent, available for modular voice and text chat. The full action catalog and the verbatim default instructions are in docs/ADAPTIVE_BEHAVIOR.md.

If your study uses engagement measurement or adaptive behavior, cover it in your participant information and ethics review. The shadow mode and audit trail exist precisely so you can be transparent about what the agent did.

Session audio recording

Voice interviews (modular and voice-to-voice) can now store the raw audio. Enable Store interview audio per agent and each session writes separate participant and agent WAVs plus a manifest, organized by study/agent/participant/session. Local disk by default, any S3-compatible bucket if you point it at one. Off by default. See docs/AUDIO_RECORDING.md.

Structured interviews Improvements

  • The agent no longer crams a probe, a leaked "(Transition: ...)" stage direction, and the next main question into one breath. A deterministic output filter between the LLM and TTS enforces one question per turn, whatever the model had in mind.
  • Clarification questions ("what do you mean?", "can you repeat that?") no longer eat the follow-up budget or trigger a premature closing message. Detection follows the agent's configured interview language, with patterns for all twelve preset languages.
  • Closing messages can't smuggle in a new question anymore.

Performance and reliability

  • Transcript and engagement writes moved off the audio pipeline's hot path into background tasks. The end-of-turn pause this caused is gone.
  • Engagement and adaptation evaluate once per participant turn instead of once per STT fragment (segmented STT could split one spoken turn into several fragments that each scored as a "very short answer").
  • Mid-conversation guidance is injected as a marked user-role note. OpenAI gpt-5.x rejects late system messages with a 400, which used to silence the agent for the rest of the session.
  • Text chat survives iOS Safari backgrounding the tab (keepalive ping, #13).
  • custom/<model> agents route through your OpenAI-compatible endpoint in text chat too, not just voice (#7).
  • Deepgram STT works again with deepgram-sdk v4+ (Nova 3 is the default).
  • Model catalog verified against the live provider APIs: gpt-realtime-2, Gemini 3.5 Flash, and the current Scaleway lineup are in; models the providers stopped serving are out.
  • Assorted dashboard and participant UX polish: honest error states, export toasts, form validation, microphone-blocked errors.

Upgrading

git pull
docker compose up -d --build

The new tables (engagement turns, events, adaptive actions, and friends) ship as Alembic migrations and run automatically when the backend container starts. Nothing to do by hand.

Getting started (if you're new here)

git clone https://github.com/oasis-surveys/oasis-platform.git
cd oasis-platform
cp .env.example .env
# Add your API keys to .env
docker compose up -d

Open http://localhost and you're ready to go (locally), there is also a detailed deployment guide for Hetzner VMs in the documentation.

License

OASIS is released under the GNU Affero General Public License v3.0 (AGPL-3.0). Free to use, modify, and distribute; if you run a modified version as a network service, share your changes. (This changed from ONCRL since v1.0.0; see the licensing FAQ.)

Citation

@software{lang2026oasis,
  author       = {Lang, Max M.},
  title        = {{OASIS}: Open Agentic Survey Interview System},
  year         = {2026},
  url          = {https://github.com/oasis-surveys/oasis-platform},
  note         = {Self-hosted platform for AI-powered conversational interviews}
}

OASIS v1.0.0 - First Public Release

Choose a tag to compare

@MaxMLang MaxMLang released this 16 Mar 01:00

This is the first public release of OASIS (Open Agentic Survey Interview System), a self-hosted platform for running AI-powered conversational interviews.

OASIS was built because existing tools for conversational AI are not designed with research in mind. If you need semi-structured interview guides, participant tracking, diarized transcripts, and full control over your data and models, but don't want to build everything from scratch, this is what OASIS is for.

What's included

Core platform

  • Study management Create studies, add multiple agents per study, organize everything from a single dashboard.
  • Two interview modalities Voice interviews (real-time speech with STT → LLM → TTS) and text chat interviews (clean browser-based UI).
  • Flexible AI pipeline Chain any combination of speech-to-text, language model, and text-to-speech providers. Or use voice-to-voice models like OpenAI Realtime and Gemini Live for direct audio streaming.

Semi-structured interview mode

  • Define a question guide with preset questions, follow-up probes, and transition logic.
  • The agent follows the structure while still having natural conversations, it adapts its probing based on what the participant actually says.
  • Import guides via JSON or CSV, or build them directly in the dashboard.

Model support

  • LLMs: OpenAI (GPT-4o, GPT-4.1, GPT-5, Realtime), Google Gemini (including native audio), Scaleway, Azure OpenAI, GCP Vertex AI, and any LiteLLM-compatible provider.
  • STT: Deepgram, Scaleway Whisper.
  • TTS: ElevenLabs, Cartesia, Scaleway.
  • You can also point OASIS at any custom endpoint via LiteLLM useful if you're running local models on your own hardware.

Research features

  • Participant identifiers Random IDs, predefined lists, or self-reported names. Your choice per agent.
  • Diarized transcripts Every interview is transcribed with speaker labels and timestamps.
  • Session analytics Duration, word counts, and completion tracking across your study.
  • Data export Download transcripts and analytics as CSV or JSON.
  • Knowledge base (RAG) Upload documents to ground your agent's responses in specific material. Uses pgvector for semantic retrieval.

Telephony (beta)

  • Twilio Media Streams integration for conducting interviews over the phone.
  • Currently supports incoming calls. Outbound dialing is not yet implemented.

Deployment

  • Everything runs in Docker (five containers: Caddy, Frontend, Backend, PostgreSQL, Redis).
  • No data leaves your infrastructure unless you explicitly call external APIs.
  • Optional basic auth for the admin dashboard.
  • All API keys configurable via .env or the dashboard settings page.

A note on maturity

OASIS has been tested extensively, across different virtual machines, operating systems, cloud providers, and deployment configurations. The test suite covers the backend API, pipeline orchestration, schemas, and frontend components, and runs automatically on every push and on a recurring schedule.

That said, this is the first public release. The project launched in March 2026, and it is still young. You may run into rough edges, particularly in less common setups or with provider combinations we haven't encountered yet. We've tried to handle edge cases gracefully, but there will be things we missed.

If something breaks or behaves unexpectedly, please open a bug report. Clear reproduction steps help a lot. Even small issues are worth reporting.


Getting started

git clone https://github.com/oasis-surveys/oasis-platform.git
cd oasis-platform
cp .env.example .env
# Add your API keys to .env
docker compose up -d

Open http://localhost and you're ready to go. The documentation has a full walkthrough.


What's next

We're actively working on OASIS and have a number of features in the pipeline. If you have ideas or run into limitations, suggest a feature or reach out directly at max.lang@stx.ox.ac.uk.

Contributions are welcome, check the guidelines.


License

OASIS is released under the Open Non-Commercial Research License (ONCRL) v1.0. Free for non-commercial research use. Commercial use requires written approval.

Citation

@software{lang2026oasis,
  author       = {Lang, Max M.},
  title        = {{OASIS}: Open Agentic Survey Interview System},
  year         = {2026},
  url          = {https://github.com/oasis-surveys/oasis-platform},
  note         = {Self-hosted platform for AI-powered conversational interviews}
}