Skip to content

Releases: SonAIengine/graph-tool-call

v0.15.0 — Workflow Chain API, Visual Editor, SSE Transport

22 Mar 07:30

Choose a tag to compare

Highlights

Workflow Planning API

  • tg.plan_workflow("process a refund") → returns ordered execution chain with prerequisites
  • Manual editing: plan.insert_step(), plan.remove_step(), plan.reorder()
  • JSON save/load for sharing workflows

Visual Workflow Editor

  • Browser-based drag-and-drop editor (plan.open_editor())
  • Zero-dependency single HTML file

SSE/Streamable-HTTP Transport

  • Remote MCP deployment: graph-tool-call serve --transport sse --port 8000
  • 1:N client connections (team sharing)

Architecture Improvements

  • Graph → candidate injection (removed from wRRF fusion)
  • set_weights() bug fix
  • Resource-first search generalized (removed 49 GitHub-specific aliases)

Benchmarks

  • 1068 tool stress test (GitHub full API): 78% Recall@5
  • 6-strategy competitive benchmark across 9 datasets

Install

```bash
pip install graph-tool-call==0.15.0
```

Full Changelog: v0.14.0...v0.15.0

v0.13.1

16 Mar 03:36

Choose a tag to compare

Release 0.13.1

v0.8.0

12 Mar 01:58

Choose a tag to compare

Release 0.8.0

v0.6.1

07 Mar 13:45

Choose a tag to compare

Bug Fixes

  • wRRF 가중치 버그 수정keyword_weight, graph_weight, embedding_weight가 실제로 적용되지 않고 모두 1.0으로 하드코딩되어 있던 버그 수정. embedding 활성화 시 설정값(keyword=0.2, graph=0.5, embedding=0.3)이 정상 반영됨
  • poetry.lock 동기화 — CI 실패 원인이던 lock 파일 갱신

New Features

  • Embedding 범용 어댑터 (wrap_embedding()) — LLM 어댑터(wrap_llm())와 동일한 패턴:
    • "openai/text-embedding-3-large" — OpenAI Embeddings API
    • "ollama/nomic-embed-text" — Ollama local embeddings
    • "sentence-transformers/all-MiniLM-L6-v2" — local sentence-transformers
    • "litellm/..." — litellm gateway
    • callable(list[str]) -> list[list[float]] — custom function
  • Corpus 기반 자동 stopword — DF 50% 이상 토큰을 자동 감지하여 BM25 query에서 제거. 하드코딩 제거, API마다 적응
  • set_weights() API — wRRF fusion 가중치를 사용자가 조절 가능:
    tg.set_weights(keyword=0.1, embedding=0.5)  # embedding 비중 증가

Search Quality Improvements

x2bee 1077 tools 기준:

  • "search products": ❌ getDeliveryMgmtList → ✅ getDisplayGoodsList (정확 매칭)
  • "회원 정보 수정": ⚠️ saveMemberDelivery → ✅ getMemberInfo (1위 개선)
  • "주문 취소": ✅ cancelOrder (유지)

322 tests passing, 6 skipped

v0.6.0

07 Mar 12:23

Choose a tag to compare

What's New

Multi-Stage Retrieval Pipeline

  • Cross-encoder reranking — second-stage precision improvement using cross-encoder/ms-marco-MiniLM-L-6-v2
  • MMR diversity — Maximal Marginal Relevance reranking reduces redundant results
  • History-aware retrieval — demotes already-used tools, boosts next-step tools via graph proximity

Graph Conversion Quality

  • Response→Request data flow — detects PRECEDES relations from shared $ref between response and request schemas
  • Layer 2 confidence tuning — reduced false positives in substring-based dependency detection
  • K-means clustering stabilization — deterministic seed selection, increased iterations

Integrated Pipeline

  • ai-api-lint integrationfrom_url(lint=True) auto-fixes poor OpenAPI specs before ingest (missing descriptions, error responses, schema enhancements)
  • LLM keyword enrichment — generates English search keywords for non-English tool descriptions to improve BM25

LLM Auto-Detection Adapter

  • wrap_llm() — pass any LLM without implementing OntologyLLM ABC:
    • callable(str) -> str
    • OpenAI client (openai.OpenAI())
    • String shorthand: "ollama/qwen2.5:7b", "openai/gpt-4o-mini", "litellm/..."
  • build_ontology() — convenience method for ontology construction after tool registration

Installation

pip install graph-tool-call                # core
pip install graph-tool-call[embedding]     # + cross-encoder, sentence-transformers
pip install graph-tool-call[lint]          # + ai-api-lint
pip install graph-tool-call[all]           # everything

318 tests passing, 7 skipped

v0.4.0 — MCP Annotation-Aware Retrieval

02 Mar 21:36

Choose a tag to compare

graph-tool-call v0.4.0 — MCP Annotation-Aware Retrieval

Phase 2.5: query intent와 tool annotation alignment를 retrieval signal로 활용하는 4-source wRRF 파이프라인.

주요 기능

  • MCP Annotation 모델: readOnlyHint, destructiveHint, idempotentHint, openWorldHint
  • MCP tool ingest: tg.ingest_mcp_tools(tools, server_name="myserver")
  • Intent Classifier: 한/영 키워드 기반 zero-LLM query intent 분류
  • Annotation Scorer: intent↔annotation alignment scoring (4번째 wRRF source, weight=0.2)
  • OpenAPI 자동 추론: HTTP method → MCP annotation 매핑 (RFC 7231)
  • 255 tests (74개 신규), 기존 API 하위 호환

설치

pip install graph-tool-call              # 코어
pip install graph-tool-call[all]         # 모든 기능

Quick Start

from graph_tool_call import ToolGraph

tg = ToolGraph()
tg.ingest_mcp_tools([
    {"name": "read_file", "description": "Read a file",
     "inputSchema": {"type": "object", "properties": {"path": {"type": "string"}}},
     "annotations": {"readOnlyHint": True}},
    {"name": "delete_file", "description": "Delete a file",
     "inputSchema": {"type": "object", "properties": {"path": {"type": "string"}}},
     "annotations": {"destructiveHint": True}},
])

# "삭제" intent → destructive tool 우선
results = tg.retrieve("파일 삭제해줘", top_k=5)

Full Changelog: v0.3.0...v0.4.0

v0.3.0

02 Mar 20:54

Choose a tag to compare

graph-tool-call v0.3.0 — 첫 공개 릴리스

LLM 에이전트를 위한 그래프 기반 도구 검색 엔진.

주요 기능

  • Graph-structured tool retrieval: NetworkX DiGraph 기반 도구 관계 모델링
  • Hybrid search: BM25 + Embedding + RRF 기반 3-Tier retrieval (BASIC/ENHANCED/FULL)
  • OpenAPI 3.x / Arazzo 1.0.0 파서: API 스펙에서 자동 도구 그래프 구축
  • 자동 의존성 감지: CRUD 패턴, 경로 계층, 스키마 공유 기반
  • 5-Stage 중복 탐지: rapidfuzz + embedding 기반 유사 도구 식별
  • 온톨로지 자동 구성: Auto + LLM-Auto 모드 (Ollama/OpenAI)
  • LangChain 통합: as_langchain_tools() 지원

설치

pip install graph-tool-call              # 코어
pip install graph-tool-call[all]         # 모든 기능