triage_ticket from yesterday extracts structured fields from one text. Your research group needs two versions of every abstract summary: one for the journal submission, one for the public engagement report. In your current workflow, how do you produce both?
Write the academic version, then rewrite it in plain language. Two passes, two documents, twenty minutes per abstract. For the annual impact report, that's three days of work.
compare_tones runs two agents on the same text — one with a formal system prompt, one with a casual one — and returns a dict:
formal_agent = Agent(model, system_prompt="Rewrite in academic journal style.")
casual_agent = Agent(model, system_prompt="Rewrite in plain language for a lay audience.")
return {
"formal": formal_agent.run_sync(text).output,
"casual": casual_agent.run_sync(text).output
}Do both agents run on the same original text, or does the casual agent get the formal rewrite?
Both run on the same original text. Independent agents, same input, different instructions. If you fed the formal rewrite to the casual agent, you'd be translating a translation — compounding any errors. Two clean passes from the source.
So I'm essentially running the same abstract through two different editorial passes simultaneously. That's the consistency check I'd do with two RAs — same document, two coders, compare outputs.
The analogy is precise. Two agents, two coding schemas, one document. The dict gives you both outputs in one call.
Academic abstract for the journal, plain-language summary for the press release, both from one function call. That's my impact reporting pipeline.
Both versions come from one call:
result = compare_tones(abstract)
print("Formal:", result["formal"][:80])
print("Casual:", result["casual"][:80])Review both before publishing — the casual version sometimes over-simplifies statistical claims.
formal_agent = Agent(model, system_prompt="Rewrite in academic journal style.")
casual_agent = Agent(model, system_prompt="Rewrite in plain language for a lay audience.")
return {
"formal": formal_agent.run_sync(text).output,
"casual": casual_agent.run_sync(text).output
}Both agents receive the original text — not each other's output. Independent passes from the source prevent compounding errors and give you a direct comparison.
Run compare_tones on every abstract in your annual report batch. The formal values go into the academic publication; the casual values go into the public-engagement summary. Two outputs, one function call, no manual rewriting.
triage_ticket from yesterday extracts structured fields from one text. Your research group needs two versions of every abstract summary: one for the journal submission, one for the public engagement report. In your current workflow, how do you produce both?
Write the academic version, then rewrite it in plain language. Two passes, two documents, twenty minutes per abstract. For the annual impact report, that's three days of work.
compare_tones runs two agents on the same text — one with a formal system prompt, one with a casual one — and returns a dict:
formal_agent = Agent(model, system_prompt="Rewrite in academic journal style.")
casual_agent = Agent(model, system_prompt="Rewrite in plain language for a lay audience.")
return {
"formal": formal_agent.run_sync(text).output,
"casual": casual_agent.run_sync(text).output
}Do both agents run on the same original text, or does the casual agent get the formal rewrite?
Both run on the same original text. Independent agents, same input, different instructions. If you fed the formal rewrite to the casual agent, you'd be translating a translation — compounding any errors. Two clean passes from the source.
So I'm essentially running the same abstract through two different editorial passes simultaneously. That's the consistency check I'd do with two RAs — same document, two coders, compare outputs.
The analogy is precise. Two agents, two coding schemas, one document. The dict gives you both outputs in one call.
Academic abstract for the journal, plain-language summary for the press release, both from one function call. That's my impact reporting pipeline.
Both versions come from one call:
result = compare_tones(abstract)
print("Formal:", result["formal"][:80])
print("Casual:", result["casual"][:80])Review both before publishing — the casual version sometimes over-simplifies statistical claims.
formal_agent = Agent(model, system_prompt="Rewrite in academic journal style.")
casual_agent = Agent(model, system_prompt="Rewrite in plain language for a lay audience.")
return {
"formal": formal_agent.run_sync(text).output,
"casual": casual_agent.run_sync(text).output
}Both agents receive the original text — not each other's output. Independent passes from the source prevent compounding errors and give you a direct comparison.
Run compare_tones on every abstract in your annual report batch. The formal values go into the academic publication; the casual values go into the public-engagement summary. Two outputs, one function call, no manual rewriting.
Create a free account to get started. Paid plans unlock all tracks.