Skip to content

Add a feature flag config to opt out of tool calls in ActiveRecord integration #123

@darthrighteous

Description

@darthrighteous

Currently, the acts_as_chat and acts_as_message macros always include the “ToolCall” machinery — associations, and methods calls. This requires the dependent project to create the tool_calls table even if they never invoke tools. In my Rails app, I'm not using tools at all (at least for the foreseeable future), so having to carry around an unused table and associations seems unnecessary.

I'm thinking that not using tools seems like a common enough use case, so that it makes sense to treat tool calls in the ActiveRecord integration like an add-on, and not something that must be included from the start.

My proposal is to include a config value that behaves like a feature flag to opt out of the tool call parts of the ActiveRecord integration.

  config.active_record_use_tool_calls = false # (defaults to true so backwards compatible)

No changes would be made to the core library or how tool calls are implemented, just in the ActiveRecord integration. I implemented a proof of concept PR in a fork.

Does this seem sensible?

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