.gitignore
.mailmap
.pre-commit-config.yaml
.python-version
.secrets.allowlist
CITATION.cff
LICENSE
README.md
citation.bib
pyproject.toml
uv.lock
.github/renovate.json5
.github/workflows/docs.yml
.github/workflows/publish.yml
.github/workflows/tests.yml
docs/assets/Aviary.png
docs/assets/ldp_chessboard.png
docs/assets/ldp_definition.png
packages/lmi/LICENSE
packages/lmi/README.md
packages/lmi/pyproject.toml
packages/lmi/src/lmi/__init__.py
packages/lmi/src/lmi/constants.py
packages/lmi/src/lmi/cost_tracker.py
packages/lmi/src/lmi/embeddings.py
packages/lmi/src/lmi/exceptions.py
packages/lmi/src/lmi/llms.py
packages/lmi/src/lmi/py.typed
packages/lmi/src/lmi/rate_limiter.py
packages/lmi/src/lmi/types.py
packages/lmi/src/lmi/utils.py
packages/lmi/tests/__init__.py
packages/lmi/tests/conftest.py
packages/lmi/tests/test_cost_tracking.py
packages/lmi/tests/test_embeddings.py
packages/lmi/tests/test_llms.py
packages/lmi/tests/test_rate_limiter.py
packages/lmi/tests/test_utils.py
packages/lmi/tests/cassettes/TestCachedTokenCosts.test_anthropic_cache_creation_cost_accuracy.yaml
packages/lmi/tests/cassettes/TestCachedTokenCosts.test_anthropic_incremental_cache_with_conversation.yaml
packages/lmi/tests/cassettes/TestCachedTokenCosts.test_cache_read_cost_accuracy[claude-sonnet-4-5-20250929-True].yaml
packages/lmi/tests/cassettes/TestCachedTokenCosts.test_cache_read_cost_accuracy[gpt-4o-2024-11-20-False].yaml
packages/lmi/tests/cassettes/TestCachedTokenCosts.test_cache_with_streaming[claude-sonnet-4-5-20250929-True].yaml
packages/lmi/tests/cassettes/TestCachedTokenCosts.test_cache_with_streaming[gpt-4o-2024-11-20-False].yaml
packages/lmi/tests/cassettes/TestCachedTokenEdgeCases.test_completion_cost_failure_with_cached_tokens.yaml
packages/lmi/tests/cassettes/TestCostTrackerCallback.test_cost_tracking_embeddings[text-embedding-3-small].yaml
packages/lmi/tests/cassettes/TestCostTrackerCallback.test_cost_tracking_with_streaming_modes[claude-3-5-haiku-20241022-False].yaml
packages/lmi/tests/cassettes/TestCostTrackerCallback.test_cost_tracking_with_streaming_modes[claude-3-5-haiku-20241022-True].yaml
packages/lmi/tests/cassettes/TestCostTrackerCallback.test_cost_tracking_with_streaming_modes[gpt-4o-mini-2024-07-18-False].yaml
packages/lmi/tests/cassettes/TestCostTrackerCallback.test_cost_tracking_with_streaming_modes[gpt-4o-mini-2024-07-18-True].yaml
packages/lmi/tests/cassettes/TestLiteLLMEmbeddingModel.test_caching.yaml
packages/lmi/tests/cassettes/TestLiteLLMEmbeddingModel.test_embedding_batches.yaml
packages/lmi/tests/cassettes/TestLiteLLMEmbeddingModel.test_router_usage[with-router].yaml
packages/lmi/tests/cassettes/TestLiteLLMEmbeddingModel.test_router_usage[without-router].yaml
packages/lmi/tests/cassettes/TestLiteLLMModel.test_call[Anthropic-model].yaml
packages/lmi/tests/cassettes/TestLiteLLMModel.test_call[OpenAI-model-1].yaml
packages/lmi/tests/cassettes/TestLiteLLMModel.test_call[OpenAI-model-2].yaml
packages/lmi/tests/cassettes/TestLiteLLMModel.test_call_single[with-router].yaml
packages/lmi/tests/cassettes/TestLiteLLMModel.test_call_single[without-router].yaml
packages/lmi/tests/cassettes/TestLiteLLMModel.test_call_w_multiple_models[multiple-models].yaml
packages/lmi/tests/cassettes/TestLiteLLMModel.test_cost_call[Anthropic-model].yaml
packages/lmi/tests/cassettes/TestLiteLLMModel.test_cost_call[OpenAI-model].yaml
packages/lmi/tests/cassettes/TestLiteLLMModel.test_cost_call_single[with-router].yaml
packages/lmi/tests/cassettes/TestLiteLLMModel.test_cost_call_single[without-router].yaml
packages/lmi/tests/cassettes/TestLiteLLMModel.test_max_token_truncation[with-router].yaml
packages/lmi/tests/cassettes/TestLiteLLMModel.test_max_token_truncation[without-router].yaml
packages/lmi/tests/cassettes/TestMultipleCompletion.test_model[gpt-3.5-turbo-0125].yaml
packages/lmi/tests/cassettes/TestMultipleCompletion.test_multiple_completion[openai].yaml
packages/lmi/tests/cassettes/TestMultipleCompletion.test_output_schema[json-mode-base-model].yaml
packages/lmi/tests/cassettes/TestMultipleCompletion.test_output_schema[json-mode-type-adapter].yaml
packages/lmi/tests/cassettes/TestMultipleCompletion.test_output_schema[structured-outputs].yaml
packages/lmi/tests/cassettes/TestMultipleCompletion.test_parameterizing_tool_from_arg_union.yaml
packages/lmi/tests/cassettes/TestMultipleCompletion.test_single_completion[claude-3-5-haiku-20241022].yaml
packages/lmi/tests/cassettes/TestMultipleCompletion.test_single_completion[gpt-3.5-turbo-0125].yaml
packages/lmi/tests/cassettes/TestMultipleCompletion.test_text_image_message[gpt-4o-mini-2024-07-18].yaml
packages/lmi/tests/cassettes/TestReasoning.test_deepseek_model[deepseek-reasoner].yaml
packages/lmi/tests/cassettes/TestReasoning.test_deepseek_model[openrouter-deepseek].yaml
packages/lmi/tests/cassettes/TestReasoning.test_reasoning_effort[high-expected_len1-claude-sonnet-4-5-20250929].yaml
packages/lmi/tests/cassettes/TestReasoning.test_reasoning_effort[high-expected_len1-gpt-5-2025-08-07].yaml
packages/lmi/tests/cassettes/TestReasoning.test_reasoning_effort[low-expected_len0-claude-sonnet-4-5-20250929].yaml
packages/lmi/tests/cassettes/TestReasoning.test_reasoning_effort[low-expected_len0-gpt-5-2025-08-07].yaml
packages/lmi/tests/cassettes/TestTooling.test_empty_tools[Anthropic-empty-tools].yaml
packages/lmi/tests/cassettes/TestTooling.test_empty_tools[Anthropic-no-tools].yaml
packages/lmi/tests/cassettes/TestTooling.test_empty_tools[OpenAI-empty-tools].yaml
packages/lmi/tests/cassettes/TestTooling.test_empty_tools[OpenAI-no-tools].yaml
packages/lmi/tests/cassettes/TestTooling.test_multi_response_validation.yaml
packages/lmi/tests/cassettes/TestTooling.test_tool_selection.yaml
packages/lmi/tests/stub_data/sf_districts.png
src/ldp/__init__.py
src/ldp/data_structures.py
src/ldp/main.py
src/ldp/py.typed
src/ldp/shims.py
src/ldp/utils.py
src/ldp/version.py
src/ldp.egg-info/PKG-INFO
src/ldp.egg-info/SOURCES.txt
src/ldp.egg-info/dependency_links.txt
src/ldp.egg-info/requires.txt
src/ldp.egg-info/top_level.txt
src/ldp/agent/__init__.py
src/ldp/agent/agent.py
src/ldp/agent/agent_client.py
src/ldp/agent/interactive_agent.py
src/ldp/agent/memory_agent.py
src/ldp/agent/react_agent.py
src/ldp/agent/simple_agent.py
src/ldp/agent/tree_of_thoughts_agent.py
src/ldp/alg/__init__.py
src/ldp/alg/algorithms.py
src/ldp/alg/beam_search.py
src/ldp/alg/callbacks.py
src/ldp/alg/datasets.py
src/ldp/alg/rollout.py
src/ldp/alg/runners.py
src/ldp/alg/tree_search.py
src/ldp/alg/optimizer/__init__.py
src/ldp/alg/optimizer/ape.py
src/ldp/alg/optimizer/memory.py
src/ldp/alg/optimizer/opt.py
src/ldp/alg/optimizer/replay_buffers.py
src/ldp/graph/__init__.py
src/ldp/graph/async_torch.py
src/ldp/graph/common_ops.py
src/ldp/graph/gradient_estimators.py
src/ldp/graph/loss_ops.py
src/ldp/graph/memory.py
src/ldp/graph/op_utils.py
src/ldp/graph/ops.py
src/ldp/graph/torch_ops.py
src/ldp/graph/modules/__init__.py
src/ldp/graph/modules/llm_call.py
src/ldp/graph/modules/react.py
src/ldp/graph/modules/reflect.py
src/ldp/graph/modules/thought.py
src/ldp/llms/__init__.py
src/ldp/llms/prompts.py
src/ldp/nn/__init__.py
src/ldp/nn/lm_config.py
src/ldp/nn/utils.py
src/ldp/nn/agent/simple_local_agent.py
src/ldp/nn/chat_templates/README.md
src/ldp/nn/chat_templates/llama2_chat_template_ori.jinja
src/ldp/nn/chat_templates/llama3.1_chat_template_hf.jinja
src/ldp/nn/chat_templates/llama3.1_chat_template_nothought.jinja
src/ldp/nn/chat_templates/llama3.1_chat_template_thought.jinja
src/ldp/nn/chat_templates/llama3.1_chat_template_vllm.jinja
src/ldp/nn/chat_templates/llama3_chat_template_ori.jinja
src/ldp/nn/generation/__init__.py
src/ldp/nn/generation/base.py
src/ldp/nn/graph/llm_call_op.py
src/ldp/nn/handlers/chunking.py
src/ldp/nn/handlers/module_handler.py
src/ldp/nn/handlers/transformer_handler.py
tests/.gitignore
tests/__init__.py
tests/conftest.py
tests/test_agents.py
tests/test_algorithms.py
tests/test_buffers.py
tests/test_context_managers.py
tests/test_data_structures.py
tests/test_envs.py
tests/test_gradients.py
tests/test_loss_ops.py
tests/test_memory.py
tests/test_modules.py
tests/test_nn_models.py
tests/test_nn_ops.py
tests/test_ops.py
tests/test_optimizer.py
tests/test_prompts.py
tests/test_readme.py
tests/test_rollouts.py
tests/test_runners.py
tests/test_shims.py
tests/test_torch_ops.py
tests/test_utils.py
tests/cassettes/TestAgentState.test_no_state_mutation[agent0].yaml
tests/cassettes/TestAgentState.test_no_state_mutation[agent1].yaml
tests/cassettes/TestAgentState.test_no_state_mutation[agent2].yaml
tests/cassettes/TestHTTPAgentClient.test_lifecycle.yaml
tests/cassettes/TestLLMCallOp.test_compute_logprob[0.0].yaml
tests/cassettes/TestLLMCallOp.test_compute_logprob[0.5].yaml
tests/cassettes/TestLLMCallOp.test_compute_logprob[1.0].yaml
tests/cassettes/TestLLMCallOp.test_cost_tracking.yaml
tests/cassettes/TestLLMCallOp.test_empty_tools.yaml
tests/cassettes/TestLLMCallOp.test_validation.yaml
tests/cassettes/TestMemoryAgent.test_agent_grad.yaml
tests/cassettes/TestMemoryAgent.test_dummyenv[gpt-4o-mini-2024-07-18].yaml
tests/cassettes/TestMemoryOpt.test_lessons_memory_optimizer.yaml
tests/cassettes/TestNoToolsSimpleAgent.test_dummyenv[claude-3-5-haiku-20241022].yaml
tests/cassettes/TestNoToolsSimpleAgent.test_dummyenv[gpt-4o-mini-2024-07-18].yaml
tests/cassettes/TestParallelism.test_SimpleAgent_can_parallel_call.yaml
tests/cassettes/TestReActAgent.test_agent_grad[False-claude-3-5-haiku-20241022].yaml
tests/cassettes/TestReActAgent.test_agent_grad[False-gpt-4o].yaml
tests/cassettes/TestReActAgent.test_agent_grad[True-claude-3-5-haiku-20241022].yaml
tests/cassettes/TestReActAgent.test_agent_grad[True-gpt-4-turbo].yaml
tests/cassettes/TestReActAgent.test_multi_step[False].yaml
tests/cassettes/TestReActAgent.test_multi_step[True].yaml
tests/cassettes/TestReActAgent.test_react_dummyenv[False-claude-3-5-haiku-20241022].yaml
tests/cassettes/TestReActAgent.test_react_dummyenv[False-gpt-4o].yaml
tests/cassettes/TestReActAgent.test_react_dummyenv[True-claude-3-5-haiku-20241022].yaml
tests/cassettes/TestReActAgent.test_react_dummyenv[True-gpt-4-turbo].yaml
tests/cassettes/TestSimpleAgent.test_agent_grad[claude-3-5-haiku-20241022].yaml
tests/cassettes/TestSimpleAgent.test_agent_grad[gpt-4o-mini-2024-07-18].yaml
tests/cassettes/TestSimpleAgent.test_dummyenv[claude-3-5-haiku-20241022].yaml
tests/cassettes/TestSimpleAgent.test_dummyenv[gpt-4o-mini-2024-07-18].yaml
tests/cassettes/TestSimpleAgent.test_hide_old_action_content.yaml
tests/cassettes/TestSimpleAgent.test_hide_old_env_states.yaml
tests/cassettes/test_beam_search.yaml
tests/cassettes/test_embedding_op[text-embedding-3-large-0-256].yaml
tests/cassettes/test_embedding_op[text-embedding-3-large-0-512].yaml
tests/cassettes/test_embedding_op[text-embedding-3-large-32-256].yaml
tests/cassettes/test_embedding_op[text-embedding-3-large-32-512].yaml
tests/cassettes/test_embedding_op[text-embedding-3-large-64-256].yaml
tests/cassettes/test_embedding_op[text-embedding-3-large-64-512].yaml
tests/cassettes/test_embedding_op[text-embedding-3-small-0-256].yaml
tests/cassettes/test_embedding_op[text-embedding-3-small-0-512].yaml
tests/cassettes/test_embedding_op[text-embedding-3-small-32-256].yaml
tests/cassettes/test_embedding_op[text-embedding-3-small-32-512].yaml
tests/cassettes/test_embedding_op[text-embedding-3-small-64-256].yaml
tests/cassettes/test_embedding_op[text-embedding-3-small-64-512].yaml
tests/cassettes/test_fallbacks_working[False].yaml
tests/cassettes/test_fallbacks_working[True].yaml
tests/cassettes/test_llm_call_graph.yaml
tests/cassettes/test_offline_trainer[False].yaml
tests/cassettes/test_offline_trainer[True].yaml
tests/cassettes/test_online_trainer[False].yaml
tests/cassettes/test_online_trainer[True].yaml
tests/cassettes/test_reflect_module.yaml
tests/cassettes/test_rollout[False].yaml
tests/cassettes/test_rollout[True].yaml
tutorials/creating_a_language_agent.ipynb
tutorials/evaluating_a_llama_agent.ipynb