A client brief can be pitched two ways — formal for a corporate prospect, casual for a startup. Right now you write both versions. What if two agents wrote them for you to choose from?
I'd create two agents with different system prompts? One with a formal tone instruction, one with a casual one?
Exactly. Each agent gets a different system_prompt. Both receive the same brief. You return a dict of both outputs:
formal_agent = Agent(model, system_prompt="Respond in a formal, professional tone.")
casual_agent = Agent(model, system_prompt="Respond in a casual, friendly tone.")Do they share any state? If I call both with the same brief, are they aware of each other?
No shared state. Each Agent(...) is a separate object with its own instruction set. The only thing they share is the input text you pass to .run_sync(). They're like two copywriters who both received the same brief but have different styles — they work independently.
def compare_tones(text: str) -> dict:
formal = Agent(model, system_prompt="Respond in a formal, professional tone.").run_sync(text).output
casual = Agent(model, system_prompt="Respond in a casual, friendly tone.").run_sync(text).output
return {"formal": formal, "casual": casual}So I get two drafts from one function call. I pick the one that fits the client and move on. That's the judgment layer — I'm not writing, I'm editing.
That's the shift. The AI produces the options; you choose. Your taste and client knowledge still determine the outcome — you just spend 20 minutes on refinement instead of 2 hours on drafting.
My effective rate just went up. I didn't change my prices at all.
What would you have charged for those two draft hours before?
Each Agent(model, system_prompt=...) is an independent object with its own instruction set:
formal = Agent(model, system_prompt="Respond in a formal, professional tone.").run_sync(text).output
casual = Agent(model, system_prompt="Respond in a casual, friendly tone.").run_sync(text).output
return {"formal": formal, "casual": casual}The two agents do not share conversation history, token counts, or context. Each .run_sync() call is a fresh, independent API call. The only shared thing is the input text you pass to both.
Use this pattern whenever you need the same content in different registers, tones, or formats — and want to choose between versions at a higher level. Separate agents keep each output clean and independently controlled. The dict bundles both outputs for comparison or selection.
A client brief can be pitched two ways — formal for a corporate prospect, casual for a startup. Right now you write both versions. What if two agents wrote them for you to choose from?
I'd create two agents with different system prompts? One with a formal tone instruction, one with a casual one?
Exactly. Each agent gets a different system_prompt. Both receive the same brief. You return a dict of both outputs:
formal_agent = Agent(model, system_prompt="Respond in a formal, professional tone.")
casual_agent = Agent(model, system_prompt="Respond in a casual, friendly tone.")Do they share any state? If I call both with the same brief, are they aware of each other?
No shared state. Each Agent(...) is a separate object with its own instruction set. The only thing they share is the input text you pass to .run_sync(). They're like two copywriters who both received the same brief but have different styles — they work independently.
def compare_tones(text: str) -> dict:
formal = Agent(model, system_prompt="Respond in a formal, professional tone.").run_sync(text).output
casual = Agent(model, system_prompt="Respond in a casual, friendly tone.").run_sync(text).output
return {"formal": formal, "casual": casual}So I get two drafts from one function call. I pick the one that fits the client and move on. That's the judgment layer — I'm not writing, I'm editing.
That's the shift. The AI produces the options; you choose. Your taste and client knowledge still determine the outcome — you just spend 20 minutes on refinement instead of 2 hours on drafting.
My effective rate just went up. I didn't change my prices at all.
What would you have charged for those two draft hours before?
Each Agent(model, system_prompt=...) is an independent object with its own instruction set:
formal = Agent(model, system_prompt="Respond in a formal, professional tone.").run_sync(text).output
casual = Agent(model, system_prompt="Respond in a casual, friendly tone.").run_sync(text).output
return {"formal": formal, "casual": casual}The two agents do not share conversation history, token counts, or context. Each .run_sync() call is a fresh, independent API call. The only shared thing is the input text you pass to both.
Use this pattern whenever you need the same content in different registers, tones, or formats — and want to choose between versions at a higher level. Separate agents keep each output clean and independently controlled. The dict bundles both outputs for comparison or selection.
Create a free account to get started. Paid plans unlock all tracks.