stock/examples/04_learning_system.py
2026-02-27 03:17:12 +08:00

98 lines
3.2 KiB
Python

"""Learning System Example.
Demonstrates the agent learning and skill improvement system.
"""
from openclaw.agents.trader import TraderAgent
from openclaw.learning.manager import CourseManager
from openclaw.learning.courses import (
create_technical_analysis_course,
create_risk_management_course,
)
def main():
"""Run the learning system example."""
print("=" * 60)
print("OpenClaw Trading - Learning System Example")
print("=" * 60)
# 1. Create agent
print("\n1. Creating trading agent...")
agent = TraderAgent(agent_id="student_001", initial_capital=2000.0)
print(f" Agent ID: {agent.agent_id}")
print(f" Initial Skill Level: {agent.state.skill_level:.2f}")
print(f" Balance: ${agent.balance:,.2f}")
# 2. Create learning manager
print("\n2. Creating learning manager...")
manager = CourseManager(agent=agent)
print(" Learning manager initialized")
# 3. Show available courses
print("\n3. Available Courses:")
courses = [
create_technical_analysis_course(),
create_risk_management_course(),
]
for course in courses:
print(f"\n {course.name}")
print(f" ID: {course.course_id}")
print(f" Duration: {course.duration_days} days")
print(f" Cost: ${course.cost:,.2f}")
if course.effects:
print(f" Effect: +{course.effects[0].improvement:.0%} {course.effects[0].skill_type.value}")
# 4. Check enrollment eligibility
print("\n4. Checking enrollment eligibility...")
can_enroll, reason = manager.can_enroll("technical_analysis_101")
print(f" Can enroll in 'Technical Analysis': {can_enroll}")
if not can_enroll:
print(f" Reason: {reason}")
# 5. Enroll in course
print("\n5. Enrolling in course...")
success, message = manager.enroll("technical_analysis_101")
print(f" Success: {success}")
print(f" Message: {message}")
if success:
# 6. Check if learning
print("\n6. Checking learning status...")
is_learning = manager.is_learning()
print(f" Is Learning: {is_learning}")
# 7. Get current course
print("\n7. Current course progress:")
current = manager.get_current_learning()
if current:
print(f" Course: {current.course_id}")
print(f" Status: {current.status.value}")
print(f" Progress: {current.progress_percent:.1f}%")
# 8. Simulate progress
print("\n8. Simulating learning progress...")
for progress in [25, 50, 75, 100]:
manager.update_progress("technical_analysis_101", progress)
print(f" Progress: {progress}%")
# 9. Check skill levels
print("\n9. Current skill levels:")
for skill, level in manager.skill_levels.items():
print(f" {skill.value}: {level:.2f}")
# 10. Get learning history
print("\n10. Learning history:")
history = manager.learning_history
print(f" Courses completed: {len(history.completed_courses)}")
print(f" Total spent: ${history.total_spent:,.2f}")
print("\n" + "=" * 60)
print("Learning system example complete!")
print("=" * 60)
if __name__ == "__main__":
main()