Crate agent_chain_core

Crate agent_chain_core 

Source
Expand description

Agent Chain Core - A Rust implementation of LangChain core library.

This crate provides:

  • Message types for LLM conversations (human, AI, system, tool)
  • Tool trait and #[tool] macro for function calling
  • Chat model abstractions
  • Callback system for tracking and monitoring operations
  • Prompt templates for flexible prompt construction
  • Support for multiple providers (Anthropic, OpenAI, etc.)

§Architecture

The architecture follows LangChain’s pattern:

  • Core layer (chat_models): Base ChatModel trait that all providers implement
  • Message layer (messages): Message types for conversations
  • Prompts layer (prompts): Prompt templates for constructing prompts
  • Tools layer (tools): Tool definitions and the #[tool] macro
  • Callbacks layer (callbacks): Callback handlers and managers for monitoring

§Feature Flags

  • default: Includes all providers
  • specta: Specta derive support

Re-exports§

pub use env::VERSION;
pub use env::get_runtime_environment;
pub use error::Error;
pub use error::Result;
pub use language_models::AIMessageChunkStream;
pub use language_models::BaseChatModel;
pub use language_models::BaseLLM;
pub use language_models::BaseLanguageModel;
pub use language_models::ChatChunk;
pub use language_models::ChatGenerationStream;
pub use language_models::ChatModelConfig;
pub use language_models::ChatStream;
pub use language_models::DisableStreaming;
pub use language_models::FakeListChatModel;
pub use language_models::FakeListChatModelError;
pub use language_models::FakeListLLM;
pub use language_models::FakeListLLMError;
pub use language_models::FakeMessagesListChatModel;
pub use language_models::FakeStreamingListLLM;
pub use language_models::GenericFakeChatModel;
pub use language_models::LLM;
pub use language_models::LLMConfig;
pub use language_models::LangSmithParams;
pub use language_models::LanguageModelConfig;
pub use language_models::LanguageModelInput;
pub use language_models::LanguageModelOutput;
pub use language_models::ModelProfile;
pub use language_models::ModelProfileRegistry;
pub use language_models::OpenAiDataBlockFilter;
pub use language_models::ParrotFakeChatModel;
pub use language_models::ParsedDataUri;
pub use language_models::SimpleChatModel;
pub use language_models::ToolChoice;
pub use language_models::UsageMetadata;
pub use language_models::agenerate_from_stream;
pub use language_models::collect_and_merge_stream;
pub use language_models::generate_from_stream;
pub use language_models::get_prompts_from_cache;
pub use language_models::is_openai_data_block;
pub use language_models::parse_data_uri;
pub use language_models::update_cache;
pub use messages::AIMessage;
pub use messages::AnyMessage;
pub use messages::BaseMessage;
pub use messages::ContentPart;
pub use messages::HasId;
pub use messages::HumanMessage;
pub use messages::ImageDetail;
pub use messages::ImageSource;
pub use messages::MessageContent;
pub use messages::SystemMessage;
pub use messages::ToolCall;
pub use messages::ToolMessage;
pub use tools::BaseTool;
pub use tools::Tool;
pub use tools::ToolDefinition;
pub use chat_history::AIMessageInput;
pub use chat_history::BaseChatMessageHistory;
pub use chat_history::HumanMessageInput;
pub use chat_history::InMemoryChatMessageHistory;
pub use chat_sessions::ChatSession;
pub use chat_loaders::BaseChatLoader;
pub use caches::BaseCache;
pub use caches::CacheReturnValue;
pub use caches::InMemoryCache;
pub use globals::get_debug;
pub use globals::get_llm_cache;
pub use globals::get_verbose;
pub use globals::set_debug;
pub use globals::set_llm_cache;
pub use globals::set_verbose;
pub use output_parsers::BaseCumulativeTransformOutputParser;
pub use output_parsers::BaseLLMOutputParser;
pub use output_parsers::BaseOutputParser;
pub use output_parsers::BaseTransformOutputParser;
pub use output_parsers::CommaSeparatedListOutputParser;
pub use output_parsers::JsonOutputParser;
pub use output_parsers::ListOutputParser;
pub use output_parsers::MarkdownListOutputParser;
pub use output_parsers::NumberedListOutputParser;
pub use output_parsers::OutputParserError;
pub use output_parsers::SimpleJsonOutputParser;
pub use output_parsers::StrOutputParser;
pub use output_parsers::XMLOutputParser;
pub use outputs::ChatGeneration;
pub use outputs::ChatGenerationChunk;
pub use outputs::ChatResult;
pub use outputs::Generation;
pub use outputs::GenerationChunk;
pub use outputs::GenerationType;
pub use outputs::LLMResult;
pub use outputs::RunInfo;
pub use outputs::merge_chat_generation_chunks;
pub use callbacks::AsyncCallbackHandler;
pub use callbacks::AsyncCallbackManager;
pub use callbacks::AsyncCallbackManagerForChainRun;
pub use callbacks::AsyncCallbackManagerForLLMRun;
pub use callbacks::BaseCallbackHandler;
pub use callbacks::BaseCallbackManager;
pub use callbacks::CallbackManager;
pub use callbacks::CallbackManagerForChainRun;
pub use callbacks::CallbackManagerForLLMRun;
pub use callbacks::Callbacks;
pub use callbacks::StdOutCallbackHandler;
pub use callbacks::StreamingStdOutCallbackHandler;
pub use callbacks::UsageMetadataCallbackHandler;
pub use callbacks::add_usage;
pub use prompts::AIMessagePromptTemplate;
pub use prompts::BaseChatPromptTemplate;
pub use prompts::BaseMessagePromptTemplate;
pub use prompts::BasePromptTemplate;
pub use prompts::ChatMessagePromptTemplate;
pub use prompts::ChatPromptTemplate;
pub use prompts::DictPromptTemplate;
pub use prompts::FewShotChatMessagePromptTemplate;
pub use prompts::FewShotPromptTemplate;
pub use prompts::FewShotPromptWithTemplates;
pub use prompts::HumanMessagePromptTemplate;
pub use prompts::ImagePromptTemplate;
pub use prompts::MessagesPlaceholder;
pub use prompts::PromptTemplate;
pub use prompts::PromptTemplateFormat;
pub use prompts::StringPromptTemplate;
pub use prompts::SystemMessagePromptTemplate;
pub use prompts::load_prompt;
pub use load::ConstructorInfo;
pub use load::RevivedValue;
pub use load::Reviver;
pub use load::ReviverConfig;
pub use load::Serializable;
pub use load::Serialized;
pub use load::SerializedConstructor;
pub use load::SerializedNotImplemented;
pub use load::SerializedSecret;
pub use load::dumpd;
pub use load::dumps;
pub use load::load as load_json;
pub use load::loads;
pub use prompt_values::ChatPromptValue;
pub use prompt_values::ChatPromptValueConcrete;
pub use prompt_values::ImageDetailLevel;
pub use prompt_values::ImagePromptValue;
pub use prompt_values::ImageURL;
pub use prompt_values::PromptValue;
pub use prompt_values::StringPromptValue;
pub use tracers::AsyncBaseTracer;
pub use tracers::AsyncListener;
pub use tracers::AsyncRootListenersTracer;
pub use tracers::BaseTracer;
pub use tracers::ConsoleCallbackHandler;
pub use tracers::FunctionCallbackHandler;
pub use tracers::Listener;
pub use tracers::PassthroughStreamingHandler;
pub use tracers::RootListenersTracer;
pub use tracers::Run;
pub use tracers::RunCollectorCallbackHandler;
pub use tracers::RunEvent;
pub use tracers::RunType;
pub use tracers::SchemaFormat;
pub use tracers::StreamingCallbackHandler;
pub use tracers::TracerCore;
pub use tracers::TracerCoreConfig;
pub use tracers::TracerError;
pub use rate_limiters::BaseRateLimiter;
pub use rate_limiters::InMemoryRateLimiter;
pub use rate_limiters::InMemoryRateLimiterConfig;
pub use documents::BaseDocumentCompressor;
pub use documents::BaseDocumentTransformer;
pub use documents::BaseMedia;
pub use documents::Blob;
pub use documents::BlobBuilder;
pub use documents::BlobData;
pub use documents::Document;
pub use documents::FilterTransformer;
pub use documents::FunctionTransformer;
pub use retrievers::BaseRetriever;
pub use retrievers::DynRetriever;
pub use retrievers::FilterRetriever;
pub use retrievers::LangSmithRetrieverParams;
pub use retrievers::RetrieverInput;
pub use retrievers::RetrieverOutput;
pub use retrievers::SimpleRetriever;
pub use stores::BaseStore;
pub use stores::InMemoryBaseStore;
pub use stores::InMemoryByteStore;
pub use stores::InMemoryStore;
pub use stores::InvalidKeyException;
pub use runnables::AddableDict;
pub use runnables::BaseStreamEvent;
pub use runnables::CUSTOM_EVENT_TYPE;
pub use runnables::ConfigOrList;
pub use runnables::CustomStreamEvent;
pub use runnables::DynRouterRunnable;
pub use runnables::DynRunnable;
pub use runnables::EventData;
pub use runnables::PickKeys;
pub use runnables::RouterInput;
pub use runnables::RouterRunnable;
pub use runnables::Runnable;
pub use runnables::RunnableAssign;
pub use runnables::RunnableAssignBuilder;
pub use runnables::RunnableBinding;
pub use runnables::RunnableConfig;
pub use runnables::RunnableEach;
pub use runnables::RunnableLambda;
pub use runnables::RunnableParallel;
pub use runnables::RunnablePassthrough;
pub use runnables::RunnablePick;
pub use runnables::RunnableRetry;
pub use runnables::RunnableSequence;
pub use runnables::RunnableSerializable;
pub use runnables::StandardStreamEvent;
pub use runnables::StreamEvent;
pub use runnables::coerce_to_runnable;
pub use runnables::ensure_config;
pub use runnables::get_config_list;
pub use runnables::graph_passthrough;
pub use runnables::merge_configs;
pub use runnables::patch_config;
pub use runnables::pipe;
pub use runnables::runnable_lambda;
pub use runnables::to_dyn;
pub use structured_query::Comparator;
pub use structured_query::Comparison;
pub use structured_query::Expr;
pub use structured_query::FilterDirective;
pub use structured_query::FilterDirectiveEnum;
pub use structured_query::Operation;
pub use structured_query::Operator;
pub use structured_query::OperatorOrComparator;
pub use structured_query::StructuredQuery;
pub use structured_query::Visitor;
pub use sys_info::PackageInfo;
pub use sys_info::SystemInfo;
pub use sys_info::get_sys_info;
pub use sys_info::get_sys_info_map;
pub use sys_info::print_sys_info;

