79 lines
1.8 KiB
Python
79 lines
1.8 KiB
Python
"""
|
|
Step 03: 构建简单 Agent - 主程序
|
|
|
|
运行方式:
|
|
cd step_03_simple_agent
|
|
python main.py
|
|
"""
|
|
|
|
from concept import SimpleAgent
|
|
|
|
|
|
def main():
|
|
"""交互式演示 Agent"""
|
|
|
|
print("=" * 70)
|
|
print(" Step 03: 构建简单 Agent - 交互式演示")
|
|
print("=" * 70)
|
|
print("""
|
|
欢迎使用 Jaspersoft 报表助手!
|
|
|
|
我可以帮你:
|
|
- 生成 JRXML 报表模板
|
|
- 搜索相关报表模板
|
|
- 验证报表代码
|
|
- 执行数学计算
|
|
|
|
输入 'quit' 或 '退出' 结束对话
|
|
""")
|
|
|
|
# 创建 Agent
|
|
agent = SimpleAgent()
|
|
|
|
# 显示可用工具
|
|
print("\n📋 我的能力:")
|
|
for tool in agent.get_available_tools():
|
|
print(f" • {tool['name']}: {tool['description']}")
|
|
|
|
print("\n" + "-" * 70)
|
|
print("开始对话:")
|
|
print("-" * 70)
|
|
|
|
# 交互式循环
|
|
while True:
|
|
try:
|
|
user_input = input("\n👤 你: ").strip()
|
|
|
|
if not user_input:
|
|
continue
|
|
|
|
if user_input.lower() in ["quit", "退出", "exit", "q"]:
|
|
print("\n👋 再见!")
|
|
break
|
|
|
|
# 处理输入
|
|
response = agent.process(user_input)
|
|
|
|
# 显示响应
|
|
print(f"\n🤖 Agent: {response}")
|
|
|
|
except KeyboardInterrupt:
|
|
print("\n\n👋 再见!")
|
|
break
|
|
except Exception as e:
|
|
print(f"\n❌ 出错了: {e}")
|
|
|
|
# 显示会话统计
|
|
print("\n\n" + "=" * 70)
|
|
print("📊 会话统计")
|
|
print("=" * 70)
|
|
print(f" 对话轮次: {agent.round_count}")
|
|
print(f" 工具调用: {len(agent.state.get('tool_calls', []))}")
|
|
print("\n💡 继续学习:")
|
|
print(" Step 04: 添加 Memory - 记忆系统")
|
|
print(" Step 05: 添加 RAG - 知识检索")
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main()
|