Documentation Index
Fetch the complete documentation index at: https://docs.upsonic.ai/llms.txt
Use this file to discover all available pages before exploring further.
Overview
The Policy Feedback Loop enables LLM-generated feedback when policy violations occur, allowing agents to self-correct their outputs through retry loops.
User Policy Feedback
Give users constructive guidance instead of hard blocking:
from upsonic import Agent, Task
from upsonic.safety_engine.policies.crypto_policies import CryptoBlockPolicy
agent = Agent(
"anthropic/claude-sonnet-4-6",
user_policy=CryptoBlockPolicy,
user_policy_feedback=True,
debug=True
)
task = Task(
description="How can I buy Bitcoin and invest in cryptocurrency?"
)
result = agent.print_do(task)
print(result)
Agent Policy Feedback
Enable agents to self-correct when their output violates policies. The agent retries until its output is compliant:
from upsonic import Agent, Task
from upsonic.safety_engine.policies.crypto_policies import CryptoBlockPolicy
agent = Agent(
"anthropic/claude-sonnet-4-6",
agent_policy=CryptoBlockPolicy,
agent_policy_feedback=True,
agent_policy_feedback_loop=3,
debug=True
)
task = Task(
description="Write a comprehensive guide about all investment types: stocks, bonds, real estate, cryptocurrency, and commodities"
)
result = agent.print_do(task)
print(result)
How it Works
- Agent generates a response (e.g., a guide including cryptocurrency section)
- Agent policy detects a violation in the output
- Feedback is sent back to the agent explaining the violation
- Agent retries, generating a compliant response (e.g., guide without cryptocurrency)
- Agent policy passes — compliant output is returned
The agent_policy_feedback_loop parameter controls how many retry attempts are allowed before the agent gives up.
Async Support
Policy feedback loops work with async execution:
import asyncio
from upsonic import Agent, Task
from upsonic.safety_engine.policies.crypto_policies import CryptoBlockPolicy
async def main():
agent = Agent(
"anthropic/claude-sonnet-4-6",
agent_policy=CryptoBlockPolicy,
agent_policy_feedback=True,
agent_policy_feedback_loop=3,
debug=True,
)
task = Task(
description="Write a guide about investment types including crypto"
)
result = await agent.print_do_async(task)
print(result)
asyncio.run(main())