Vom Assistenten zum autonomen Agenten
Das Spektrum vom Chatbot bis zum vollständig autonomen Agenten: Was ändert sich auf jeder Stufe?
Vom Assistenten zum autonomen Agenten ist eine kostenlose AI Agents-Lektion auf CoddyKit. Dies ist Lektion 1 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des AI Agents-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der AI Agents-Kurs umfasst insgesamt 4 Lektionen.
Das Autonomiespektrum
KI-Systeme bewegen sich auf einem Spektrum von vollständig reaktiv bis vollständig autonom. Wenn Sie verstehen, wo Ihr Agent auf diesem Spektrum steht, können Sie bestimmen, welche Architekturkomponenten er benötigt, wie viel menschliche Überwachung erforderlich ist und mit welchen Fehlermodi Sie rechnen müssen.
Stufe 1: Reiner Chatbot
Ein reiner Chatbot antwortet mit Text auf Nachrichten. Über das aktuelle Kontextfenster hinaus verfügt er über kein Gedächtnis, keine Tools, keine Ziele und keine Möglichkeit, in der Welt zu handeln. Jede Interaktion ist zustandslos. Erforderliche menschliche Überwachung: minimal – er kann nur Text erzeugen und nicht handeln.
import anthropic
# Level 1: Pure chatbot — single turn, no memory, no tools
def pure_chatbot(user_message: str) -> str:
client = anthropic.Anthropic(api_key='YOUR_API_KEY')
response = client.messages.create(
model='claude-opus-4-5',
max_tokens=512,
messages=[{'role': 'user', 'content': user_message}]
)
return response.content[0].text
# What it has:
# - Language understanding
# - Knowledge from training
# What it lacks:
# - Memory (no history between sessions)
# - Tools (cannot access external data)
# - Goals (no objective to pursue)
# - Proactivity (only responds, never initiates)
response = pure_chatbot('What is the capital of Australia?')
print(response)Stufe 2: Tool-erweiterter Agent
Ein Tool-erweiterter Agent erhält externe Fähigkeiten wie Websuche, Datenbankabfragen, Codeausführung und API-Aufrufe. Er kann Fragen beantworten, für die aktuelle Daten erforderlich sind. Gedächtnis kann innerhalb einer Sitzung erhalten bleiben. Erforderliche menschliche Überwachung: moderat – der Agent kann Daten lesen, aber seine Aktionen sind in der Regel schreibgeschützt oder risikoarm.
import anthropic
# Level 2: Tool-augmented agent
def tool_augmented_agent(user_message: str, conversation_history: list) -> str:
client = anthropic.Anthropic(api_key='YOUR_API_KEY')
tools = [
{
'name': 'search_web',
'description': 'Search the web for current information',
'input_schema': {'type': 'object',
'properties': {'query': {'type': 'string'}},
'required': ['query']}
}
]
conversation_history.append({'role': 'user', 'content': user_message})
response = client.messages.create(
model='claude-opus-4-5',
max_tokens=1024,
tools=tools,
messages=conversation_history
)
# Handle tool use...
return response.content[-1].text if response.stop_reason == 'end_turn' else '[tool called]'
# What changed vs Level 1:
# + Tools (external data access)
# + Session memory (conversation history)
# Still lacking:
# - Persistent cross-session memory
# - Goals (still reactive)
# - ProactivityStufe 3: Zielgerichteter Agent
Ein zielgerichteter Agent verfolgt über mehrere Schritte hinweg ein festgelegtes Ziel und bewahrt zwischen Tool-Aufrufen seinen Zustand. Er verfügt über einen Planer, der das Ziel in Teilaufgaben zerlegt. Erforderliche menschliche Überwachung: erheblich – der Agent führt mehrstufige Aktionen aus, die kumulative Auswirkungen in der realen Welt haben können.
# Level 3: Goal-directed agent
class GoalDirectedAgent:
def __init__(self, goal: str, tools: list, client):
self.goal = goal
self.tools = tools
self.client = client
self.memory = [] # persistent across steps
self.plan = self._make_plan()
def _make_plan(self) -> list:
response = self.client.messages.create(
model='claude-opus-4-5', max_tokens=512,
messages=[{'role': 'user', 'content':
f'Goal: {self.goal}\n'
'Create a numbered list of steps to achieve this goal. '
'Each step should be a single tool call or reasoning step.'
}]
)
return response.content[0].text
def step(self) -> str:
# Execute next planned step
return 'step executed'
# What changed vs Level 2:
# + Goal: has an objective to pursue
# + Planning: decomposes goal into sub-tasks
# + Persistent memory across steps
# Still lacking:
# - Self-directed (still initiated by human)
# - Self-improvement
if __name__ == '__main__':
class FakeContent:
def __init__(self, text):
self.text = text
class FakeResponse:
def __init__(self, text):
self.content = [FakeContent(text)]
class FakeMessages:
def create(self, **kwargs):
return FakeResponse('1. Search web for topic\n2. Summarize findings\n3. Draft report')
class FakeClient:
def __init__(self):
self.messages = FakeMessages()
agent = GoalDirectedAgent(goal='Write a market report', tools=[], client=FakeClient())
print('Goal:', agent.goal)
print('Plan:')
print(agent.plan)
Stufe 4: Selbstgesteuerter Agent
Ein selbstgesteuerter Agent setzt eigene Teilziele, überwacht seine Umgebung auf relevante Ereignisse und leitet Aktionen ohne menschliche Aufforderung ein. Er verfügt über ein Langzeitgedächtnis und ein Weltmodell und kann bei veränderten Umständen neu planen. Erforderliche menschliche Überwachung: hoch – der Agent leitet Aktionen autonom ein.
import time
# Level 4: Self-directed agent (simplified sketch)
class SelfDirectedAgent:
def __init__(self, mission: str, client):
self.mission = mission
self.client = client
self.goals_queue = []
self.long_term_memory = []
self.running = False
def start(self):
self.running = True
self._generate_initial_goals()
while self.running:
self._observe_environment()
self._prioritise_goals()
if self.goals_queue:
goal = self.goals_queue.pop(0)
self._pursue_goal(goal)
time.sleep(60) # autonomous monitoring loop
def _observe_environment(self):
# Agent monitors for events without being asked
print('Observing environment...')
def _generate_initial_goals(self):
# Agent decomposes its mission into actionable goals
self.goals_queue = ['Monitor inbox', 'Check project status']
def _prioritise_goals(self):
# Agent re-orders goals based on new observations
pass
def _pursue_goal(self, goal: str):
print(f'Pursuing: {goal}')
if __name__ == '__main__':
agent = SelfDirectedAgent(mission='Manage my inbox proactively', client=None)
agent._generate_initial_goals()
print('Initial goals:', agent.goals_queue)
agent._observe_environment()
goal = agent.goals_queue.pop(0)
agent._pursue_goal(goal)
Was sich auf jeder Stufe ändert: Gedächtnis
Die Anforderungen an das Gedächtnis steigen mit dem Autonomiegrad. Stufe 1 verwendet nur das Kontextfenster (Sitzungsgedächtnis). Stufe 2 ergänzt einen persistenten Sitzungsverlauf. Stufe 3 ergänzt einen strukturierten Aufgabenstatus. Stufe 4 erfordert episodisches Gedächtnis (was geschehen ist), semantisches Gedächtnis (was der Agent weiß) und prozedurales Gedächtnis (wie Dinge erledigt werden).
MEMORY_BY_LEVEL = {
'L1_chatbot': {
'scope': 'context_window_only',
'persistence': 'none',
'implementation': 'messages list in current API call'
},
'L2_tool_augmented': {
'scope': 'session',
'persistence': 'in-memory (lost on restart)',
'implementation': 'conversation_history list'
},
'L3_goal_directed': {
'scope': 'task',
'persistence': 'persists for task duration',
'implementation': 'SQLite or Redis with task state'
},
'L4_self_directed': {
'scope': 'long_term',
'persistence': 'indefinite',
'implementation': 'vector DB (episodic) + structured DB (semantic) + prompt cache (procedural)'
}
}
for level, info in MEMORY_BY_LEVEL.items():
print(f'{level}: {info["implementation"]}')Was sich auf jeder Stufe ändert: Planung
Auch die Anforderungen an die Planung steigen mit der Autonomie. Stufe 1 beinhaltet keine Planung. Stufe 2 kann einstufiges Schlussfolgern verwenden. Stufe 3 nutzt mehrstufige Planung (Chain of Thought, ReAct). Stufe 4 erfordert hierarchische Planung mit einer Neuplanung im Fehlerfall.
PLANNING_BY_LEVEL = {
'L1': 'None — single response',
'L2': 'Single-step tool selection (which tool to call now)',
'L3': 'Multi-step plan (goal -> ordered sub-tasks -> tool calls)',
'L4': 'Hierarchical plan (mission -> goals -> tasks -> actions) + replan on failure'
}
# L3 multi-step planning example:
def plan_goal(goal: str, client) -> list:
import anthropic
response = client.messages.create(
model='claude-opus-4-5', max_tokens=512,
messages=[{'role': 'user', 'content':
f'Break this goal into 3-5 concrete steps:\nGoal: {goal}\n'
'Return JSON: {"steps": [{"step": int, "action": str, "tool": str}]}'
}]
)
import json
return json.loads(response.content[0].text)
for lvl, desc in PLANNING_BY_LEVEL.items():
print(f'{lvl}: {desc}')Anforderungen an die menschliche Überwachung nach Stufe
Mit zunehmender Autonomie steigt auch der Bedarf an Mechanismen zur menschlichen Überwachung. Stufe 1 benötigt kaum Überwachung. Stufe 4 erfordert eine explizite Überwachungsarchitektur: Freigabegates, Aktionsprotokolle, Unterbrechungsmechanismen und Anomalieerkennung.
OVERSIGHT_BY_LEVEL = {
'L1_chatbot': [
'None required (output only)'
],
'L2_tool_augmented': [
'Review tool permissions (read-only vs write)',
'Audit logs of tool calls'
],
'L3_goal_directed': [
'Human approval before irreversible actions',
'Plan review before execution starts',
'Progress checkpoints',
'Full audit trail'
],
'L4_self_directed': [
'Human approval before high-impact actions',
'Real-time action streaming to oversight dashboard',
'Emergency stop mechanism',
'Anomaly detection on goal drift',
'Regular review of long-term memory state',
'Corrigibility: agent must accept shutdown'
]
}
for level, requirements in OVERSIGHT_BY_LEVEL.items():
print(f'{level}:')
for req in requirements:
print(f' - {req}')Proaktivität: Der entscheidende Wandel
Der grundlegendste Wandel vom Assistenten zum autonomen Agenten ist die Proaktivität. Ein Assistent wartet. Ein Agent leitet Aktionen ein. Das bedeutet, dass der Agent seine Umgebung überwachen, relevante Ereignisse erkennen und entscheiden muss, wann er handelt – und das alles ohne Aufforderung.
# Proactive monitoring pattern
import asyncio
from datetime import datetime
class ProactiveMonitor:
def __init__(self, agent_fn, check_fn, interval_seconds: int = 60):
self.agent_fn = agent_fn
self.check_fn = check_fn
self.interval = interval_seconds
async def run(self):
print(f'Proactive monitor started, checking every {self.interval}s')
while True:
try:
events = await self.check_fn()
for event in events:
print(f'[{datetime.utcnow().isoformat()}] Event: {event}')
await self.agent_fn(event)
except Exception as e:
print(f'Monitor error: {e}')
await asyncio.sleep(self.interval)
# Example: agent monitors for new emails every 5 minutes
# and proactively drafts replies or flags urgent ones
async def example_setup():
monitor = ProactiveMonitor(
agent_fn=lambda e: print(f'Agent handling: {e}'),
check_fn=lambda: [], # replace with real inbox check
interval_seconds=300
)
# await monitor.run()
if __name__ == '__main__':
import asyncio
async def demo():
async def check_fn():
return ['New email from boss@example.com']
async def agent_fn(event):
print(f'Agent drafting reply for: {event}')
monitor = ProactiveMonitor(agent_fn=agent_fn, check_fn=check_fn, interval_seconds=1)
try:
await asyncio.wait_for(monitor.run(), timeout=0.3)
except asyncio.TimeoutError:
pass
asyncio.run(demo())
Fehlerbehebung nach Stufe
Auch die Anforderungen an die Fehlerbehebung steigen. Ein Chatbot entschuldigt sich lediglich. Ein Tool-Agent wiederholt den Tool-Aufruf. Ein zielgerichteter Agent plant den fehlgeschlagenen Schritt neu. Ein selbstgesteuerter Agent erkennt, kategorisiert und eskaliert Fehler autonom und aktualisiert sein Weltmodell, um denselben Fehler in Zukunft zu vermeiden.
# Error recovery strategies by autonomy level
def chatbot_error_recovery(error: Exception) -> str:
return 'I\'m sorry, I encountered an error. Please try again.'
def tool_agent_error_recovery(tool_name: str, error: Exception, retries: int) -> str:
if retries < 3:
return f'Retrying {tool_name} ({retries+1}/3)'
return f'Tool {tool_name} unavailable after 3 retries, skipping'
def goal_agent_error_recovery(failed_step: dict, plan: list, client) -> list:
import anthropic, json
client_obj = anthropic.Anthropic(api_key='YOUR_API_KEY')
response = client_obj.messages.create(
model='claude-opus-4-5', max_tokens=256,
messages=[{'role': 'user', 'content':
f'Step failed: {failed_step}\nRemaining plan: {plan}\n'
'Revise the remaining plan to work around the failure. Return JSON plan.'
}]
)
return json.loads(response.content[0].text)
print('Error recovery patterns defined for each autonomy level')Die richtige Stufe auswählen
Nicht jeder Anwendungsfall benötigt Stufe 4. Beginnen Sie mit der niedrigsten Stufe, die Ihre Anforderungen erfüllt, und fügen Sie nur bei Bedarf Komplexität hinzu. Mehr Autonomie bedeutet mehr Komplexität, einen höheren Überwachungsaufwand und ein größeres Potenzial für unerwartetes Verhalten.
def recommend_autonomy_level(requirements: dict) -> str:
needs_realtime = requirements.get('realtime_data', False)
needs_multistep = requirements.get('multi_step_tasks', False)
needs_unsupervised = requirements.get('runs_unsupervised', False)
needs_initiative = requirements.get('initiates_actions', False)
if needs_initiative and needs_unsupervised:
return 'L4_self_directed (high oversight required)'
if needs_multistep:
return 'L3_goal_directed (plan review recommended)'
if needs_realtime:
return 'L2_tool_augmented (audit logs required)'
return 'L1_chatbot (minimal oversight)'
# Examples:
print(recommend_autonomy_level({
'realtime_data': True, 'multi_step_tasks': False,
'runs_unsupervised': False, 'initiates_actions': False
}))
print(recommend_autonomy_level({
'realtime_data': True, 'multi_step_tasks': True,
'runs_unsupervised': True, 'initiates_actions': True
}))Wissenscheck
Was ist der grundlegendste Unterschied in den Fähigkeiten eines zielgerichteten Agents (Stufe 3) und eines selbstgesteuerten Agents (Stufe 4)?
Zusammenfassung: Vom Assistenten zum autonomen Agenten
Ausgezeichnet! Das haben Sie gelernt:
- L1-Chatbot: reaktiv, nur Text, kein Gedächtnis, keine Überwachung erforderlich
- L2-Tool-erweiterter Agent: Sitzungsgedächtnis, Tool-Aufrufe, moderate Überwachung
- L3-zielgerichteter Agent: mehrstufige Planung, aufgabenbezogenes Gedächtnis, Freigabegates
- L4-selbstgesteuerter Agent: proaktiv, Langzeitgedächtnis, hierarchische Planung, hohe Überwachungsanforderungen
- Faustregel: Beginnen Sie mit der niedrigsten Stufe, die Ihre Anforderungen erfüllt
Als Nächstes geht es um Weltmodelle und vorausschauende Planung – wie Agents vor einer Handlung simulieren.
Häufig gestellte Fragen
Ist die Lektion „Vom Assistenten zum autonomen Agenten“ kostenlos?
Ja — der vollständige Text von „Vom Assistenten zum autonomen Agenten“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des AI Agents-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der AI Agents-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „Vom Assistenten zum autonomen Agenten“?
Das Spektrum vom Chatbot bis zum vollständig autonomen Agenten: Was ändert sich auf jeder Stufe? Du übst AI Agents mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um AI Agents zu starten?
Keine Vorkenntnisse erforderlich. AI Agents auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 1 von 4.
Wie lange dauert die Lektion „Vom Assistenten zum autonomen Agenten“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser AI Agents-Lektion Code schreiben und ausführen?
Ja. Jede AI Agents-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- Vom Assistenten zum autonomen Agenten
- Weltmodelle und prädiktive Planung
- Alignment-Herausforderungen bei autonomen Agenten
- Forschungsgrenzen: AGI und darüber hinaus