Zett Agent#
能自己锻造所需工具的智能体。
Zett Agent 是一个用于工具调用智能体的小型 Python 运行时。它的 JIT harness 让模型在一次运行途中编写、复用和检查自己的工具,因此长任务不必为同样的探索反复付出代价。
带上你自己的模型和普通的 Python 函数。需要时再添加技能、持久化和委派。
你的应用
Python
from zett_agent.client import create_agent
from zett_agent.extensions.memory import InMemoryMessageAccumulator
from zett_agent.jit_harness import JITHarnessExtension
client = await create_agent(
model,
tools=[add],
extensions=[
InMemoryMessageAccumulator(),
JITHarnessExtension(),
],
)
await client.run("Build a tool that doubles 21, then use it.")
由模型在运行途中编写
Python
@tool(guidelines="Use to add an integer to itself.")
async def twice(value: int) -> int:
"""Add the same integer twice."""
return await harness.call_tool(
"add", left=value, right=value
)
在异步函数中使用已配置好的模型。可以先看完整且无需密钥的示例。生成出来的工具是受信任的代码,而不是沙箱:请阅读JIT harness 指南。
pip install zett-agent
uv add zett-agent
让模型锻造它需要的东西#
这里的 JIT 指的是在任务需要时构建工具环境,而不是 Python 的即时编译器。JIT harness 通过普通的函数调用来工作,因此在 Responses 和 Chat Completions 上都能运行。
锻造
create_tool注册模型刚刚编写的 Python 工具或 Markdown 过程。一个 Python 工具可以横跨多个相互导入的文件。
复用与组合
工具之间通过 harness.call_tool 相互调用。一次外层调用可以驱动一串嵌套调用,而这些调用的结果从不进入上下文。
检查与卸载
源码、性能分析结果和最近的错误都始终可查。卸载任务不再需要的部分,并用快照把工具箱带到下一个会话。
阅读 JIT harness 指南,了解控制循环、模型看到的内容以及信任边界。
需要的一切,只在需要时出现。#
让第一个智能体保持简单。添加能力,但不改变运行方式。
OpenAI、Anthropic、Google、DeepSeek 或 Ollama。每个内置适配器都使用同一套客户端、工具和事件回调。
编写一个带类型注解的 Python 函数。它的签名和文档字符串成为工具定义;运行时负责校验并执行调用。
展示增量文本、可用的推理内容、工具进度和结果。接入你自己的终端、UI 或服务。
把技能保存在可编辑的文本文件中。需要时再发现它们的指令,或者在支持的 Responses 端点上搜索延迟加载的工具。
从这里开始,走得更远。#
跟着教程做一遍,找一个完整示例,或者查阅某个确切的接口。
01 / 快速开始
运行你的第一个智能体,无需 API 密钥。然后接入模型提供商、添加工具,并流式输出真实的回答。
02 / 找到可运行的代码
浏览完整示例,了解会话、审批、上下文压缩、委派和取消。
03 / 打造成你自己的
为你的工作流构建扩展。了解如何添加工具、指令和进度事件。
04 / 查阅接口
浏览 API 参考,查找签名、默认值、配置字段和示例。
已经在开发应用了?可以从配置你的智能体入手了解默认值和请求级覆盖,用集成到应用了解超时和并发对话,用测试你的智能体编写确定性的测试。
从问题到答案的简单循环#
模型可以直接作答,也可以请求工具。Zett Agent 运行这些工具,返回工具结果,然后再次调用模型,直到它给出答案。
你的消息
模型
工具(如需要)
模型
答案
历史记录、审批和上下文管理都是在这同一个循环上扩展出来的。启用哪些由你决定,你的应用始终掌控自己的 UI 和资源。想建立整体认知时,可以看工作原理。