工具快速开始
适用版本:4.0.8.1+
本页对应“工具怎么用 + 展示运行效果”。
1) 注册工具
方式 A:@agent.tool_func
python
from typing import Annotated
from agently import Agently
agent = Agently.create_agent()
@agent.tool_func
def add(a: Annotated[int, "第一个数字"], b: Annotated[int, "第二个数字"]) -> int:
"""返回两个数字之和"""
return a + b方式 B:register_tool
python
def search_docs(query: str, top_k: int = 5):
return [f"doc:{query}"][:top_k]
agent.register_tool(
name="search_docs",
desc="在内部文档中检索",
kwargs={"query": (str, "检索词"), "top_k": (int, "数量")},
func=search_docs,
)2) 让模型自主决策调用
python
agent.use_tools([add, "search_docs"])
response = (
agent
.input("请用工具计算 345 + 678,并补充相关文档检索")
.get_response()
)
answer = response.result.get_data()
print(answer)3) 调整工具回路参数(可选)
python
agent.set_tool_loop(
enabled=True,
max_rounds=4,
concurrency=2,
timeout=30,
)对应设置项:
tool.loop.enabledtool.loop.max_roundstool.loop.concurrencytool.loop.timeout
4) 查看运行效果(tool logs)
python
full = response.result.full_result_data
tool_logs = full.get("extra", {}).get("tool_logs", [])
print(tool_logs)典型单条 tool_log 包含:
purposetool_namekwargstodo_suggestionsuccessresulterror
5) 只生成指令,不执行工具
python
commands = agent.generate_tool_command()
print(commands)返回的是本轮规划出的 execution_commands,适合交给外部执行器。
6) 结果注入机制
当工具被执行且有记录时,框架会自动:
- 把结果写入
prompt.action_results - 加入
extra_instruction(提醒回复引用工具证据) - 将执行记录写入
extra.tool_logs
下一步建议阅读:工具运行流程(Tool Loop)