freshcrate
Home > AI Agents > tulip_agent

tulip_agent

autonomous agent with access to a tool library

Description

autonomous agent with access to a tool library

README

🌷🤖 tulip agent

tulip banner

Static BadgeLicenseCode StyleA reference implementation for the tulip agent, an LLM-backed agent with access to a large number of tools via a tool library. This approach reduces costs, enables the use of tool sets that exceed API limits or context windows, and increases flexibility with regard to the tool set used.

🔬 Function analysis
Generates OpenAI API compatible tool descriptions for Python functions via introspection

🌷 Tool library
Combines a vector store for semantic search among tools and tool execution

🤖 Agents
Specifying instructions for an agent completely overrides the base system prompts to avoid contradictions. You can append custom instructions to the default prompts in tulip_agent.agents.prompts.

  • Baseline, without tool library
    • BaseAgent: LLM agent without tool access
    • NaiveToolAgent: Includes tool descriptions for all tools available
    • CotToolAgent: Extends the NaiveToolAgent with a planning step that decomposes the user input into subtasks
  • Tulip variations with access to a tool library
    • MinimalTulipAgent: Minimal implementation; searches for tools based on the user input directly
    • NaiveTulipAgent: Naive implementation; searches for tools with a separate tool call
    • CotTulipAgent: COT implementation; derives a plan for the necessary steps and searches for suitable tools
    • InformedCotTulipAgent: Same as CotTulipAgent, but with a brief description of the tool library's contents
    • PrimedCotTulipAgent: Same as CotTulipAgent, but primed with tool names based on an initial search with the user request
    • OneShotCotTulipAgent: Same as CotTulipAgent, but the system prompt included a brief example
    • AutoTulipAgent: Fully autonomous variant; can use the search tool at any time and modify its tool library with CRUD operations
    • DfsTulipAgent: DFS inspired variant that leverages a DAG for keeping track of tasks and suitable tools, can create new tools

📊 Evaluation

  • math_eval: Math evaluation
  • robo_eval: Robotics evaluation using tools created for AttentiveSupport

📝 Examples
See ./examples

Setup

  • Make sure to set the environment variables required by the API of your choice. Currently supported:
    • OpenAI: OPENAI_API_KEY, see the official instructions
    • Azure: AZURE_OPENAI_API_KEY, AZURE_API_VERSION, and AZURE_OPENAI_ENDPOINT
    • OpenAI compatible endpoints: OAI_COMPATIBLE_BASE_URL and OAI_COMPATIBLE_API_KEY for OpenAI compatible endpoints, such as Ollama
  • Install with uv venv --allow-existing && uv sync or pip install -e .
  • Check out the examples, the robot evaluation in src/eval/robo_eval, and examples/local_examples.py for a local setup

Dev notes

  • Python v3.10.11 recommended, higher versions may lead to issues with chroma during installation
  • Pre-commit hooks - install with (uv run) pre-commit install
  • Linting: ruff
  • Formatting: black
  • Import sorting: isort
  • Tests: Run with (uv run) python -m unittest discover tests/

Known issues

SQLite version incompatibility

See these troubleshooting instructions

  1. On Linux install pysqlite3-binary: uv add pysqlite3-binary
  2. Add the following to lib/python3.10/site-packages/chromadb/__init__.py in your venv
__import__('pysqlite3')
import sys
sys.modules['sqlite3'] = sys.modules.pop('pysqlite3')

Running the example results in a ModuleNotFoundError

Make sure to install the package itself, e.g., with uv sync or pip install -e .
Then run the example with uv run examples/calculator_example.py

Release History

VersionChangesUrgencyDate
0.0.0No release found — using repo HEADHigh4/8/2026
main@2026-04-08Latest activity on main branchHigh4/8/2026
main@2026-04-08Latest activity on main branchHigh4/8/2026
main@2026-04-08Latest activity on main branchHigh4/8/2026
main@2026-04-08Latest activity on main branchHigh4/8/2026
main@2026-04-08Latest activity on main branchHigh4/8/2026
main@2026-04-08Latest activity on main branchMedium4/8/2026
main@2026-04-08Latest activity on main branchMedium4/8/2026
main@2026-04-08Latest activity on main branchMedium4/8/2026
main@2026-04-08Latest activity on main branchMedium4/8/2026

Dependencies & License Audit

Loading dependencies...

Similar Packages

AttentiveSupportllm-based robot that intervenes only when needed0.0.0
tsunamiautonomous AI agent that builds full-stack apps. local models. no cloud. no API keys. runs on your hardware.main@2026-04-21
ps2-recomp-Agent-SKILLEnable autonomous reverse engineering and recompilation of PlayStation 2 games using a structured OS for LLM agents with persistent memory and workflowsmain@2026-04-21
jobclawStreamline hiring by connecting AI agents that evaluate, negotiate, and schedule interviews to reduce time and improve candidate fit.main@2026-04-21
GenericAgentSelf-evolving agent: grows skill tree from 3.3K-line seed, achieving full system control with 6x less token consumptionmain@2026-04-21