Modules§

api
Helper functions for managing the Agent Chain API.
caches
Optional caching layer for language models.
callbacks
Callbacks module for LangChain.
chat_history
Chat message history stores a history of the message interactions in a chat.
chat_loaders
Chat loaders are used to load chat sessions from various sources.
chat_models
Re-export of language_models types for backward compatibility.
chat_sessions
Chat Sessions are a collection of messages and function calls.
documents
Documents module for data retrieval and processing workflows.
env
Utilities for getting information about the runtime environment.
error
Error types for agent-chain.
globals
Global values and configuration that apply to all of LangChain.
language_models
Core language model abstractions.
load
Load module helps with serialization and deserialization.
messages
Message types for LLM interactions.
output_parsers
Output parser classes.
outputs
Output classes.
prompt_values
Prompt values for language model prompts.
prompts
Prompt templates for LLM interactions.
rate_limiters
retrievers
Retriever trait returns Documents given a text query.
runnables
Runnables module for agent-chain-core.
stores
Store implements the key-value stores and storage helpers.
structured_query
Internal representation of a structured query language.
sys_info
Print information about the system and agent-chain packages for debugging purposes.
tools
Tools are classes that an Agent uses to interact with the world.
tracers
Tracers are classes for tracing runs.
utils
Utility functions for LangChain.

Macros§

beta
Macro to mark a function or method as beta.
deprecated
Macro to emit a deprecation warning.
renamed_parameter
Macro for handling renamed parameters with deprecation warnings.

Attribute Macros§

async_trait