Co-creation-projects/chen070808-ProgrammingTutor/main.ipynb
一个基于多智能体协作的个性化编程学习系统,展示了如何使用 hello-agents 框架构建复杂的 Agent-to-Agent (A2A) 协作系统。
本系统采用分层智能体架构:
AgentTool 将子智能体封装为工具,实现 A2A 通信CodeRunner 工具,可执行 Python 代码验证本 notebook 包含三个完整的测试场景,展示了智能编程导师的核心功能。
初始化 LLM 和环境配置。
关键组件:
HelloAgentsLLM:统一的 LLM 接口.env 文件:存储 API 密钥等敏感信息src 路径:包含自定义智能体和工具的实现# 1. 环境设置
import os
import sys
from dotenv import load_dotenv
from hello_agents import HelloAgentsLLM
load_dotenv()
if "src" not in sys.path:
sys.path.append(os.path.abspath("src"))
# 初始化 LLM
llm = HelloAgentsLLM()
print("✅ 环境配置完成")
print("✅ LLM 已初始化")
创建 TutorAgent 实例时,会自动:
call_planner、call_exercise、call_reviewer)CodeRunner 工具给 Reviewer 使用架构亮点:
AgentTool 实现 Agent-to-Agent 调用system_prompt 定义其专业领域# 2. 初始化 Tutor(自动创建所有子智能体)
from agents.tutor import TutorAgent
print("创建智能编程导师...")
tutor = TutorAgent(llm)
print("\n✅ Tutor 初始化完成!")
print(" - Planner(规划师)已就绪")
print(" - Exercise(出题人)已就绪")
print(" - Reviewer(评审员)已就绪")
演示 Tutor → Planner 的协作流程。
执行流程:
call_planner 工具期望输出:包含多个学习模块、时间安排、学习建议的完整学习路径。
user_goal = "我想学习 Python 中的列表推导式"
print(f"用户目标: {user_goal}\n")
# Tutor 会调用 call_planner 工具
response = tutor.run(f"用户说:'{user_goal}'。请为用户制定学习计划。")
print("=== Tutor 回应 ===")
print(response)
演示 Tutor → Exercise 的协作流程。
执行流程:
call_exercise 工具期望输出:一道高质量的编程练习题,包含:
# Tutor 会调用 call_exercise 工具
response = tutor.run("请给我出一道关于列表推导式的练习题。")
print("=== Tutor 回应 ===")
print(response)
演示 Tutor → Reviewer → CodeRunner 的多层协作流程。
执行流程:
call_reviewer 工具code_runner 工具执行代码验证技术亮点:
测试代码说明: 用户尝试解答测试 2 中的练习题(筛选正偶数并求平方),Reviewer 会验证代码的正确性。
# 用户尝试解答上面的练习题
user_code = """
def filter_and_square_numbers(numbers):
return [n * n for n in numbers if n > 0 and n % 2 == 0]
# 测试
test_list = [1, 2, 3, 4, 5, 6, -2, -4, 0]
result = filter_and_square_numbers(test_list)
print(result)
"""
print(f"=== 用户代码 ===\n{user_code}\n")
# Tutor 会调用 call_reviewer 工具
response = tutor.run(f"""用户尝试解答前面的列表推导式练习题,请评审以下代码:
{user_code}
题目要求:筛选出正偶数并返回它们的平方。""")
print("=== Tutor 回应 ===")
print(response)
本演示展示了如何使用 hello-agents 框架构建多智能体协作系统。
AgentTool:将智能体封装为工具,实现 A2A 调用
self.add_tool(AgentTool(
self.planner,
name="call_planner",
description="调用课程规划师"
))
工具链:Reviewer 使用 CodeRunner 执行代码
ReviewerAgent(llm, tools=[CodeRunner()])
System Prompt:通过精心设计的提示词定义智能体行为
src/
├── agents/
│ ├── tutor.py # 主协调智能体
│ ├── planner.py # 学习计划制定
│ ├── exercise.py # 练习题生成
│ └── reviewer.py # 代码评审
└── tools/
├── agent_tool.py # A2A 工具封装
└── code_runner.py # 代码执行工具