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): BaseChatModeltrait 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 providersspecta: 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.