RobinQu / instinct.cpp

instinct.cpp provides ready to use alternatives to OpenAI Assistant API and built-in utilities for developing AI Agent applications (RAG, Chatbot, Code interpreter) powered by language models. Call it langchain.cpp if you like.
Apache License 2.0
36 stars 2 forks source link

Design & implmentation of instinct-agent #18

Closed RobinQu closed 4 months ago

RobinQu commented 6 months ago

Manifest

Project plans

Stage 0 - POC - for one week

I'm still getting too many questions about implementation. Let's do some minimum implementation for inspirations.

Stage 1 - Assistant API Server for v0.1.2

19

First version of mini-assistant

Future developments

Sprint Features
v0.1.3 file search tool
paralled call using LLMCompiler ?
v0.1.4 * code interpreter
v0.1.5 stream support
scaliblity on cloud: PGSQL, Kafka, …
RobinQu commented 6 months ago

AutoGen: Enabling Next-Gen LLM Applications via Multi-Agent Conversation

RobinQu commented 6 months ago

https://github.com/langchain-ai/langgraph/tree/main/examples/multi_agent

RobinQu commented 6 months ago

Tool Agent

langchian tool invocation without function calling API https://python.langchain.com/docs/use_cases/tool_use/prompting/

Tool description rendering

def render_text_description(tools: List[BaseTool]) -> str:
    """Render the tool name and description in plain text.

    Output will be in the format of:

    .. code-block:: markdown

        search: This tool is used for search
        calculator: This tool is used for math
    """
    return "\n".join([f"{tool.name}: {tool.description}" for tool in tools])

def render_text_description_and_args(tools: List[BaseTool]) -> str:
    """Render the tool name, description, and args in plain text.

    Output will be in the format of:

    .. code-block:: markdown

        search: This tool is used for search, args: {"query": {"type": "string"}}
        calculator: This tool is used for math, \
args: {"expression": {"type": "string"}}
    """
    tool_strings = []
    for tool in tools:
        args_schema = str(tool.args)
        tool_strings.append(f"{tool.name}: {tool.description}, args: {args_schema}")
    return "\n".join(tool_strings)
RobinQu commented 4 months ago

it should be closed with release of v0.1.3.