File "D:\lantu\vcat2\tests\qwen_test_090401.py", line 21, in <module> agent.register(add) ^^^^^^^^^^^^^^ AttributeError: 'FnCallAgent' object has no attribute 'register'
时间: 2025-09-04 14:46:25 AIGC 浏览: 7
感谢你的反馈!根据你提供的错误信息:
```
AttributeError: 'FnCallAgent' object has no attribute 'register'
```
这表明你当前使用的 `qwen-agent` 版本中,`FnCallAgent` 并不包含 `register` 方法。这可能是因为你使用的版本较新或较旧,API 已经发生了变化。
---
### ✅ 正确使用方式(适用于最新版 `qwen-agent`)
在较新的 `qwen-agent` 版本中,函数注册方式已更改为通过构造器传入工具(functions)列表。以下是更新后的使用方式:
#### 示例代码:
```python
from qwen_agent.agents import FnCallAgent
from qwen_agent.tools import add, multiply # 假设你已经定义了这些函数或从工具中导入
# 定义函数
def add(a: int, b: int) -> int:
return a + b
def multiply(a: int, b: int) -> int:
return a * b
# 初始化 FnCallAgent 并传入函数工具
agent = FnCallAgent(llm=None, functions=[add, multiply])
# 调用函数
result = agent.run("请计算 3 加上 4 的结果")
print(result) # 输出 7
result = agent.run("请计算 6 乘以 8 的结果")
print(result) # 输出 48
```
---
### 🔍 注意事项:
- 确保你使用的是最新版本的 `qwen-agent`,可以通过以下命令更新:
```bash
pip install --upgrade qwen-agent
```
- 如果你没有自定义 LLM(语言模型),可以传入 `llm=None`,否则应初始化一个合适的 LLM 实例。
- 你也可以将函数封装为工具类(继承 `Tool` 类),然后通过 `tools=[tool1, tool2]` 传入。
---
### ✅ 推荐检查方式:
你可以通过以下方式查看当前 `FnCallAgent` 的属性:
```python
import inspect
print(inspect.getmembers(FnCallAgent))
```
这将列出所有支持的属性和方法。
---
阅读全文
相关推荐
















