Skip to content

Runtime failures with OpenAI-compatible providers, Zep search, interviews, and initial posts #717

Description

@CyrusAuyeung

Summary

A single local run exposed a chain of runtime failures that make the project difficult to complete end-to-end when using an OpenAI-compatible third-party provider and Zep Cloud:

  • OpenAI-compatible provider requests can be rejected by provider-side request filtering in both direct OpenAI(...) clients and CAMEL ModelFactory.create(...) simulation clients.
  • Zep graph search rejects long generated queries with query cannot be longer than 400 characters (max).
  • Completed simulations can be marked as stopped during backend reload/shutdown cleanup, which breaks later interaction state.
  • Interview endpoints can wait for IPC timeout when env_status.json is stale but the child simulation process is already gone.
  • Initial seed posts can be duplicated into the next simulation round because the action cursor starts before the initial env.step(...) rows.
  • Multiple initial posts assigned to the same agent can collapse to one action in Twitter paths.
  • Some malformed JSON requests surface as 500s instead of validation-style 400s.
  • BOM-prefixed persisted JSON state can fail to load with Unexpected UTF-8 BOM.

Related issues and PRs

This overlaps with existing reports but does not appear to be fully covered by one issue/PR:

Reproduction notes

Observed locally on Windows with:

  • LLM_BASE_URL pointing at an OpenAI-compatible third-party provider
  • Zep Cloud enabled
  • dual-platform simulation enabled
  • simulation followed by post-run interview/deep interaction

Representative symptoms:

  • Step 1/5 fails with frontend Request failed with status code 500.
  • Backend logs include provider-side OpenAI SDK blocking errors.
  • Zep logs include query cannot be longer than 400 characters (max).
  • Interview/deep interaction waits until timeout if the backend has reloaded and only stale env_status.json remains.
  • Initial seed posts appear again in the next logged round.
  • Simulation action logs show only the initial rounds when later LLM action calls fail.

Expected behavior

  • All configured OpenAI-compatible LLM clients should consistently use the configured key/base URL and provider-safe headers.
  • Zep search calls should respect the provider query length limit.
  • Completed simulation state should remain completed after backend cleanup/reload.
  • Interview APIs should fail fast when the actual simulation process is not alive.
  • Initial seed posts should be logged once and not reprocessed as next-round actions.
  • Same-agent initial posts should all be submitted.
  • Bad JSON requests should return 400 instead of producing 500 tracebacks.
  • Persisted state should be readable even if written with a UTF-8 BOM.

Proposed fix

A corresponding PR will harden the runtime paths above without changing the public workflow or UI.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions