04.2025
April 2025 release notes.
The April 2025 PolyAI Agent Studio release includes new tools for call review, debugging, and utility development.
You can now generate LLM-powered performance metrics in the PolyAI Agent Studio using the new Assistant Analysis flow. Define a custom prompt and category set, then run it across a batch of calls to generate insight-rich evaluations and visual summaries.
How it works:
- Create a custom evaluation prompt, with categories and descriptions
- Select a batch of calls via the Assistant Analysis feature.
- Automatically assess agent performance across key custom criteria like tone, intent success, or compliance (or any other potential variables)
- View results in a dedicated Assistant Analysis UI, with graphs showing how your calls measure up against each evaluation axis
Agent Studio now supports real-time collaboration and edit tracking across your team.
Multi-user refresh view in action
How it works:
- See who else is editing a draft in real time.
- Receive notifications when changes are saved by others.
- Copy unsaved edits before refreshing to avoid overwriting.
- View full change logs using the history panel.
You can now use an LLM to review and rate calls.
What you can do:
- Rate calls for tone, intent success, or compliance
- Use project-specific categories
- Get automatic summaries
You can now filter conversations by workspace on the Conversations page.
Why it helps:
- Focus on the calls your team is responsible for
- Cleaner review experience for large orgs
You can now extract structured address data from free-text input using a built-in LLM utility: extract_address()
.
What it does:
- Parses the most recent user message for address info
- Returns an
Address
object with fields like street, postcode, and country - Raises an
ExtractionError
if parsing fails
Usage:
try:
address = conv.utils.extract_address(country="US")
conv.state.parsed_address = address
except ExtractionError as e:
conv.state.address_error = str(e)
Address object:
@dataclass
class Address:
street_number: Optional[str]
street_name: Optional[str]
city: Optional[str]
state: Optional[str]
postcode: Optional[str]
country: Optional[str]
Other details:
- Calls an LLM, so may take a few seconds
- You can optionally validate against a list of known addresses
- Some fields may be missing depending on input quality
You can now access earlier conversation turns from within utility functions using conv.history
.
What it does:
- Returns a list of events: user inputs, agent replies, function calls, etc.
- Useful for writing context-aware logic
Usage:
def some_function(conv: Conversation):
history = conv.history
for event in history:
print(event.to_dict())
return {
"utterance": "Here's a response that depends on previous turns.",
"content": f"Conversation so far: {str(history)}"
}
Why it matters:
- Build logic based on what’s already happened in the conversation
- Avoid passing state manually
- Better debugging and flow control
You can now export and import variants between agents or environments.
What you can do:
- Export all variant data to CSV
- Edit things like contact numbers or opening hours in bulk
- Reimport to update the same or a different agent
Why it matters:
- Makes it easy to scale across multiple sites
- No need to rebuild variant logic from scratch
- Keeps your CSVs in sync with other tools
Reviewed conversations now show the variant ID used in each call.
Why it matters:
- See exactly which variant was active
- Easier to debug and compare different versions
- Adds context for QA and bug tracking
For help or feedback, email platform-support@poly-ai.com.