Skip to main content

A lightweight API execution layer for LLM agents.

Project description

Invoke Documentation

Invoke is a lightweight framework that connects LLMs with real-world APIs using natural language and structured tool calls.


๐Ÿ“ฆ Installation

pip install invoke-agent

๐Ÿš€ Quickstart

from langchain_openai import ChatOpenAI
from invoke_agent.agent import InvokeAgent

# Use GPT-4.1 for best results
llm = ChatOpenAI(model="gpt-4.1")  
# Pass built-in aliases, file paths, or URLs; or omit to auto-load agents_map.yaml
invoke = InvokeAgent(llm, agents=["google-calendar", "./custom/weather.json"])

while True:
    user_input = input("๐Ÿ“ You: ").strip()
    if user_input.lower() in ["exit", "quit"]:
        break
    response = invoke.chat(user_input)
    print("\n๐Ÿค–", response)

๐Ÿ”— LangChain Integration

For full control you can integrate with LangChain directly:

from invoke_agent.core import api_executor
from invoke_agent.context import build_context
from langchain.agents import AgentExecutor, create_tool_calling_agent
from langchain_core.prompts import ChatPromptTemplate

# Define your LLM
llm = ChatOpenAI(model="gpt-4.1")

# Build a prompt template
prompt = ChatPromptTemplate.from_messages([
    ("placeholder", "{chat_history}"),
    ("human", "{input}"),
    ("placeholder", "{agent_scratchpad}")
])

# Create the agent
agent = create_tool_calling_agent(llm=llm, tools=[api_executor], prompt=prompt)
executor = AgentExecutor(agent=agent, tools=[api_executor], verbose=True)

# Invoke with context containing your integrations
result = executor.invoke({
    "input": "What's the weather in Paris?",
    "chat_history": build_context(agents=["open-meteo"])
})
print(result["output"])

๐Ÿ› ๏ธ Features

  • ๐ŸŒ Access any HTTP API using natural language.
  • ๐Ÿ”‘ Automatic OAuth and API key management.
  • ๐Ÿ“ Supports both OpenAI and Claude-style function calls.
  • ๐Ÿง  Persistent chat memory for multi-turn conversations.
  • ๐Ÿงฉ Flexible integrations via YAML, JSON, or TXT definitions.
  • ๐Ÿค– Works with any LangChain-compatible LLM (we recommend GPT-4.1).

๐Ÿ“‘ Defining Integrations

You can specify integrations via the agents parameter:

  • Built-in aliases: e.g. "google-calendar", "open-meteo"
  • File paths or URLs: direct references to .json or .txt definitions
  • Explicit mappings: { "my-calendar": "./calendar.json" }
# All valid:
invoke = InvokeAgent(llm, agents=[
  "google-calendar",
  "https://example.com/my_agents.txt",
  {"custom-weather": "./agents/weather.json"}
])

# Or omit to load './agents_map.yaml' if present:
invoke = InvokeAgent(llm)

๐Ÿ“˜ agents.json / agents.txt

  • agents.json is a structured schema defining tool names, URLs, methods, parameters, headers, and auth.
  • agents.txt is the Markdown-rendered version produced by render_agents_txt(), used in the system prompt.
{
  "agent": "gmail",
  "label": "Gmail API",
  "base_url": "https://www.googleapis.com",
  "auth": {"type": "oauth", "format": "Bearer", "code": "i"},
  "endpoints": [ /* ... */ ]
}

๐Ÿ” Authorization

  • None: no auth.
  • query: query::api_key
  • header: header::Authorization
  • body: body::token (injects credential into JSON body)
  • oauth: oauth::Bearer::i (Invoke-managed OAuth flow)
  • machine: machine::client (M2M credentials)

Override per-endpoint using auth_code. When specified, it overrides the top-level auth.


โœ… Usage Patterns

  • Auto YAML: omit agents to load agents_map.yaml if available.
  • Explicit list: pass aliases, file paths, or mappings.
  • Custom context: override system prompt via context argument.

๐Ÿ“š Invoke Documentation

Hereโ€™s how the pieces fit together:

      โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”        โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
      โ”‚ auth.py โ”‚โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ–ถ๏ธŽโ”‚   core.py   โ”‚
      โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜        โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                                โ”‚
                                โ–ผ
      โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”      โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
      โ”‚context.py โ”‚โ”€โ”€โ”€โ”€โ”€โ–ถ๏ธŽโ”‚   agent.py  โ”‚
      โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜      โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜         
           โ–ฒ                                      
           โ”‚                                      
      โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”     โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” 
      โ”‚compile.py  โ”‚โ—€๏ธŽโ”€โ”€โ”€โ”€โ”ค agents.json โ”‚
      โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜     โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

Each file plays a specific role:

Module Description
agent.md How to instantiate and use the InvokeAgent
core.md Core logic for API execution
io.md Interface for prompts, logs, and OAuth code entry
context.md Builds runtime context using agents.json and templates
compile.md Converts agents.json into readable agents.txt
auth.md Guide to adding custom OAuth logic (e.g. Flask server)
agents_json.md Full schema spec for agents.json, with examples

๐Ÿš€ Getting Started

Jump right in with example notebooks to run your first agent with OpenAI, Claude, or Mistral.

Want to integrate a new API? Head to agents_json.md.

Need OAuth? See oauth.md or override io.get_oauth_code().


โš ๏ธ BETA SOFTWARE โ€” NOT FOR PRODUCTION

This project is in active development and provided as-is, for testing and evaluation purposes only. Use at your own risk. The author is not liable for any bugs, breakage, data loss, security issues, or cosmic anomalies that may arise from using this code.

License: Apache 2.0 Status: Beta

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

invoke_agent-0.1.1.tar.gz (16.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

invoke_agent-0.1.1-py3-none-any.whl (15.9 kB view details)

Uploaded Python 3

File details

Details for the file invoke_agent-0.1.1.tar.gz.

File metadata

  • Download URL: invoke_agent-0.1.1.tar.gz
  • Upload date:
  • Size: 16.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.9.18

File hashes

Hashes for invoke_agent-0.1.1.tar.gz
Algorithm Hash digest
SHA256 b01de44022aa6d14e240d758a3100743f20d05599a0608136aa9f78f6574f08f
MD5 0fc85fd189e8aaa55778a7da6b23016a
BLAKE2b-256 c183a5bb128680328a6655e81222af2932ec9b201393120aff947c6242f22739

See more details on using hashes here.

File details

Details for the file invoke_agent-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: invoke_agent-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 15.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.9.18

File hashes

Hashes for invoke_agent-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 075921c8d58c8e2d651b5c08a0e9831badfa58215743d1a7a1b05d6d7cdf5cc4
MD5 001c2a44c3077a6dae547b516b89738b
BLAKE2b-256 bd553571c40630f901ffc7477693aac56f50b4a66b5866654d54560ce104d34e

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page