Skip to content

feat(ptc): 实现 Programmatic Tool Calling 完整支持#9

Merged
wutongci merged 1 commit into
mainfrom
tmp/251129-1550
Nov 30, 2025
Merged

feat(ptc): 实现 Programmatic Tool Calling 完整支持#9
wutongci merged 1 commit into
mainfrom
tmp/251129-1550

Conversation

@wutongci

Copy link
Copy Markdown
Contributor

实现了 Anthropic PTC 协议扩展,允许 LLM 生成的 Python 代码直接调用 Aster 工具。

核心功能:

  • HTTP 桥接服务器,提供 REST API 供 Python 调用
  • Python SDK (aiohttp),带重试和错误处理
  • AllowedCallers 配置,精确控制工具调用权限
  • Schema 缓存和 Keep-Alive 优化
  • 完整的文档和示例

新增文件:

  • pkg/tools/bridge/http_server.go: HTTP 桥接服务器实现
  • pkg/tools/bridge/ptc_integration_test.go: 集成测试
  • client-sdks/python-bridge/aster.py: Python SDK
  • docs/content/05.tools/5.ptc/: 完整文档(快速开始、高级用法、架构、故障排除)
  • examples/ptc/: 三个示例程序(basic, file-processor, local-test)

修改文件:

  • pkg/provider/anthropic.go: 支持 AllowedCallers 和 Caller 字段
  • pkg/provider/interface.go: 扩展 ToolSchema 和 ToolUseBlock
  • pkg/tools/bridge/runtime.go: 注入增强的 Python SDK
  • pkg/tools/builtin/codeexecute.go: 集成 ToolBridge
  • pkg/types/message.go: 支持 Caller 跟踪

技术亮点:

  • 指数退避重试 (3 次, 0.5s/1s/2s)
  • 智能错误分类 (网络错误重试, 工具错误不重试)
  • Schema 缓存 (5分钟 TTL, 并发安全)
  • HTTP 连接复用 (120s Keep-Alive)
  • 完整的错误处理和日志记录

🤖 Generated with Claude Code

实现了 Anthropic PTC 协议扩展,允许 LLM 生成的 Python 代码直接调用 Aster 工具。

核心功能:
- HTTP 桥接服务器,提供 REST API 供 Python 调用
- Python SDK (aiohttp),带重试和错误处理
- AllowedCallers 配置,精确控制工具调用权限
- Schema 缓存和 Keep-Alive 优化
- 完整的文档和示例

新增文件:
- pkg/tools/bridge/http_server.go: HTTP 桥接服务器实现
- pkg/tools/bridge/ptc_integration_test.go: 集成测试
- client-sdks/python-bridge/aster.py: Python SDK
- docs/content/05.tools/5.ptc/: 完整文档(快速开始、高级用法、架构、故障排除)
- examples/ptc/: 三个示例程序(basic, file-processor, local-test)

修改文件:
- pkg/provider/anthropic.go: 支持 AllowedCallers 和 Caller 字段
- pkg/provider/interface.go: 扩展 ToolSchema 和 ToolUseBlock
- pkg/tools/bridge/runtime.go: 注入增强的 Python SDK
- pkg/tools/builtin/codeexecute.go: 集成 ToolBridge
- pkg/types/message.go: 支持 Caller 跟踪

技术亮点:
- 指数退避重试 (3 次, 0.5s/1s/2s)
- 智能错误分类 (网络错误重试, 工具错误不重试)
- Schema 缓存 (5分钟 TTL, 并发安全)
- HTTP 连接复用 (120s Keep-Alive)
- 完整的错误处理和日志记录

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
@wutongci
wutongci merged commit 4455238 into main Nov 30, 2025
4 of 5 checks passed
@wutongci
wutongci deleted the tmp/251129-1550 branch November 30, 2025 07:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant