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 和资源。想建立整体认知时,可以看工作原理。