> ## Documentation Index
> Fetch the complete documentation index at: https://docs.telli.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Refine your Agent

> Improve your agent based on real call data

Refining your agent is an iterative process: review what happened on real calls, hand the issues to Charlie, and review the proposed changes before saving them. Walk through one full cycle below.

<Steps>
  <Step title="Review past calls">
    Open **Conversation History** and drill into a recent call. Read the transcript, listen to the recording, and check the call outcomes to spot specific moments your agent could handle better.

    <video loop muted playsinline style={{ width: '100%', cursor: 'pointer' }} onMouseEnter={(e) => e.currentTarget.play()} onMouseLeave={(e) => { e.currentTarget.pause(); e.currentTarget.currentTime = 0; }}>
      <source src="https://mintcdn.com/telli/oSe6yooA3Hku5xB9/onboarding-media/refine_your_agent/RefineAgent_01_ReviewPastCalls.mp4?fit=max&auto=format&n=oSe6yooA3Hku5xB9&q=85&s=0c76e1a285d33771420b9c3a0485753f" type="video/mp4" data-path="onboarding-media/refine_your_agent/RefineAgent_01_ReviewPastCalls.mp4" />
    </video>
  </Step>

  <Step title="Give feedback to Charlie">
    On the call detail view, click the **Ask Charlie to fix this turn** button.
    This sends the moment you flagged into the Charlie chat along with the full
    transcript, the call outcomes, and any notes you've added. Charlie uses all of
    that as context, so the fix it suggests is grounded in what actually happened
    on this specific call.

    <video
      loop
      muted
      playsinline
      style={{ width: "100%", cursor: "pointer" }}
      onMouseEnter={(e) => e.currentTarget.play()}
      onMouseLeave={(e) => {
  e.currentTarget.pause();
  e.currentTarget.currentTime = 0;
}}
    >
      <source src="https://mintcdn.com/telli/oSe6yooA3Hku5xB9/onboarding-media/refine_your_agent/RefineAgent_02_SelectMessages.mp4?fit=max&auto=format&n=oSe6yooA3Hku5xB9&q=85&s=d0a9c334348ead24a7872732e6947b7e" type="video/mp4" data-path="onboarding-media/refine_your_agent/RefineAgent_02_SelectMessages.mp4" />
    </video>
  </Step>

  <Step title="Describe the changes you want">
    In the Charlie chat, describe the improvement in plain language, or accept the
    auto-prepared context that came from your feedback. Charlie can edit the
    prompt, tools, call control, or outcomes, whatever it takes to address the
    issue.

    <video
      loop
      muted
      playsinline
      style={{ width: "100%", cursor: "pointer" }}
      onMouseEnter={(e) => e.currentTarget.play()}
      onMouseLeave={(e) => {
  e.currentTarget.pause();
  e.currentTarget.currentTime = 0;
}}
    >
      <source src="https://mintcdn.com/telli/oSe6yooA3Hku5xB9/onboarding-media/refine_your_agent/RefineAgent_03_DescribeChanges.mp4?fit=max&auto=format&n=oSe6yooA3Hku5xB9&q=85&s=f9b202ec2edd6d27f4a45d91cbb43385" type="video/mp4" data-path="onboarding-media/refine_your_agent/RefineAgent_03_DescribeChanges.mp4" />
    </video>
  </Step>

  <Step title="Review the proposed changes">
    Charlie shows you exactly what will change before anything is applied. Read
    through the changes to make sure the fix lands the way you want.

    <video
      loop
      muted
      playsinline
      style={{ width: "100%", cursor: "pointer" }}
      onMouseEnter={(e) => e.currentTarget.play()}
      onMouseLeave={(e) => {
  e.currentTarget.pause();
  e.currentTarget.currentTime = 0;
}}
    >
      <source src="https://mintcdn.com/telli/oSe6yooA3Hku5xB9/onboarding-media/refine_your_agent/RefineAgent_04_ApproveChanges.mp4?fit=max&auto=format&n=oSe6yooA3Hku5xB9&q=85&s=52ae55063fa246de32ec0507c16f0359" type="video/mp4" data-path="onboarding-media/refine_your_agent/RefineAgent_04_ApproveChanges.mp4" />
    </video>
  </Step>

  <Step title="Save the draft or revert the checkpoint">
    Keep the change in your draft if it looks good, or revert the checkpoint if it didn't land. Use **Version history** to roll back to an earlier version when you need to.

    <Tip>
      Re-test after every meaningful change so you can see the impact right away. Head back to [Test your Agent](/en/get-started/test-your-agent) to run another test call.
    </Tip>
  </Step>
</Steps>

## Give feedback to telli

<div
  style={{
backgroundColor: "#FFF3E0",
borderLeft: "4px solid #FF9800",
padding: "1rem 1.25rem",
borderRadius: "0.5rem",
margin: "1.25rem 0",
display: "flex",
gap: "0.75rem",
alignItems: "flex-start",
}}
>
  <svg width="24" height="24" viewBox="0 0 24 24" fill="#FF9800" style={{ flexShrink: 0, marginTop: "0.125rem" }}>
    <path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-6h2v6zm0-8h-2V7h2v2z" />
  </svg>

  <div>
    You can also give the telli team feedback directly from the call detail view
    by clicking the 👍 or 👎 icons next to call summaries, outcomes, and
    individual conversation turns. We use this feedback to debug calls, fix
    bigger behavior issues, and improve the product for you.
  </div>
</div>

<Card title="Feedback System" icon="thumbs-up" href="/deep-dives/feedback-system">
  Full guide to the thumbs up / thumbs down feedback system and how to use it
  well.
</Card>

## Tips

* Make **small, focused changes** so you can clearly see what improved and what didn't.
* Look at **patterns across multiple calls** instead of reacting to a single one, since recurring issues are the highest-leverage fixes.
* Read through our **"Charlie Cookbook"** linked below to see best practices

<Card title="Charlie Cookbook" icon="book" href="/cookbooks/how-to-prompt">
  Dive into advanced workflows, tips, and real-world examples for getting the
  most out of Charlie.
</Card>

## Next Steps

<Card title="Publish your Agent" icon="upload" href="/en/get-started/publish-your-agent">
  Once your agent performs the way you want, publish your changes so they go
  live.
</Card>
