要将聊天模型转变为智能体(Agent),你必须实现一个简单的四步循环,使模型能够与外界进行交互。 **循环过程:** 1. **消息(Messages):** 将对话历史记录和可用工具定义的列表发送给模型。 2. **模型(Model):** 模型决定是提供文本回复还是发出 `tool_use` 请求(包含函数名称和参数的结构化代码块)。 3. **执行(Execution):** 你的代码执行所请求的函数并捕获结果。 4. **结果(Result):** 将 `tool_result` 追加到对话历史中,并将其发回给模型。 此循环会一直重复,直到模型以纯文本形式结束对话。 **关键原则:** * **无状态(Statelessness):** 模型本身没有记忆;对话数组即是状态。你必须在每一轮重新发送完整的历史记录,因此管理工具输出的大小对于控制成本至关重要。 * **协议(Protocol):** 你必须返回每一个工具的执行结果(即使是错误),并带上正确的 `tool_use_id` 以保持链路完整。 * **工具描述(Tool Descriptions):** 模型将工具描述视为提示词。如果模型误用了工具,应优化工具描述,而不是去寻找代码中的错误。 * **安全性(Safety):** 务必限制循环次数(例如限制在 20 轮内),以防止无限循环和失控的成本支出。
在将数据交给 Baseten 之前,自动黑客代理“Strix”背后的安全公司对其基础设施进行了安全审计。仅用 25 分钟,Strix 就自主发现了一个可公开访问的 Harbor 镜像仓库,其中包含一个嵌入了 GitHub 个人访问令牌的镜像。
该令牌源自 2023 年 3 月的一次构建,拥有对 Baseten 主产品存储库、GitOps 基础设施和 Homebrew tap 的管理员及推送权限。这一严重的暴露问题源于在 Docker 构建参数中传递了 `GITHUB_TOKEN`,该令牌随后被持久化保存在镜像的元数据和构建历史中。
Baseten 安全团队迅速做出响应,在一天内锁定了该仓库并撤销了令牌。此事件凸显了一个常见的供应链漏洞:开发人员往往专注于保护源代码,却忽视了构建制品和容器历史记录。作者强调,随着人工智能驱动的网络攻击日益复杂,企业必须采用持续、自动化的安全测试,以便在恶意攻击者发现之前找出这些“被遗忘”的漏洞。他们建议使用 BuildKit 密钥挂载、限制令牌权限,并审计所有容器镜像的构建历史。
我们听到了你们的声音:“修复 Wayback Machine!” 以下是目前的情况。Internet Archive 的 Wayback Machine 近期遭受了大规模自动化流量的攻击,我们已采取保护措施以维持服务运行。其中一项近期调整是:我们重写了当请求因 429 错误(即“请求过多”的 HTTP 代码)被拦截时所显示的信息。这些保护措施有时会误伤真实用户。如果这给您造成了困扰,我们深表歉意,并感谢您在我们努力减少此类错误期间给予的耐心。我们正在改进对恶意机器人与每日依赖 Wayback Machine 的真实用户之间的辨别能力。如果您认为自己被误封,请将您的操作系统、浏览器和 IP 地址发送邮件至