2026年7月13日 2 分钟阅读

AI Agent 调用工具时上下文爆炸?Pctx 用 Code Mode 把 150K Token 降到 2K

tinyash 0 条评论

你有过这种经历吗?AI 编码 Agent 需要处理一个简单的数据筛选任务——从 Google Sheet 读取数据,过滤出符合条件的行,然后计算汇总。传统工具调用模式下,Agent 先调用 getSheet(id) 获取 1000 行数据塞进上下文,再调用 filterRows(criteria) 过滤出 50 行又塞回去,最后再调用 summarize()……每一步的中间结果都在撑大上下文窗口,Token 消耗像滚雪球一样增长。

Anthropic 的工程师们提出了一个解决思路——Code Mode(代码模式):让 Agent 直接写代码来批量处理,而不是逐次调用工具。但实现 Code Mode 需要处理 MCP 服务器聚合、认证管理、沙箱安全等一系列基础设施问题。Pctx(读作「p-context」)正是解决这个问题的开源框架——它坐落在 AI Agent 和 MCP 服务器之间,聚合多个上游 MCP 服务器,通过统一的 Code Mode 接口暴露工具,让 Agent 用写代码的方式替代序列化工具调用。

场景传统工具调用 (Tool Mode)Code Mode (Pctx)
数据过滤 + 筛选 + 汇总3 次工具调用,中间数据来回塞上下文1 段 TypeScript 代码本地运行
Token 消耗150K tokens(多步操作实测)2K tokens(98.7% 减少)
上下文污染每步中间结果残留在上下文中只在沙箱中处理
错误恢复每步需独立重试工具调用代码级 try/catch
多 MCP 认证每个 MCP 单独管理Pctx 统一管理

三行命令上手

Pctx 的安装方式覆盖了主流包管理器:

brew install portofcontext/tap/pctx

npm i -g @portofcontext/pctx

curl --proto '=https' --tlsv1.2 -LsSf https://raw.githubusercontent.com/portofcontext/pctx/main/install.sh | sh

安装后,一行命令启动 Code Mode:

pctx start

要聚合多个 MCP 服务器也很简单:

pctx mcp init

pctx mcp add stripe https://mcp.stripe.com
pctx mcp add memory --command "npx -y @modelcontextprotocol/server-memory"

pctx mcp dev

pctx mcp start --stdio

核心能力

Code Mode:工具调用的范式转变

Pctx 的核心价值在于用代码执行替代序列化工具调用。传统 MCP 流程中,Agent 每调用一个工具就要把结果送回上下文,Agent 再基于结果决定下一步——这就像每次发完命令都要等人把结果读回大脑,再想下一步。Code Mode 让 Agent 直接写一段 TypeScript 脚本在沙箱中运行:

// 传统方式:3 次工具调用,150K tokens
const sheet = await gdrive.getSheet({ sheetId: "abc" });
const orders = sheet.filter((row) => row.status === "pending");
console.log(`Found ${orders.length} orders`);

这段代码在 Pctx 的 Deno 沙箱中本地执行,一次性完成数据获取、过滤和计算,Agent 只接收最终的 console.log 输出。实测数据显示,对同一个多步操作,Token 消耗从 150K 降至 2K——减少了 98.7%

Python SDK 让 Agent 框架无缝接入

如果你使用 OpenAI Agents SDK、LangChain 或其他 Python Agent 框架,Pctx 提供了完整的 Python SDK:

pip install pctx-client
from pctx_client import Pctx, tool
from agents import Agent
from agents.run import Runner

@tool
def get_weather(city: str) -> str:
    """Get weather information for a given city."""
    return f"It's always sunny in {city}!"

pctx = Pctx(tools=[get_weather])

tools = pctx.openai_agents_tools()
agent = Agent(
    name="WeatherBot",
    model="gpt-4o",
    instructions="You run code to complete complex tasks.",
    tools=tools,
)

统一 MCP 聚合与认证管理

当你同时使用多个 MCP 服务器时,Pctx 充当了统一的入口。Agent 不需要分别管理每个 MCP 的连接、认证和认证刷新——Pctx 的 pctx.json 配置集中处理这些,LLM 生成的代码永远看不到你的认证凭据。

认证信息来源有优先级:环境变量 → 系统钥匙串 → 外部命令,保证密钥安全。

与传统方案的横向对比

维度Pctx (Code Mode)传统 Tool Mode自定义脚本
Token 效率极高(2K/步)极低(150K/步)中等
Agent 认知负荷低(单段代码)高(多步工具编排)中(需预定义流程)
安全沙箱✅ Deno 隔离沙箱❌ 无沙箱❌ 依赖实现
多 MCP 聚合✅ 原生支持❌ 需手动管理❌ 需手动实现
安装复杂度1 条命令无安装需开发
许可证MIT

注意事项

  • Pctx 当前版本(v0.x)需要 Rust 环境或通过预编译包安装,Node.js 18+ 和 Homebrew 用户安装最顺畅
  • Code Mode 生成的代码在 Deno 沙箱中运行,默认只能访问配置文件允许的网络主机——如果你需要访问特定 API,记得在 pctx.jsonallowedHosts 中添加
  • Python SDK 是 HTTP 客户端模式,需要先启动 pctx 服务器进程
  • 目前 Node.js SDK 即将推出(README 标注 “Coming soon”),纯 TypeScript 生态的开发者暂时通过 MCP 服务器模式使用
  • 被 Block(原 Square)和 Sentient 等公司采用,说明在生产环境中已有验证

总结

如果你的 AI Agent 工作流中涉及多次工具调用(数据处理、多步编排、跨 MCP 服务器操作),Pctx 的 Code Mode 方案能显著降低 Token 消耗和上下文污染。用一次安装、一行启动,让 Agent 从「一个个调工具」升级为「写代码批量处理」——这才是 AI Agent 调用工具的合理姿势。

发表评论

你的邮箱地址不会被公开,带 * 的为必填项。